The purpose of an iterative development approach is to separate a development project into logical and manageable units for incremental delivery. The completion of each iteration adds to the knowledge about the system being developed and reduces the risk when progressing to the next iteration. It also provides a repeatable method for business system development. It provides business user sign off and approval before continuing to commit resources to the project.
Reusability is also described throughout the system development process. Reusing previously developed parts in a product is a significant way of decreasing the product’s life cycle cost. Reuse in software engineering means deliverables that can be reused later. This includes all the information and knowledge that has been developed, such as; system architectures, development methods, program code and completed algorithms.


