Iterative and Incremental Development with Agile

A traditional (waterfall) software development approach provides a highly structured and linear design process that relies heavily on detailed up-front planning where each phase must be completed before moving sequentially on to the next one.


One main disadvantage to this approach is there is no realization of any business value until the end of the project. In addition, you will rarely (if ever) return to a phase once it is complete.  Therefore, there is only one opportunity to get it right and there is usually one large product integration at the end of a project.  This type of big bang project delivery approach can increase risks and can lead to a product that does not meet system requirements.


Agile 2_1In contrast, agile utilizes an iterative and incremental framework for delivery where each iteration delivers a fully functioning increment of software.  Basically, iterative development allows time for improving on what has already been developed, while incremental development breaks up the work into smaller chunks as they are integrated and adjusted as needed.

Rather than just continuing on with developing the next cycle of a product without feedback, an agile team will elicit customer response to software as it is delivered.  This provides a powerful inspection and adaption loop for future product iterations and increments while reducing project risks and increasing customer satisfaction.

Share on RedditShare on LinkedInTweet about this on TwitterShare on Google+Email this to someoneShare on FacebookPin on PinterestDigg this

Gary Boruff

Leave a Reply

Your email address will not be published. Required fields are marked *