In an Iterative Incremental model, at first, a partial implementation of a complete system is built so that it will be in a deliverable state. Expanded functionality is included. Defects, if any, from the prior delivery are fixed and the working product is delivered. The procedure is repeated until the entire product development is finished. The repetitions of these processes are called iterations. At the end of every iteration, a product increment is delivered.
The advantages or strengths of Iterative Incremental model are following −
You can develop prioritized requirements first.
Initial product delivery is faster.
Clients gets important functionality early.
Lowers initial delivery cost.
Each release is a product increment, so that the customer will have a working product at hand all the time.
Client can provide feedback to each product increment, thus avoiding surprises at the end of development.
Requirements changes can be easily accommodated.
The disadvantages of the Iterative Incremental model are −
Requires effective planning of iterations.
Requires efficient design to ensure inclusion of the required functionality and provision for changes later.
Requires early definition of a complete and fully functional system to allow the definition of increments.
Well-defined module interfaces are required, as some are developed long before others are developed.
Total cost of the complete system is not lower.
Iterative Incremental model can be used when −
Most of the prerequisites are known up-front but are expected to evolve over time.
The prerequisites are prioritized.
There is a need to get the basic functionality delivered fast.
A project has lengthy development schedules.
A project has new technology.
The domain is new to the team.