Why Adopt this Practice?
The iterative approach differs from the traditional software development models which assume that
software development proceeds from one phase to another in a sequential manner. For example, in traditional models one
first completes the requirements specification, which is “set in stone”. When the requirements are fully completed, one
proceeds to design and then on to the next phase. Towards the later phases of the traditional cycle, disparate software
components are integrated to produce the final product and tested by quality engineers and users to remove bugs and
validate functionality.
The iterative approach is the single most significant improvement to the way we build software products in decades and
has significantly improved project success because the feedback cycle is built into the software development lifecycle.
This is especially significant in the more complex applications that support more demanding stakeholders and more
complex business processes.
Iterations are used to reduce risk of software development projects and to deliver high value functionality to the user
early on in the lifecycle. You essentially divide up the project into subsets of functionality based on, for example,
use cases or use case scenarios. At the end of each iteration, you demonstrate or deliver these pieces of functionality
to stakeholders, so they can use the features and provide feedback. This feedback can be incorporated into future
iterations. The iterative model embraces change through a feedback loop, whereas non-iterative models seek to prevent
changes, which in turn increases the risk that the developed system does not meet the stakeholders’ needs.
An iterative approach provides business value early on in the lifecycle, thus helping recoup the capital invested. It
also allows stakeholders to provide feedback while the project is going on and not at the end when you have spent all
the money and time allotted to the project.
|