Agile Processes (chapter 6th)
Agile development: Agile Development takes the user's demand evolution as the core, uses the iterative, the gradual and progressive method carries on the software development. In agile development, software projects are cut into multiple sub-projects in the early stages of construction, and the results of each sub-project are tested for visual, integrated, and operational use features. In other words, a large project is divided into several interconnected, but also can be run independently of small projects, and completed, in the process of software has been in a state of use.
The existing practice |
The agile approach |
Processes and tools |
Personal and communication |
Complete documentation |
Available software |
Negotiate for contracts |
Working with customers |
Implementation of the original plan |
Response change |
Agile steps:
The first step: Find out what you need to do to complete the product--product Backlog
The product owner leads you to analyze, refine, and clarify the estimated workload of the relationship between the items to be solved. The time estimate for each work is "days".
Step two: Determine what needs to be addressed in the current sprint--sprint Backlog
The implementation of the entire product is divided into a number of interconnected sprints, product orders on the task is further refined, the unit is broken down into hours, and attached a relative difficulty factor, the order of the task team members can be based on their own situation to claim.
Step Three: Sprint--sprint
In the sprint phase, outsiders cannot directly disturb team members. All communication can only be done through Scrum master, and any changes to the requirements will be discussed after the sprint is over.
During the sprint, the team met in person through a daily meeting, which was reported in turn: What I did yesterday, what I am going to do today, what problems I have encountered.
Fourth step: Get an incremental version of the software, publish it to the user, and then further plan the incremental new features and improvements on this basis.
|
Agility (Agile) |
Plan-driven (Plan-driven) |
Formalized approach to development (formal method) |
Product Reliability Requirements |
Not high, tolerance often error |
Must have a high degree of reliability |
Very high reliability and quality requirements |
Changes in demand |
Frequent changes |
Don't change very often |
Fixed requirements, requirements can be modeled |
Number of team members |
Not much |
More |
Not much |
Personnel experience |
A senior programmer |
The middle-level technical personnel mainly |
Senior Experts |
Company culture |
Encourage change, the industry is full of variables |
Advocating order and delivery on time |
Excellence |
Practical examples |
Write a Weibo website |
Develop the next version of Office software to develop software for business users |
Development of the underlying regular expression parsing module; Scientific computing; core components of complex systems |
The consequences of using the wrong way |
Using agile methods to develop the Lunar rocket Control program, the first n batches of astronauts were hung up |
With an agile approach, business users may not be affected by the frequency of a two-week update |
Most of the tricks of the agile approach are unrelated to this type of user, and the user's concern is to increase the reliability to 99.999%, and don't let the tiny bugs crash the system. |
Software process and project management (sixth Zhou)