Advantages:
- User gets a chance to experiment partially developed system
- Reduce the error because the core modules get tested thoroughly.
- Generates working software quickly and early during the software life cycle
- This model is more flexible – less costly to change scope and requirements
- It is easier to test and debug during a smaller iteration
- In this model customer can respond to each built
- Lowers initial delivery cost
- Easier to manage risk because risky pieces are identified and handled during iteration
Disadvantages:
- It is difficult to divide the problem into several versions that would be acceptable to the customer which can be incrementally implemented & delivered
- Needs good planning and design
- Needs a clear and complete definition of the whole system before it can be broken down and built incrementally
- Total cost is higher than waterfall model