Software Engineering Principles and Practices / Software Process Models

Incremental Model

In the Incremental Model, the whole requirement is divided into various builds. Instead of developing the entire system at once, it is developed and delivered in sections.

🔄 How it Works

  1. Requirement Analysis: Just like Waterfall, the basic requirements are gathered first.

  2. Partitioning: The requirements are split into several modules (e.g., Module A, Module B, Module C).

  3. The Build Cycle: Each module goes through its own mini-SDLC (Design, Code, Test, Deploy).

    • Build 1: Provides the core features (the "skeleton").

    • Build 2: Adds more features.

    • Build 3: Further enhancements.


🌟 Key Characteristics

  • Iterative Progress: Each increment is a complete, working version of a piece of the software.

  • Early Delivery: Users can start using the core functionality (Build 1) while the rest is still being built.

  • Regression Testing: Since new increments are added to old ones, engineers must test the whole system again to ensure the new "block" didn't break the old ones.


✅ Advantages

  • Early Value: The customer doesn't have to wait until the end of the project to see working software.

  • Flexible Funding: If the budget runs out, you still have a partially working product rather than a half-finished pile of code.

  • Easier Risk Management: If a specific module is difficult, you can focus on it early or delay it without stopping the entire project.

  • Lower Initial Cost: You can launch with just the "Must-Have" features.

❌ Disadvantages

  • Good Planning Required: You need a very clear "Big Picture" design at the start to ensure all the future increments will fit together perfectly.

  • Higher Total Cost: Because of the constant testing and integration of new modules, the total cost can be higher than Waterfall.

  • System Architecture Issues: If the foundation (Build 1) wasn't designed well, adding Build 4 or 5 might cause the whole system to collapse or require a total rewrite.


⚖️ Waterfall vs. Incremental: The "House" Analogy

  • Waterfall: You wait 6 months for the builders to finish the entire house (kitchen, bedrooms, roof) before you can move in.

  • Incremental: The builders finish the Studio/Basement first. You move in and live there while they build the Second Floor, and then the Garage.