the waterfall model

Better planning leads to less waste and a better product.

"...Many additional development steps are required, none contribute as directly to the final product as analysis and coding, and all drive up the development costs. Customer personnel typically would rather not pay for them, and development personnel would rather not implement them. The prime function of management is to sell these concepts to both groups and then enforce compliance on the part of development personnel. "

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.