the waterfall model
Better planning leads to less waste and a better product.



Dr. Royce’s original 1970 paper describing what is known today as the waterfall model to software development can be accessed in its entirety at the following link:
Managing the Development of Large Software Systems, by Dr. Winston W. Royce
Accountability
Each phase of the waterfall model has specific deliverables and timelines. This lends itself to actionable data metrics, like percent on time delivery.


Clear expectations
Because planning is more thorough than an agile approach, customers know exactly what they are getting and there are clear boundaries of project scope.
Better testing
Superior product documentation created during the waterfall process means better QA procedures can be implemented downstream. QA criteria are thought out well in advance of coding, so many architecture problems are averted in the coding phase.

The Waterfall Model's 7 steps

System Requirements
Gather requirements for how the software will be deployed, across what operating systems, and what compatibility requirements there are.

Software Requirements
Outline software requirements. What does the software need to achieve? Who are it's users? At this stage user stories are often drafted.

Analysis
Are there any User Stories missing? What problems will users encounter? Are there any compatibility issues? What stack is best suited to meet these needs most effectively? These are all examples of questions that will be asked during the analysis phase.

Program Design
This is the most intensive phase where all aspects of the program are planned out. Usually mock-ups are made of the user interface and functionality so that all the developers understand exactly how the application is supposed to perform.

Coding
The project manager will break up the program into phases and even further into small chunks or tasks which will be assigned to the developer team.

Testing
Testing and coding is an ongoing cycle, though generally every task will be subjected to a series of automated and manual tests to ensure it is functioning according to design. On completion of each phase, there will usually be a more comprehensive set of tests run to ensure that the application is functioning optimally according to criteria set during the planning phase.
Operations
The operations phase is the last phase of development, and is when the application is actually deployed for use by the end customer. Application needs may change over time and new tasks may be created. Even small tasks to be implemented on an existing application can be subjected to the waterfall method to ensure adequate planning is given. It’s especially important once an application is live and being used that new additions are adequately thought out and tested to prevent major bugs down the road.