How to do iterative development (2) (transfer)

Earlier we mentioned the huge advantages of iterative development, it can reduce the huge risk of our software development, it can make us grasp the real needs of users, it can make us correct from mistakes and deviations in time, so how should we iterate development? To answer this question, we must first understand the difference between iterative development and traditional waterfall development.

1. Differences in demand analysis
Like traditional software development, iterative development also requires a sufficient demand analysis with customers. But unlike traditional software development, iterative development does not require the initial requirements analysis to be a complete requirements analysis. It recognizes that requirements analysis requires a process, and it recognizes that requirements change (or that requirements are an evolutionary process). Therefore, in the iterative development, the initial requirement analysis only needs to be carried out to the extent that the current stage can understand it, rather than the waterfall development that needs to complete all the requirement analysis and finally confirm it. As for other content that has not been analyzed, we will gradually deepen our understanding and refinement in the requirements stage of each iteration until the final software development is completed. Therefore, the requirements analysis of iterative development always runs through the entire software development process.

2. Differences
in software development There is a huge difference between the software development stage of iterative development and the traditional software development method. Iterative software development adopts the software development method of "Continuous Build". In the traditional development method, when the requirements are confirmed and software development starts, the first work is to develop in modules. Just like workshop production, different modules are assigned to different groups or individuals for separate development. During this time, no one can come up with a working software deliverable until the integration stage in the middle and late stages of development. Different from iterative development, it divides the entire development process into several iterations and delivers executable software at the end of each iteration. Because of this, iterative development uses continuous integration.

The basic idea of ​​continuous integration is that the development work done by everyone every day can be immediately integrated into a working software product. In order to achieve continuous integration, we have to change our development sequence. The traditional development sequence starts with developing and perfecting each sub-module. When each sub-module has been developed, it is finally assembled and integrated into a runnable software. It is impossible to guarantee continuous integration with this sequential development. In iterative development, after the first confirmation of business requirements, the most important and most basic functions of the software are first developed. When developing these functions, only the main process is often considered and the branch process is ignored. In this way, working software can be delivered in the shortest time possible. After that, we leave it to customers to experience, confirm, and give us opinions. We will continue to adjust and improve these main functions, or develop other secondary functions, so that software development can proceed in an evolutionary way.

The continuous integration method enables all parties involved in software development to understand the progress of software development at any time, see the results of software development in a visual way, and correct problems in the software development process in a timely manner. More importantly, the most important party among all stakeholders, the customer, cannot describe their own needs due to their own limitations. Through visual means, they can see the running software again and again, and put forward their opinions more intuitively. Make your needs more and more clear and effectively inform developers. And as we are developing, through this method, we have more opportunities to communicate effectively with customers, so as to have a deeper and deeper understanding of the business field, and also make our development results always confirmed by customers and consistent with customer needs . Even if deviations sometimes occur, they can be corrected in a timely manner. Ultimately, the software we deliver must be satisfied by the customer.

From this point of view, the development process difference between iterative development and traditional development is really not small.

Reprinted from http://fangang.iteye.com/blog/1183789

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326641030&siteId=291194637