The Waterfall model is usually perceived as rigid and bureaucratic compared to Agile methodologies. However, both have their place.
There will be cases when a plan-driven methodology does not work. If the level of uncertainty is high and not all questions can be answered right away, then you should probably choose an agile methodology.
For other projects, a waterfall-like approach will be a better fit. Moreover, Waterfall is still widely used.
Let me give you some examples.
When developing a weapons control system, the requirements should be clarified in advance and need to be stable.
Changing the requirements midway would increase the costs considerably – and these kinds of projects are expensive anyway.
A Waterfall approach makes perfect sense in this case.
Here’s another example (it’s an actual job posting from Upwork):
“Looking to create the next big social media platform for IOS and Android”
In this case, coming up with a detailed plan based on assumptions wouldn’t make sense. The description is vague, and the customer won’t be able to describe precisely what they need.
This high level of uncertainty calls for an agile approach. Creating “the next big social network” will require multiple iterations.
So, to sum it up you should use the Waterfall when you know what the final product should be and the client can’t change the scope of the project.
Agile methodologies are a better choice when there’s much uncertainty involved, the requirements are vague or rapidly changing, and clients can modify the scope of the project.