The term "Waterfall"​ highlights a problem, not a method, for software delivery

The term "Waterfall" highlights a problem, not a method, for software delivery

When the “Waterfall” diagram was first drawn, it was one engineer’s attempt to point out why the current way of delivering software was flawed.

In his 1970 paper MANAGING THE DEVELOPMENT OF LARGE SOFTWARE SYSTEMS, Dr. Winston Royce only drew the “Waterfall” to explain the problem and then give some ideas on how to fix it.

His basic premise being, with a gated approach, once you move downstream it’s hard to return upstream. And the more you try to do before each gate, the harder this gets.

Royce goes on to redraw the diagram to show a number of feedback loops which he felt were necessary to incorporate. As new information is uncovered during each stage, this is fed back into the relevant phase.

In the same paper, Royce advocates for doing it twice, i.e. going through the entire process first to create a simulation or prototype. This first-cut is then used to inform and de-risk around key areas of the product’s design as much as possible.

One other key recommendation Dr. Royce gives is that we involve our customer, as he puts it

To give the contractor free rein between requirement definition and operation is inviting trouble.

“Waterfall” isn’t a method

So, “Waterfall” is not a software delivery method, it’s the description of a potentially flawed, heavyweight approach.

Regardless of the method we use to deliver software, we go through a number of phases: requirements gathering/understanding, analysis, design, build, test and deliver.

The universal problem we have is there is often a degree of uncertainty that even the most rigorous process can’t uncover until we move to the next phase. This is coupled with the fact that most times our customer doesn’t know exactly what they want until they see it and use it.

And this is a key aspect for software development teams to remember; we’re often building a tool for another human to use. For the customer to find that tool useful, then we have to understand the job they’re trying to do as clearly as possible. The most effective way to do that it through direct conversation and collaboration.

A key difference between the different methods is how we choose to involve the customer. The Agile movement chose to adopt a deliberately lighter, more interactive approach.













Hey Paul I love this and thanks for suggesting I look up Royce's work recently . Suggesting that anyone can develop something waterfall is almost silly in it's extreme naivety it's curious how people still hold this belief. I like to believe that everything is somewhere along the continuum if adaptive and predictive

To view or add a comment, sign in

More articles by Paul Flewelling

  • The bigger picture

    There’s a game I play with teams which I use as a talking point for working collaboratively. It needs no more than 12 –…

    10 Comments
  • Avoiding rust or ruin by managing our energy

    Last week I wrote about how some of us might feel we’re losing our mojo: In the initial scramble which enabled us to…

    4 Comments
  • LOST: My mojo

    LAST SEEN: at the end of level 4 lockdown IF FOUND: please return “If you see my motivation, could you get it back to…

    7 Comments
  • Innovate or die trying

    Here's the recent talk I gave at Agile Singapore 2016 on digital disruption in the newspaper business.

  • Five ways I've f***ed up as a coach

    Lets face it, whatever your profession, you don't always get things right. What's probably more important than the f***…

    13 Comments
  • The ScrumMum - an agile adoption anti-pattern

    Whichever way you look at it, if you've ever heard yourself talking to your team and uttering the words “I’m not your…

    6 Comments

Others also viewed

Explore content categories