The product is decomposed into a number of components, each of which is designed and built separately (termed as builds). Each component is delivered to the client when it is complete. This allows partial utilization of the product and avoids a long development time. It also avoids a large initial capital outlay and subsequent long waiting period. This model of development also helps ease the traumatic effect of introducing a completely new system all at once. There are, however, several problems with this model.
How to use Incremental? 1. Specify the initial requirements 2. Prioritize the requirements 3. Prioritized requirements must be included in the early increment 4. Additional requirements must be added on the next increment
When to use incremental model?
Software that:
-needs early realization of benefits
-needs to evolve over time
-needs to get the basic functionality early
-has a lengthy period of development
-uses a new technology
Advantages[2][3] * After each iteration, regression testing should be conducted. During this testing, faulty elements of the software can be quickly identified because few changes are made within any single iteration. * It is generally easier to test and debug than other methods of software development because relatively smaller changes are made during each iteration. This allows for more targeted and rigorous testing of each element within the overall product. * Develop high-risk or major functions first * Each release delivers an operational product * Customer can respond to each build * Uses “divide and conquer” breakdown of tasks
Disadvantages[4] * Resulting cost may exceed the cost of the organization. * As additional functionality is added to the product, problems may arise related to system architecture which were not evident in earlier prototypes. * Cost may exceed the cost of the organization * Requires good planning and