No such thing as "Waterfall"
photograph by David C. Hoerlein

No such thing as "Waterfall"

Back in 1970 a man named Winston W. Royce published a paper with IEEE entitled, "Managing the Development of Large Software Systems" [1]. He begins, "I'm going to describe my personal views about managing large software developments." and goes on to do exactly that. He shares his experience of what worked for him, and what did not.

Interestingly, it is this paper which is often cited as the source of the term "Waterfall", a term that has been used ever since to describe an approach to implement a software system—as if Royce himself endorsed it. He didn't. Indeed, Royce uses the term "waterfall" exactly zero times in his paper. He did however include this picture.

? Winston Royce/IEEE

It is the second diagram in his paper, and the first to include all the phases of the process. It seems that most readers got as far as this diagram, maybe read the description, and decided there was no need to read further. These are the steps to develop a large computer program, they decided. It says so here. Let's get going.

Had they bothered to continue, the very next sentence would have given pause for thought: "I believe in this concept, but the implementation described above is risky and invites failure". It seems few did—either read, or think—and Waterfall as an implementation method was born. A paper that essentially advised "Don't do this" was understood as saying "Do this". Such is the power of sliver-bullet thinking.

Royce's paper is well worth reading to the end. We can see from the successive diagrams that indicate feedback and frequent iteration, that what Royce is describing is something akin to the agile approaches we recommend today. It becomes very clear in this final picture.

? Winston Royce/IEEE

Those that advocate "Waterfall" for software development are actually not following these 1970 recommendations at all, but something much older, something like a manufacturing process that grew up during the industrial revolution (1760–1840). A more general term for the approach would be "defined process". A defined process works well when what we are making is a copy (or millions of copies) of a thing we made before.

No software system has ever been made before. Each one is new. Each one is unique and designed for a specific purpose. We cannot define an exact process to make a thing that has never been made; it is actually impossible, and it takes magical thinking to believe we can.

Developing new products require emergent processes, not defined ones. They require feedback, iteration, inspection and adaptation. This has always been the case. It has never not been the case. It isn't the case now.

[1] Royce, W.W. (1970) Managing the Development of Large Software Systems. Proceedings of IEEE WESCON, 26, 328-388. PDF version available here .

Muhammad Ali Omer, EMBA, PMP, FS Engineer (TüV Rheinland)

Head of Projects at Avanceon ME & SEA | LUMS EMBA '24 Gold Medalist | PMP?, TüV FS Engineer SIS | Program Management (Conventional/Agile), Business Strategy, Financial Management | Design Thinking & Customer Centricity

1 年

Quick questions: 1. How would you justify the emphasis on thorough documentation, as indicated on Page 5/11 and in the screenshot below? 2. Why did Royce emphasize the Big Design Up Front approach, which is an inherent requirement of the Waterfall methodology, despite its limitations?

  • 该图片无替代文字
回复

I agree with your position, mostly. But let's not forget his essay also, unfortunately, reinforced key elements of the Waterfall myth: · Royce argued “begin the design process with program designers, not analysts and programmers”. · And “ensure that a preliminary program design is complete before analysis begins”. To understand the context of those suggestions, and to understand why Royce had not yet abandoned the Waterfall myth entirely, it helps to remember that computers were the size of trucks and the cost of change was extremely high. A design flaw discovered late in development was expensive and time-consuming: much more than changing a few lines of code, imagine having to disassemble a truck-size computer, manufacture new components, and rewire entire electrical circuits. He argued it was necessary to spend the requisite time designing with chalkboard and paper before employing analysts and programmers (i.e., the people who assembled the hardware, operated the keypunch machines, catalogued the punch cards, and ran the programs). Many readers of his essay concluded that segregated sequential phases are necessary.

Angela Johnson, CST

Professional People Geek | Author | CEO | Certified Scrum Trainer | Facilitator | Agility Guide & Mentor

1 年

Thanks for posting. I point out this fact from 1970 all the time in #csm workshops. Reading comprehension goes a long way. Too many look at a picture and make assumptions.

Srikanth Ramanujam

Curating valuable patterns for customer-centric people driven Product cultures. Enabling flow from action to evolve out adaptive organizational ecosystems.

1 年

Tobias Mayer if you look at the article he also says do all the steps at least twice. And the second time you’ll be closer to what the customers might want. Even with possible big batch it was recommended to have two full iterations. Something conveniently forgotten and assumed as first time get it right.

Iain McKenna

Certified Scrum Trainer. Agile & Lean Consultant.

1 年

Yes, Tobias, Royce goes on to describe an approach that is both iterative and incremental, with early increments focused on critical areas (i.e. doing the risky bits first). He even advocates customer collaboration. Quite shocking really and I doubt it will ever catch on ;)

要查看或添加评论,请登录

Tobias Mayer的更多文章

  • Artificial Stupidity

    Artificial Stupidity

    "There are all sorts of temptations in this world that will eat away at your creative spirit, but none more fiendish…

  • Living the Scrum Values

    Living the Scrum Values

    How should we live the scrum values? Here's one way: by examining how we are not living them. At the end of each day…

    30 条评论
  • Staying sane in 2021

    Staying sane in 2021

    An ancient picture of childbirth. Not a typical LinkedIn topic, and not really the topic of this post, rather a…

    10 条评论
  • My Wasted Life

    My Wasted Life

    Note: This is a copy of a newsletter I sent out two years ago to a small subscription list. It occurred to me it has a…

    16 条评论
  • Is the Scrum Master a Code Coach? ???

    Is the Scrum Master a Code Coach? ???

    A New Pair of Glasses. In this series I challenge some of the misinformed and myopic statements I've heard people make…

    26 条评论
  • Virtual Scrum? Well, Maybe

    Virtual Scrum? Well, Maybe

    This article is an update to Virtual Scrum? No Thanks written three months ago. After five months of lockdown, physical…

    15 条评论
  • Scrum is a Rigid Process ???

    Scrum is a Rigid Process ???

    A New Pair of Glasses. In this series I challenge some of the misinformed and myopic statements I've heard people make…

    18 条评论
  • Scrum and WIP limits ???

    Scrum and WIP limits ???

    A New Pair of Glasses. In this series I challenge some of the misinformed and myopic statements I've heard people make…

    95 条评论
  • Virtual Scrum? No Thanks

    Virtual Scrum? No Thanks

    Five years ago I wrote an essay on training that began, "I am not a trainer. Training is for circus animals, pet dogs…

    108 条评论
  • Small Things

    Small Things

    A personal reflection..

社区洞察

其他会员也浏览了