Well, according to the guy who wrote the original paper at least. What follows are some rather cheeky comments from me and some copy / paste of some diagrams from the original paper along with some text from
What we today know as the waterfall model comes from a paper with the title “Managing the Development of Large Software Systems”, written in 1970 by Winston W. Royce. On page 2 it contains the famous diagram with the cascade starting at “System requirements” on the upper left, continuing on through “Program Design” and “Coding” down to “Operations” on the lower right.
But nobody seemed to notice that Royce does not promote this model… He then goes on to promote a different process – he recommends to “do it twice” by building a throw-away “pilot model” first to explore novel elements and unknown factors.
By now you may be thinking this is some clever photo-shopping, but it’s not – I just put some text in red, the arrow, box and blew up Royce’s original text which really is written underneath the diagram. Don’t believe me? Read a PDF of the original paper. Do you think the paper is a hoax? Then try googling “Managing the Development of Large Software Systems pdf” and read any scan – they all say the same thing!
Are you in shock? Most (waterfall) people are when they are first exposed to this (I’ve literally seen people stagger backwards) because it says that the waterfall model is fatally flawed, risky and prone to failure. Yet we’ve been told the opposite throughout our education and careers: “the waterfall model is boring, a bit long winded, but safe”. But it’s not – it’s “risky and inviting failure”!
“Ah, but we’ve refined it through years of experience and it works now” you may say. I’m afraid not – report after report shows a high failure rate for large IT projects (mostly of which are implemented using Waterfall). For example a recent McKinsey / Oxford report, referred to by Gartner said
Half of IT projects with budgets of over $15 million dollars:
- Run 45% over budget
- Are 7% behind schedule
- Deliver 56% less functionality than predicted
Remember, this is not your fault if you didn’t know about this. It’s been one of the biggest mistakes / cons in the software industry depending on which view you adopt. The big question is what are you going to do about it now you do know?…
Well that’s easy, just go to the next page on Royce’s paper where he outlines iterative development:
Yes, that’s right, Walker Royce, acknowledged as “one of the leaders in software development in the second half of the 20th century” essentially invented Iterative Development* and not Waterfall in 1970 over 40 years ago. If only people had read the paper fully and looked at the diagram after the first one.
But maybe you want to go further? There’s a whole world of Agile, Scrum, Kanban and many other things that await you. The rest of the industry has been working away…
* He refines the above to “Do it twice”. Iterative Development as outlined by the Open Unified Process is really “Do it n”
PS There’s a large lesson in effective communication too… it’s the old classic of summarising your conclusion first, lest someone interpret your first step of reasoning as the actual solution as in this case.