Incremental development is particularly useful when staffing is unavailable for a complete implementation by the business deadline that has been established for the project. Early versions can be implemented with fewer people. If the core product is well received, additional staff can be added to implement the next version. In addition, versions can be planned to manage technical risks.
The incremental model combines elements of the waterfall model applied in an iterative fashion.
The incremental model delivers a series of releases called versions that provide progressively more functionality for the customer as each version is delivered.
When an incremental model is used, the first version is often a core product. That is, basic requirements are addressed. The core product is used by the customer. As a result, a plan is developed for the next version.
The plan addresses the modification of the core product to better meet the needs of the customer and the delivery of additional features and functionality.
This process is repeated following the delivery of each version, until the complete product is produced.
They are effective in the situations where requirements are defined precisely and there is no confusion about the functionality of the final product. After every cycle a useable product is given to the customer. Popular particularly when we have to quickly deliver a limited functionality system.
For example, word-processing software developed using the incremental paradigm might deliver basic file management editing, and document production functions in the first version; more sophisticated editing, and document production capabilities in the second version; spelling and grammar checking in the third version; and advanced page layout capability in the fourth version.
When to use this –
Funding Schedule, Risk, Program Complexity, or need for early realization of benefits.
When Requirements are known up-front.
When Projects having lengthy developments schedules.
Projects with new Technology.
The software will be generated quickly during the software life cycle
It is flexible and less expensive to change requirements and scope.
Thought the development stages changes can be done.
This model is less costly compared to others.
A customer can respond to each building.
Errors are easy to be identified,
It requires a good planning designing.
Problems might cause due to system architecture as such not all requirements collected up front for the entire software lifecycle.
Each iteration phase is rigid and does not overlap each other.
Rectifying a problem in one unit requires correction in all the
units and consumes a lot