Iterative And Incremental Development


Iterative and Incremental development is a cyclic software development process developed in response to the weaknesses of the waterfall model. It starts with an initial planning and ends with deployment with the cyclic interaction in between.

The iterative and incremental development is an essential part of the Rational Unified Process, the Dynamic Systems Development Method, Extreme Programming and generally the agile software development frameworks.

Incremental development has various parts which are integrated as they are completed

Iterative development sets time aside to revise and improve parts of the system
output from an increment is not necessarily subject to further refinement
testing or user feedback is not used as input for revising the plans or specifications of the successive increments
Iterative development slices the deliverable business value (system functionality) into iterations.

Any difficulty in design, coding and testing should signal the need for redesign or re-coding.
Modifications should fit easily into isolated and easy-to-find modules.
Modifications to tables should be especially easy to make.
Modifications should become easier to make as the iterations progress.
Patches should normally be allowed to exist for only one or two iterations.
The existing implementation should be analysed frequently to determine how well it measures up to project goals.
Program analysis facilities should be used whenever available to aid in the analysis of partial implementations.
User reaction should be solicited and analysed for indications of deficiencies in the current implementation

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License