Royce's Diagrams

Winston W. Royce's 1970 paper “Managing the Development of Large Software Systems ” introduced what later came to be called the "waterfall model for software development" and then painstakingly showed how the model was too simplistic. What people remembered was the simple model. Why?

This page is an Example.

the figures

Here are (most of) the figures from Royce's paper. The captions describe the point of each figure.

This is only sufficient for the simplest programs.

This is the waterfall model. In a perfect world, with perfect people, this would work swell.

In real life, there will certainly be some iteration. But revisiting phase N-1 as a result of what you learn in phase N is perfectly manageable.

What you want to avoid is a discovery at phase N requiring changes way upstream.

Adding a new higher-level design phase with specific deliverables will reduce the need for rework.

Note that the back arrows on the main flow have been removed. Out of sight, out of mind. We've moved from iteration being normal to it again being something that doesn't fit the model.

A number of documents are required to keep control.

Remember that new phase? The work involves what we would now describe as a prototype. Essentially a waterfall-within-the-waterfall that informs later phases.

Also, testing is more complicated than a single rectangle implies. Some work needs to be done before testing begins, and you must pay attention to different subtasks.

Also, you need to involve the customer before the last minute.

This is Royce's summary document. Note that it doesn't include everything. Particularly, it doesn't have any back arrows.

oopsie

Someone I knew once had a cat gift him half a rabbit, arranged aesthetically in his bathtub.

No disrespect to Royce (because I've done the same), but I imagine his final diagram landing as well as the rabbit did.

That last diagram does not inspire a "Yes! Let's get to work!" reaction. It inspires an "Ick, that looks complicated" reaction and a retreat to his much more aesthetic figure 2, which he described as "risky and invit[ing] failure."

Good ol' waterfall

Even his one-step back links got forgotten.

We can blame all the people who misinterpreted Royce. A typical "blaming people for being people" response.

Or we can say, "if you give people a chance to substitute a tidy-but-wrong abstraction for a messy-but-true reality, they'll do that." It's your responsibility as an author - and diagram-maker – to guide people away from misinterpretation.

see also

I have a more extensive discussion of this in two places:

* in a podcast (transcript available)