Waterfall was extremely popular pre-2000 and is still heavily used today. It is especially used for project management work and when working with agencies.
Its origins stem from software developers refining the stages of hardware development to produce software.
Waterfall software development has 7 main stages according to the Software Development Life Cycle (SDLC):
With Waterfall software development a team does not move forward to the next stage until the current one is 100% complete.
100% complete means that all of the deliverables for that specific stage have been approved by the key stakeholders.
Everything moves from one stage to the next like a big dump of water. Just like a waterfall.
Now you understand why it’s called “Waterfall” software development.
Though presently it is not the most popular framework to use when building software, Waterfall has many benefits.
Some of the benefits of Waterfall are:
With Waterfall stakeholders are crystal clear on what the final solution will be.
This is due to the detailed specifications that are defined in the early stages of the project, much prior to a single line of code being written.
Due to an early fixed agreed upon scope designers and developers can make more optimal design decisions rather than designing for unknowns.
Waterfall is great when working with agencies and/or third parties. Due to the stage-by-stage approach they can scope and budget based on agreed upon work.
This also makes it easier to manage a budget.
One benefit that Waterfall has for product managers specifically is that they are not as involved in the day-to-day activities related to delivery.
Once the requirements are set the team gains clarity on what their tasks are and a product manager can attend to other matters as they are needed.
The benefit that Waterfall poses to management teams is that it gives them clear specifications on what will be delivered according to the set milestones.
This makes it easier for them to strategize and plan accordingly. Especially if there are dependencies related to the work.
For the many benefits of Waterfall software software development there are also downsides as well.
What are the downsides of Waterfall?
Waterfall is not the best software development framework to follow when there are constant changes to the market, product, stakeholders, etc.
Once the requirements have been finalized there may be new information that is received that drastically affects the product. Unlike Agile, Waterfall does not make it easy to go back and change decisions made in the earlier signed-off stages.
Which leads to downside #2.
With any product there are assumptions that are made along the way.
One way to validate your assumptions is by placing your product into the hands of your customers for direct feedback.
With Waterfall however the time may be lengthy to complete each stage and gain approval from stakeholders before moving forward.
While business leaders may assume that customers wanted a specific feature with a specific implementation, with the time required to get through all of the stages and launch, once the product has launched market sentiments may have changed.
Changes at this point may be costly and time consuming.
If they are critical then the team may now have to go back and revisit their flow, then go stage-by-stage before launch.
While this can happen with Agile as well, one thing to note is that with Agile there are incremental releases for the product.
So even if a product is late, customers will still have a real working product that they can benefit from soon.
Anyone who works in the software industry knows that software development takes longer than planned. There are many unknowns that may occur.
For this reason product managers try to factor these unknowns into their plans.
Though there might be a clear scope with set milestones, if other stakeholders are dependent on the plan and something slips, then future stages get delayed and it takes a longer time for customers to get access to a working product.
With Waterfall, testing does not happen until stage 5: Testing.
This can be problematic because there may be unnoticed issues in the product which are not discovered until later stages. And these may be critical issues.
There is a lot of work that goes into the stages prior to step 5, work which has been finalized and signed off on to progress to the next stage.
Once an issue is found after testing the team will be required to go back and address these issues which could have been discovered prior had testing taken place prior. Or in tandem with development.
Agile is a direct response to this.
Adding to the above, with Waterfall customers and end users must wait until the end of Implementation (stage 6) before they can obtain value from it.
The challenge this poses is that their sentiments may have changed from the time the team started discovery to the launch of the product.
And if there are issues post launch or the product no longer meets their expectations then it is more costly and time consuming for the team to address them.
Keeping the benefits and downsides of Waterfall software development in mind, when is it best to use it?
Waterfall should be used when the requirements of the work to be performed are crystal clear.
For example when building computer operating systems or critical software applications.
It would not make sense to build car braking software in an Agile way; build a portion of it, launch, test, and then iterate. People’s lives are too important to release such critical software in such a fashion.
Rather a solution as important as this needs to be thoroughly thought out from beginning to end, rigorously tested, and then launched.
If the requirements are clear and there is little expectation of change to the scope then Waterfall is the way to go.
At this point you’re probably asking yourself: if this is an ultimate guide about Agile why did it start by covering Waterfall?
Knowing what came before Agile will give you a better appreciation for it and a better understanding of how and why it works.
Let’s now dive deeper into the main topic of this ultimate guide.