What Does Iterative and Incremental Development Mean?
Iterative and incremental software development is a method of software development that is modeled around a gradual increase in feature additions and a cyclical release and upgrade pattern.
Iterative and incremental software development begins with planning and continues through iterative development cycles involving continuous user feedback and the incremental addition of features concluding with the deployment of completed software at the end of each cycle.
It is one of the methodologies of Agile software development, rational unified process and extreme programming.
Techopedia Explains Iterative and Incremental Development
Iterative and incremental development is a discipline for developing systems based on producing deliverables. In incremental development, different parts of the system are developed at various times or rates and are integrated based on their completion. In iterative development, teams plan to revisit parts of the system in order to revise and improve them. User feedback is consulted to modify the targets for successive deliverables.
Iterative and incremental software development came about in response to flaws in the waterfall model, a sequential design process in which progress flows steadily downwards. It differs from the waterfall model because it is cyclical rather than unidirectional, offering a greater ability to incorporate changes into the application during the development cycle.
Iterative and incremental development can be grouped into the following phases:
- Inception Phase: Deals with the scope of the project, requirements and risks at higher levels
- Elaboration Phase: Delivers working architecture that moderates risks identified in the inception phase and satisfies nonfunctional requirements
- Construction Phase: Fills in architecture components incrementally with production-ready code, which is produced through the analysis, implementation, design and testing of functional requirements
- Transition Phase: Delivers the system to the production operating environment