IterativeDevelopment

The work is broken up into chunks that are analyzed, designed and implemented before commencing work on the next chunk

Definition                                                           

The work is broken up into chunks that are analyzed, designed and implemented before commencing work on the next chunk. This enables feedback on both process and product.  

Source

 

Discussion

Early iterations will be of an exploratory or architectural nature (see ArchitecturalSpike) with a greater proportion of the work in requirements, analysis and design than will be necessary in the later ‘construction phase’ iterations.  There are many considerations that determine the size of iterations.  Small, agile teams may work to two-week iterations, while large, more traditional teams may work to 3 or more month iterations.  To obtain the best feedback on the product, the customer needs to see the product and comment on what is done right, and what they would prefer done differently; iterative development supports this EarlyAndRegularDelivery.  Where this sort of feedback can be obtained early in the project, the lessons learned can be applied as the detailed requirements are captured for later iterations. 

 

When the development process is not well known, early iterations can be used for learning.  Where problems occur, lessons learned can be used to adapt the process for later iterations.  An adaptive process will adjust the process to adapt to the risk associated with the current iteration cycle.  Typically, risk levels reduce and the risk profile changes as the project progresses.