Successful software development process
Iteration, evolution, and agility
Introduction
Relative to the sequence or waterfall life cycle,Iterative and evolutionary development(Iterative and evolutionary development) Early introduce programming and testing for some systems and repeat this loop. This approach usually assumes that development begins without defining all the requirements in detail, and uses feedback to clarify and improve the Specification Description in the evolution.
Iterative development is a key practice in up and most other modern methods. In this life cycle method, development is organized into a series of fixed short-term (such as three weeks) small projects, calledIteration(Iteration); each iteration generates a tested, integrated, and executable local system. Each iteration has its own needs analysis, design, implementation, and testing activities.
Example
1. Prior to the first iteration, a 2-day requirement work meeting was held. The attendees of the meeting included business staff and developers (including the Chief Architect ).
L on the morning of the first day, only the high-level requirement analysis is performed, for example, onlyUse CasesAnd feature names, as well as key non-functional requirements. Note: This analysis cannot be perfect.
L by consulting the chief architect and business personnel, select the 10%-20% ratio of case preparation from the High-Level list for detailed analysis. The selection is based onImportant architectural significance; HasHigh Business Value; HasHigh risk.
L analyze the functional and non-functional requirements of the selected use cases in detail within the remaining one and a half days.
2. Hold an iteration plan meeting before the first iteration to design, construct, and test the refined use cases within a specific period of time. It should be noted that, because it involves a lot of work, it is not necessary to construct (build) All the refined use cases in the first iteration.
3. Complete the first iteration in three to four weeks
L within the first two days, developers and other members shall perform modeling and Design of groups, under the guidance and guidance of the Chief Architect (or project manager, draw a UML sketch on a large enough whiteboard and record it with a digital camera.
[Note: UML is only used to communicate with and understand the design. It is not necessary and must be refined to the point where code can be generated.]
L then, almost all of the remaining time is used for programming, testing, and integration. Developers should use modeling sketch as the starting point of their inspiration, and be clear that these models are local and conceptual.
L conduct a large number of tests, including unit tests, acceptance tests, load tests, and availability tests.
L confirm that the initial iteration target can be completed one week before the end; otherwise, the iteration scope will be reduced and the secondary objectives will be placed back in the task list.
L check in all the code on Tuesday of the last week, integrate and test all the code, and establish an iterative baseline.
L this is displayed on Wednesday morning.Local SystemTo display the early visual progress and request feedback.
4. At the end of the first iteration, the second demand work meeting will be held to review and refine all the materials of the previous meeting. Then select another example with significant architectural significance and high business value, and analyze it in detail in one to two days. After this work is completed, about 40% of Use Cases and non-functional requirements will be recorded in detail.
5. the next iteration plan meeting will be held on Friday morning.
6. Perform the second iteration in the same step.
7. 4 iterations and 5 requirement work meetings are carried out repeatedly, so that at the end of 4th iterations, the requirements of about 80%-90% have been basically recorded, however, it is possible that only about 40% of them are implemented.
Note: The demand set is based on feedback and evolution, so its quality is much higher than the waterfall specification that relies solely on speculation.
8. In terms of upRefinement stageIn the future, there will be no need for working meetings, and the demand is stable. Enter the up termConstruction phase! Next is a series of three-week iterations. Select the appropriate next step at the iteration plan meeting on Friday of the last week.
9. After all the projects are completed, perform beta testing and handover.
Four major phases of Up Project Development
1. Initial (Inception ):
Overall conception, business case, scope, and fuzzy evaluation.
2. Details (elaboration ):
Refined conception, iterative implementation of core architecture, high-risk solution, and determination of most requirements.
3. Construction ):
Implement iterative Implementation of the elements with low risks and relatively simple elements, and prepare for deployment.
4. Transition ):
Perform beta testing and deployment.
Use Cases
Source:
L UML and pattern application (third edition) (<applying UML and patterns-an introduction to object-oriented analysis and design and iterative development>)