Software Development
Waterfall Model
Definition
The Waterfall model is a sequential, linear approach to software development. In this model, each phase must be completed before the next phase can begin, with no overlapping of the phases. The phases are typically: Requirements, Design, Implementation, Verification, and Maintenance.
Why It Matters
The Waterfall model was the traditional, classic approach to software engineering for many years. While it has been largely superseded by Agile methodologies, understanding it provides context for why Agile emerged.
Contextual Example
In a Waterfall project, a team would spend months gathering all possible requirements for the software. Then, they would spend several more months designing the entire system. Only after the design is fully complete would they start writing code.
Common Misunderstandings
- The main drawback of the Waterfall model is its rigidity. It does not handle changes in requirements well. If a mistake is made in an early phase, it is very costly to fix it later.
- It is the opposite of the iterative and incremental approach of Agile.