With the rise of the Internet, users rely more and more on online software, which leads to more and more demands on software, so the software update and iteration speed is faster and faster. For Internet companies, speed has become the key factor for enterprise competition. On the one hand, the needs of users are constantly changing. On the other hand, the Internet with traditional development mode is difficult for your company to meet these needs. Agile Development is a human-centered, iterative and step-by-step Development method. It is also a software Development method. As shown in the figure, it is the main process of Agile Development

There are three roles in agile development: Product owner: Mainly responsible for determining product functions and standards to meet requirements, release date and delivery content of brake software, and has the right to accept or reject the results of the development team. The Scrum Master is responsible for the smooth implementation and implementation of the entire Scrum process in the project and for clearing the communication barriers between the customer and the development effort so that the customer can directly drive the development

Scrum team: mainly responsible for the development of software products according to the specified process of Scrum, the number of people is controlled at about 5~10, each member may be responsible for different technical aspects, but each member must have strong self-management ability and certain expression ability; Members can work in any way they want as long as the Sprint goals are met.

The three main artifacts of Agile development, the Product Backlog, which I understand is also the user story, is equivalent to all the requirements for the current release. The Sprint Backlog: The iterative feature development list, understood as a list of requirements within the Sprint target phase. For example, the current release has a total of 40 requirements to complete for our Product Backlog; We split the current release into 4 sprints, or 4 sprints. The first Sprint has 10 requirements to complete, which are the Sprint Backlog for the current Sprint. Burndown chart: Burndown chart: after the requirement realization stage is determined, the time is moved forward, and the remaining time is consumed. Meanwhile, the task list is also consumed with the progress of the work. That is, the iteration shows the remaining work time and the completion of the task. Focus: Breaking down the story into sprints, focusing on specific goals, but also focusing absolute team power, addressing the stated goals, reflecting the current Focus, and eliminating other costs of interlocking time. Courage: In the whole agile process, efficiency needs to be improved. At the same time, a series of technical, environmental and team problems will not be less, so we need to have the Courage and determination to move forward and use the most advantageous energy and resources to solve the most urgent problems. Openness: the information in the team is completely open, so that problems can not be hidden, but also let the excellent and achievements can be well displayed and guided, open, so that everyone is equal, so that everyone respects. Respect: In agile, we build a foundation of Respect by being open; At the same time, due to the requirements of efficiency and the clarity of sprint tasks, we do what we do best to maximize overall efficiency. Respect and trust others. Commitment: To build a team to solve problems together, the highest efficiency of the assault task environment, because we keep our Commitment, dare to give Commitment; At the same time, because of our commitment to others and to our team, we must be the best at handling our tasks, be willing to commit to our responsibilities and face up to them.

Sprint Planning Meeting: Determines and generates the Sprint Backlog before the sprint. — Similar to requirements review sprints: Sprint meetings determine our goals, thus determining the stages, people, and tasks for the sprint. — Similar to planning daily Standupdo meeting: Daily standupdo meeting is mainly used to follow up the progress, determine the status of the current task, and communicate if there is anything unusual. Exceptions should be well controlled in the beginning. Sprint review: Finish a sprint, review the sprint, and organize the parts that are beneficial and well executed; Planning checks what is bad and what can be done better. Optimization in the continuous forward. There’s a retrospective meeting. To complete the current version, it is necessary to review the whole, organize and file the experience, and form an effective growth document for better growth of the team.

The Scrum project process consists of a series of Sprints. Sprints are usually two to four weeks long. Keep a good rhythm with regular cycles. Product design, development, and testing are done during sprints. Deliver working software at the end of the Sprint. Changes are not allowed during the Sprint.

Sprint planning meetings: Prioritize, analyze, and evaluate products; Determine sprint goals; How to achieve sprint goals and create tasks based on user stories; Make an estimate for the task

Daily meeting: the daily meeting of the team, usually 15 minutes, the main content is 1, what I completed yesterday, 2, what I plan to do today, 3, what difficulties I met in the work

Review meeting: for the product Owner and other stakeholders to demonstrate the features developed during the sprint. It is usually a live demonstration of the features and architecture, without formal presentation or PPT, and usually lasts less than 2 hours

Retrospective meetings: regular self-examination of the team to discover what is good and what is not. The Sprint Backlog is generally controlled in 15-30 minutes for each Sprint. Each team member can modify the Sprint backlog by adding, removing, or modifying tasks, with the remaining workload estimates updated daily for each task

1. Our top priority is to satisfy our customers by delivering valuable software early and consistently. 2. Welcome changing requirements, even at a later stage of development. 3. Deliver working software on a regular basis, anywhere from a few weeks to a few months, and as short a time as possible. 4. Business people and developers must work together on a daily basis throughout the project. 5. Build projects around motivated individuals. 6. Face-to-face conversations are the most effective and efficient way to convey information within a team. 7. Working software is the primary measure of progress. 8. Agile processes promote a smooth development pace; Sponsors, developers, and users should be able to maintain a constant, long-term development rate. 9. A constant focus on good skills and good design enhances agility. 10. Simplicity is fundamental (don’t over-design and predict). 11. The best architecture, requirements, and designs come from self-organizing teams. 12. Every once in a while, the team reflects on how it can work more effectively and adjusts its behavior accordingly.

Agile project management differs from traditional project management: traditional project management: 1. Estimate, plan, and analyze the entire project in advance 2. Oppose change; Change needs to be re-estimated and re-planned 3. Strict contract to reduce risk, and CR process should be followed if requirements are changed 4. The project acts as a “black box” with poor visibility to customers and suppliers. 7.WBS, Gantt Chart, Critical Path Analysis agile Project Management: 1. Do a rough estimate of the entire project, with a detailed plan for each iteration. 3. Trust and empower; Contracts make it easy to make changes and add value. Each iteration produces deliverable software. 6. Focus on delivering software. 7. Deliver a working version in the first iteration and identify risks early.

Benefits of Agile development: 1. More transparency; Track the status and progress of the project at any time, identify problems and risks early. 2. Fast delivery, delivering working software in each iteration. 3. The highest risk and highest priority requirements, the highest priority for development. Improve project communication. 6. Better customer engagement and avoid false assumptions.

Agile development features: Incremental Iteration 1. Each iteration has approximately 1 to 4 axes of time, known as Sprint 2 in Scrum. Each iteration should have a clear goal 3. Each iteration should have a clear demonstrable work product 4. 5. Iteration breaks down the stress of the project into smaller phases, as well as risk * TEST-driven development * 1. First create test cases, then develop software by testing (write test code first before developing code) 2. A method of designing software, rather than just a test method 3. The test cases created are used to guide and constrain the work of the project and provide a safe protection for the future work 4. Work that does not require testing does not need to be done 5. Test cases created usually substitute for detailed business and technical requirements set 6. Testing also effectively drives designs towards workable designs 7. Support for automated testing is often required (EUnit, JUnit etc.) 8. * Continuous integration * Extreme programming called “Daily Build” Continuous integration generally takes advantage of the benefits of daily builds from tools such as ANT and MAVEN: Minimize integration risk Reduce quality risk Improve morale A day build can be seen as the heartbeat of a project, smoke testing is like a stethoscope A day build must be at least: successfully compiled, packaged, and released; Does not contain any obvious defect; With all the communication tools available today, face-to-face communication is still irreplaceable in some situations. Agile development takes into account the lack of communication, requiring team members to work directly with each other to create face-to-face communication opportunities as much as possible. Especially when business analysts and software developers work together, face-to-face communication is important. Sharing requirements documents anonymously only opens the door to misinterpretation and misunderstanding, not to mention that written information is much slower than verbal communication