Waterfall
- In Turkish
- şelale modeli
In short
Waterfall is a sequential approach to software development in which requirements, design, building, testing, and release happen one after another.
What is the Waterfall model?
The Waterfall model organizes a software project as a series of phases, typically requirements, design, implementation, testing, deployment, and maintenance, where each phase is finished and signed off before the next one begins. The name comes from the way progress flows in one direction, like water falling down a series of steps. It is usually traced to a 1970 paper by Winston Royce, who, ironically, described the purely sequential version as risky and recommended adding feedback loops.
A Waterfall project front-loads planning. Requirements are gathered and written down in detail at the start, often in a specification the customer approves, and designers turn that document into an architecture before any code is written. Developers then build the whole system, testers verify it near the end, and it is delivered in one release. Changes after sign-off go through a formal change control process, because a new requirement can ripple back through every earlier phase.
Waterfall works like building a house: you finalize the blueprints before pouring the foundation, because moving a wall later is expensive. It still suits projects where requirements are stable and well understood, where change is costly, or where regulations demand thorough documentation, such as embedded software for medical devices, aerospace systems, and some fixed-price government contracts. Its main weakness is that users see working software only at the end, so misunderstandings surface late, when they are most expensive to fix.
Waterfall is usually contrasted with Agile. Agile repeats short cycles of planning, building, and reviewing, delivering working software every few weeks and welcoming changing requirements, while Waterfall performs each activity once in a long sequence. In practice many organizations use hybrids, such as a Waterfall-style overall plan with Agile sprints inside it, and the V-model is a well-known Waterfall variant that pairs each development phase with a matching level of testing.
Key takeaways
- Waterfall runs a project in fixed, sequential phases.
- Each phase must be finished and approved before the next one starts.
- Detailed requirements and design are written up front.
- Users see working software only near the end of the project.
- It suits stable, well-understood, or heavily regulated projects.
Example
Waterfall project plan (each phase starts only after the previous one is signed off)
1. Requirements months 1-2 Output: approved requirements specification
2. Design months 3-4 Output: architecture and detailed design
3. Implementation months 5-8 Output: complete, integrated code
4. Testing months 9-10 Output: test reports and fixed defects
5. Deployment month 11 Output: system released to users
6. Maintenance ongoing Output: bug fixes and small updatesReaders ask
What is the difference between Waterfall and Agile?
Waterfall plans everything up front and moves through requirements, design, building, and testing once, in order. Agile works in short cycles that each deliver working software, so the plan can change based on feedback.
Is the Waterfall model still used?
Yes, mainly in projects with fixed, well-understood requirements or strict regulatory documentation, such as medical, aerospace, and defense software. Many other organizations use hybrids that combine Waterfall-style planning with Agile delivery.
What are the phases of the Waterfall model?
The usual phases are requirements, design, implementation, testing, deployment, and maintenance. Some versions merge or rename phases, but the defining rule is that they happen in sequence.
Often compared
See also
- AgileTeams & Process, p. 2Agile is an approach to software development that delivers working software in small, frequent increments and adjusts plans based on regular feedback.
- ScrumTeams & Process, p. 21Scrum is an Agile framework in which a small team delivers a product in fixed-length cycles called sprints, using defined roles, events, and artifacts.
- MVPTeams & Process, p. 13An MVP is the simplest version of a product that real users can use, built to test a key assumption and learn as much as possible with the least effort.
- Extreme ProgrammingTeams & Process, p. 9Extreme Programming is an Agile method built on engineering practices such as pair programming, test-driven development, and continuous integration.
- Lean Software DevelopmentTeams & Process, p. 11Lean software development applies lean manufacturing ideas to software, aiming to deliver customer value quickly by removing waste and improving flow.
- Acceptance TestingTesting & Quality, p. 2Acceptance testing checks whether software meets the requirements agreed with its users or customers, so the team can decide if it is ready to release.
- SDLCTeams & Process, p. 23The software development life cycle (SDLC) is the sequence of stages software goes through: planning, design, building, testing, release and maintenance.
Spotted a mistake or something missing on this page?Suggest an edit