Waterfall (eng) - Waterdud/agilesed-tarkvara GitHub Wiki

Waterfall Model in Software Development

The Waterfall model is a product development approach where work progresses through sequential stages β€” each step follows the previous one, and once completed, earlier stages are not revisited. It is suitable for projects where requirements are well-defined and unlikely to change during the development process.


βœ… Advantages of the Waterfall Model

1. Clear and Detailed Planning

All activities are thoroughly planned during the analysis phase β€” risks, responsibilities, and schedules are identified. The result is a well-defined roadmap that the entire team follows.

2. Defined Deadlines and Budget

Stage-based planning allows accurate estimation of the project timeline and costs. This minimizes unexpected expenses and ensures a predictable delivery date.

3. Reduced Team Communication Overhead

New team members can quickly integrate β€” the entire process is documented and guided by the plan, eliminating the need for constant discussions or reinterpretation.


❌ Disadvantages of the Waterfall Model

1. Inflexibility

Waterfall is not designed for change. If a critical issue is discovered during later stages (e.g., during testing), the team may need to start over β€” wasting both time and resources.

2. Limited Client Involvement

Clients typically only see the final product. If new requirements or feedback arise mid-project, they can’t be easily incorporated due to the rigid structure.

3. Issues Found Late in the Process

Problems often surface only during testing, after the code has been written. This can significantly increase time and effort since the team has to identify and fix issues within a specific phase. Time is usually limited.


🎯 When to Use the Waterfall Model

The Waterfall approach remains a solid methodology when:

  • The final product is clearly defined and not subject to change during development;
  • There is sufficient time and budget to complete the entire project at once;
  • Detailed documentation is required for all phases of the project;
  • Strict adherence to a step-by-step plan is essential;
  • A large portion of the project is outsourced or involves external collaborators and needs a clear structure.

πŸ“š Course Objectives

During the course, you will learn to:

  • Choose the right management methodology based on the domain;
  • Create effective and well-structured work plans;
  • Define clear and achievable goals for the team.