Now agile development is getting increasingly popular. Everyone is talking about agility, and everyone is learning scrum and XP...
In order not to lag behind others, I also began to learn scrum. Today, I am mainly talking about the relevant materials I have recently read. Based on my own understanding, I will use my own words to describe all aspects of scrum, there are two main purposes: one is to summarize knowledge, and the other is to think that many learning materials on the Internet are not easy for beginners to understand. So I decided to write a literacy blog post, at the same time, I tried to share with my friends in the park, hoping to help beginners.
What is agile development?
Agile development is a human-centered, iterative, and progressive development method.
How can this problem be solved? First, we need to understand that it is not a technology, it is a development method, that is, a software development process, it will guide us to develop the project step by step using the prescribed links. The main driver of this development method is people; it uses iterative development;
Why is it human-centered?
Most of us have learned the waterfall development model. It is document-driven. Why? This is because a large number of documents need to be written throughout the development process of waterfall. After the requirement documents are written, developers develop according to the documents, and everything is based on the documents; agile development only writes necessary documents, or writes as few documents as possible. Agile development focuses on face-to-face communication between people, so it emphasizes people as the core.
What is iteration?
Iteration refers to dividing a complex development task with a long development cycle into tasks that can be completed in many small cycles. Such a cycle is an iteration process; at the same time, each iteration can produce or develop a software product that can be delivered.
About scrum and XP
Agility is a guiding ideology or development method, but it does not clearly tell us what kind of process is used for development. Scrum and XP are the specific methods of agile development, you can use scrum or XP. The difference between scrum and XP Is That Scrum focuses on the process, while XP focuses on practice, but in reality, the two are applied together, here I mainly talk about scrum.
What is scrum?
Scrum is a specialized term of rugby, which indicates a "ball race" Action. Name a development process named scrum, I think you can imagine that when your development team is developing a project, everyone is as fast as playing football, passionate about fighting, and everyone is fighting for it, you will be very excited.
Scrum is such a development process. With this process, you can see the efficient work of your team.
[Three roles in the scrum development process]
Product owner)
It is mainly responsible for determining product functions and standards as required, specifying the release date and delivery content of the software, and having the right to accept or reject the work of the development team.
Process Administrator (scrum master)
It is mainly responsible for the smooth implementation and implementation of the entire scrum process in the project, as well as removing barriers to communication between the customer and the development work, so that the customer can directly drive development.
Development Team (scrum Team)
Mainly responsible for the development of software products under the scrum prescribed process, with a limit of 5 ~ About 10 members, each member may be responsible for different technical aspects, but each member must have a strong self-management ability and a certain level of expressive ability. Members can work in any way, you only need to achieve the sprint goal.
Scrum Flowchart
//------------------------
Next, let's talk about the specific implementation process, but before talking about it, I want to explain an English word.
What is a sprint?
A sprint is a short-distance race. It refers to an iteration, and an iteration cycle is one month (that is, four weeks ), that is, we need to finish the development content of an iteration as quickly as possible. This process is called sprint.
How to conduct scrum development?
1. First, we need to determine a product backlog (a list of product requirements sorted in priority), which is the responsibility of the product owner;
2. The SCRUM Team estimates and schedules the workload based on the product backlog list;
3. With the product backlog list, we need to select a story from the sprint Planning Meeting (sprint Planning Meeting) as the goal of this iteration. The time cycle of this target is 1 ~ 4 weeks, and then refine the story to form a sprint backlog;
4. The Sprint backlog is completed by the scrum team. Each member is further divided into smaller tasks based on the sprint backlog (the workload of each task can be completed within 2 days );
5. During the sprint backlog process selected at the scrum team completion plan meeting, daily scrum meeting (daily standing meeting) is required. Each meeting is controlled for about 15 minutes and everyone must speak, report to all Members what you did yesterday and promise all members what you want to do today. You can also ask questions that cannot be solved, update your sprint burn down (sprint burn down chart) before going to the blackboard );
6. Daily integration, that is, a version that can be compiled successfully and demonstrated is required every day. Many people may not have used automated daily integration, in fact, TFS has this function. It can automatically obtain the latest version on the server each time a member performs the check-in operation, and then compile it on the server, if the test passes, the unit test will be executed immediately.CodeIf all of them pass, the version will be released, and a formal check-in operation will be saved to TFs. If any failure occurs in the middle, the Project Administrator will be notified by email;
7. When a story is completed, that is, the sprint backlog is completed, it indicates that a sprint is completed. At this time, we will perform the srpint Review Meeting (Demo meeting), also known as the review meeting, both the product owner and the customer are required to participate (preferably the company's boss also participates). Every scrum team member must demonstrate their own software products to them (this meeting is very important, must not be canceled );
8. Sprint into spective meeting (review meeting), also known as the summary meeting, takes the form of alternate speeches. Everyone should speak and summarize and discuss the improvements, put in the product requirements of the next sprint;
The following figure shows some scenarios in the scrum Development Process:
Is an example of product backlog.
It is the daily standing meeting, the participants can stand freely, the task panel should ensure that everyone can see, when everyone finishes speaking, to go to the task version to update their burn-out diagram.
Task view includes incomplete, ongoing, and completed work statuses. If you have completed an unfinished job today, You need to paste the incomplete area to the completed area.
The progress and completion of each person are made public. If a person's work task is put in a certain position for several days, everyone can find out what is wrong with his work schedule (preferably 5 to 5 members ~ Seven, so that each person can use a dedicated color label Paper, at a glance, you can see from the task version who is working fast, who is working slowly)
Rather than playing cards, it is planning cards, and its role is to prevent projects from being led by some people during development.
How to use it? For exampleProgramIt takes five hours for developers to develop a function. B Programmers think that it takes only half an hour to develop a function. Then they each have their own cards hidden in their hands and finally showdown. If there is a big gap in time, then a and B can discuss why a takes 5 hours...
Four statements of agile development
Individuals and interactions are better than processes and tools
Software that can work is better than all text blocks
Customer collaboration is better than contract negotiation
Responding to changes is better than following the plan