Waterfall Model - BogdanViblyy/Buketov GitHub Wiki

What Is the Waterfall Model?

The Waterfall Model follows a step-by-step, linear process for software development. Each stage flows into the next like water over a series of ledges—once one phase is finished, the project moves on to the next without returning to the previous step.

  • Key Phases Typically Include:

    1. Gathering and documenting all system requirements.

    2. Designing the system architecture and its components.

    3. Coding the software based on the design specifications.

    4. Testing the complete system for defects and issues.

    5. Deploying the finished product to users.

    6. Performing maintenance and updates after release.

  • Each phase must be completed entirely before moving forward.

  • Emphasizes planning, structure, and thorough documentation from the outset.

Waterfall vs. Iterative/Incremental Models

  Waterfall Model Iterative/Incremental Models
Development Flow Straight-line, phase-by-phase Cyclical, repeatable steps
Adaptability Inflexible—changing requirements is tough Flexible—welcomes evolving needs
Feedback Timing Late—usually during testing Early and ongoing
Risk Management Risks surface late in the process Risks identified and mitigated early
Delivery Style One final product release Frequent deliveries of usable parts
User Involvement Low—mainly at the beginning and end High—feedback is continuous
Ideal For Projects with fixed, well-understood goals Projects with shifting or unclear goals

⚠️ **GitHub.com Fallback** ⚠️