Incremental Delivery Approach to Software Development
Incremental Delivery is a software development approach where the system is designed, implemented, and delivered in increments (parts), with each increment providing a portion of the required functionality, allowing users to use the system progressively.
Definition
In the incremental delivery model, the complete system requirements are defined at the beginning, but the system is built and delivered in small, usable pieces called increments. Each increment adds new functionality to the previously delivered increments. The highest-priority requirements are addressed in the early increments.
Key Characteristics
- The system requirements are prioritized before development begins
- Higher-priority requirements are included in earlier increments
- Once an increment is delivered, its requirements are frozen (no changes allowed)
- Each increment is a fully functional, tested, and usable piece of software
- Users can start using the system after the first increment is delivered
- Later increments build upon and integrate with earlier ones
How It Works (Steps)
- a. Define outline requirements — Gather all system requirements initially
- b. Assign requirements to increments — Prioritize and divide functionality into increments
- c. Design system architecture — Create an overall architecture that accommodates all increments
- d. Develop system increment — Build the current increment
- e. Validate increment — Test and verify the increment works correctly
- f. Integrate increment — Merge with previously delivered increments
- g. Validate system — Test the whole integrated system
- h. Deploy increment — Deliver to the customer for use
- i. If system is not complete, repeat from step (d) for the next increment
- j. Final system is delivered when all increments are complete
Diagram

Advantages
- Early delivery of partial functionality to the customer
- Reduced risk — high-priority functions are delivered and tested first
- Customer feedback is received early and can influence later increments
- Easier testing and debugging since each increment is small
- Lower risk of overall project failure
Disadvantages
- Requires good planning and proper requirement prioritization upfront
- System architecture must be defined early to support all future increments
- Difficult to identify common facilities needed by all increments
- Requirements for later increments are frozen, reducing flexibility
Example
A word processing software can be delivered incrementally:
- Increment 1: Basic file management + text editing
- Increment 2: Spell check + grammar check
- Increment 3: Advanced formatting + page layout
- Increment 4: Mail merge + macros
Conclusion
The incremental delivery approach combines the benefits of planned development with early customer feedback. It reduces risk by delivering the most critical features first, making it highly suitable for large systems where getting the full system early is not feasible.