The traditional method for developing and delivering software. The Waterfall method breaks a project into discrete stages:
In a Waterfall process, each step must be completed before moving on to the next, and all steps in the process must be completed before any value is delivered to the customer. You can see from the illustration exactly where the name “waterfall” comes from–the development process literally “flows” from one stage to the next.
The waterfall method is characterized by what Agilists call “big design up front.”
Winston W. Royce first presented what is now known as the traditional Waterfall method in a 1970 paper, Managing the Development of Large Software Systems, at an IEEE event called WestCom. He didn’t use the term Waterfall, but he did describe a sequential process where each phase is completed before the next is begun. Royce went on to say that of course one would never want to run a software project this way—but somehow, the description of what would come to be known as Waterfall was taken out of context and widely adopted, to the extent that it is now considered standard operating procedure for large software projects.