now Agile Development is getting more and more fire, everyone is talking about agile, everyone is learning scrum and XP ... In order not to lag behind others, so I also began to learn scrum, today is mainly about my recent reading of relevant information, according to their own understanding, with their own words to tell the various aspects of scrum, the main purpose is two, one is to carry out knowledge summary, Another is that many of the online learning materials to tell the way to beginners are not easy to understand, so I decided to write a literacy blog, while trying to also share with friends in the park, hope to help beginners.
What is agile development.
Agile Development (development) is a human-centric, iterative, and progressive approach to development.
How to understand it. First of all, we must understand that it is not a technology, it is a development method, that is, a software development process, it will guide us to use the prescribed link to complete the development of the project, and this development mode of the main driving core is human; it uses iterative development;
Why is it that people are at the core.
Most of us have learned about waterfall development models, which are document-driven and why. Because in the entire development process of the waterfall, to write a large number of documents, the requirements of the document written out, the developers are based on the document development, everything based on the document, and agile development it only to write the necessary documents, or as little as possible to write documents, agile development is focused on human and human, the face of communication, So it emphasizes people as the core.
What is an iteration.
Iteration refers to the development of a complex and long development cycle, broken down into many small cycles can be completed tasks, such a cycle is an iterative process, at the same time each iteration can produce or develop a deliverable software PRODUCT.
About scrum and XP
I said Agile. It is a guideline or development approach, but it does not clearly tell us exactly what kind of process to develop, and scrum and XP is the specific way of agile development, you can use the scrum approach can also adopt XP way; the difference between scrum and XP is that Scrum focuses on the process, while XP focuses on practice, but in practice, the two are applied together, and here I mainly talk about scrum.
What is scrum.
The English meaning of scrum is a professional term for rugby, which represents the action of "fighting the ball", and the name of a development process is called scrum, and I think you can imagine that your development team is developing a project, everyone is as fast as playing football, passionate about fighting, everyone you fight for me to complete it, You must be very excited.
And scrum is a development process that allows you to see your team work efficiently.
"Three major roles in the scrum development process"
Products Owner (product owner)
Responsible for determining the function of the product and meeting the required standards, specifying the release date and delivery content of the software, as well as the right to accept or reject the development team's work results.
Process Manager (Scrum Master)
Primarily responsible for the smooth implementation and execution of the entire scrum process in the project, as well as the elimination of communication barriers between the customer and the development work, so that customers can directly drive development.
Development team (Scrum team)
Mainly responsible for the development of software products under the scrum rules process, the number of people control in the 5~10, each member may be responsible for different technical aspects, but requires that each member must have a strong self-management ability, at the same time have a certain ability to express; Members can adopt any way of working, As long as you can reach the sprint goal.
Scrum flowchart
//------------------------
Now, let's start with the specific implementation process, but before I do, I'll explain an English word.
What is sprint.
Sprint is the meaning of a short distance race, which refers to an iteration, and the period of an iteration is 1 months (4 weeks), that is, we want to complete the development of an iteration at the fastest speed, which we call Sprint.
How to do scrum development.
1. First, we need to identify a product Backlog (a list of products in order of priority), which is the responsibility of product Owner;
2. The Scrum team estimates and arranges the workload according to the Product backlog list;
3. With the Product Backlog list, we need to select a story from the Sprint Planning meeting (Sprint Planning Conference) as the goal of this iteration, with a time period of four to 1-4 weeks, The story is then refined to form a sprint Backlog;
4. The sprint backlog is done by the scrum team, and each member is subdivided into smaller tasks based on the sprint backlog (the workload of each task can be completed within 2 days);
5. During the sprint backlog selected at the Scrum team completion planning meeting, a Daily Scrum meeting (daily stand-up session) is required, and each meeting is controlled for about 15 minutes and everyone must speak, and to report to all the members in person what you did yesterday, and to all the members what you are going to accomplish today, at the same time to meet the unresolved problems can be proposed, each answer completed, to go to the blackboard to update their sprint burn down (Sprint burndown chart);
6, to do daily integration, that is, every day to have a successful compilation, and can demonstrate the version; many people may not have used automated daily integration, in fact, TFS has this feature, it can support each time a member check-in operation, the server automatically get the latest version, and then compile in the server , if you pass the unit test code immediately, if also all pass, then the version is published, then a formal check-in operation is saved to TFS, any failure in the middle, will notify the project manager by mail;
7, when a story is completed, that is, the sprint backlog is completed, it is a sprint to complete, at this time, we are going to Srpint Review meeting (demonstration conference), also known as the Review Meeting, The product owner and the customer are invited (preferably the owner of the company), and each member of the scrum team will demonstrate to them the software products they have completed (this meeting is very important and must not be canceled);
8. Finally, the Sprint retrospective meeting (retrospective meeting), also known as a wrap-up session, takes a rotational approach, where everyone has to speak, summarize and discuss improvements, and put them into the next sprint's product requirements;
Here are some of the scenario diagrams used in the scrum development process:
The image above is an example of a Product Backlog.
The picture above is the daily standing meeting, the participants can stand at random posture, the task Kanban to ensure that everyone see, when everyone after the speech, to go to the task version to update their Burndown chart.
The task view contains incomplete, in-progress, completed work, assuming that you have completed an unfinished job today, then you need to post the small card to the completed area without completing the area.
Everyone's work progress and completion are public, if there is a person's job in a certain location for several days, we can find out what the problem of his work progress (the number of members is best 5~7, so that each person can use a special color label paper, At a glance, you can see who's working fast, who's working slowly, from the Mission edition.
The picture above is not a poker, it is a plan solitaire, its role is to prevent the project in the development process, by some people lead.
How to use it. For example, a programmer to develop a function, it takes 5 hours, B programmers think it takes only half an hour, they each take the corresponding cards, hidden in the hands, the final showdown, if the time gap is large, then A and B can discuss a why 5 hours ...
Finally, we recommend a book: the scrum and XP in the smoke
4 Statements of Agile development
Individuals and interactions outweigh processes and tools
Work-ready software trumps all-encompassing text-blocking
Customer Collaboration trumps contract negotiation
Responding to change is better than following the plan original: Blog Park blog post http://www.cnblogs.com/taven/archive/2010/10/17/1853386.html