News for hackers. Stuff that matters.
Re:Managing the Development of Large Software Systems (1970)... by nickpsecurity on Tuesday January 19, 2016 @01:36PM (#10932782)
How did I never read this paper before now!? People have been bashing waterfall for a long time. If this paper originated it, then the resulting waterfalls say more about the readers and IT culture than the visionary that recommended a very, adaptive process. A few points on the paper.

The author describes the software development as a creative process. Most managers and even many CompSci researchers thought it was mechanical with potential for automation and assembly-line type guidance. He wisely contradicts that in a way that I hope was to help us all out by putting reality in management reader's heads.

I used to think one person did waterfall followed by other models (eg Spiral) realizing initial work usually failed and is rewritten. Now I know it's the opposite: waterfall author knew requirements or design would require rewrites. Even made new diagrams for it. Diagrams most of us never saw while ideal model was plastered everywhere. He underestimates how difficult coding part can be but his claims still proved out with methods like Cleanroom and Correct-by-Construction that kept coding structures simple. Almost all defects happened outside of coding and coding changes were straight-forward.

The documentation chapter is pure gold. Managing scope, preventing excuses during failures, ensuring everyone is on same page, rules to keep it consistent even by halting development, wisely noting maintenance/rework phase is horrible enough that docs are a necessity, and handing off system to cheaper, ops people. Those particularly stood the test of time.

In one section, he recommends implementing something to get the process started even if one doesn't know what they're doing. That's to avoid paralysis by analysis and give something tangible to start with. Ironically, "modern" and anti-waterfall methods recommend exactly that.

The simulation part is tripping some people up and a weird read. People take it too literally. What I'm seeing is a call for prototypes that explore some of the user interface, key calculations, structure, I/O, and other trouble spots. The stakeholders each review a bit of this to spot early requirements and design problems. The next section mentions feedback loops that do the same thing which collectively result in buy-in by those paying. Just shows he wisely considered a critical human factor that led to many project failures later on.

So, it was a short and delightful read whose advice should've led to many successful projects and hastened arrival of more Agile methods. Instead, people cherry-picked his points and even slandered him in subsequent work. All kinds of disaster followed.

Least I know now that the real Waterfall was designed to prevent that and probably would have most of the time. So, props to Dr. Royce for being one of the giants whose shoulders we stand on trying to make IT great. Well, should've stood on for many. ;)

Re:Managing the Development of Large Software Systems (1970)... by mannykannot on Tuesday January 19, 2016 @04:04PM (#10934002)
The word 'waterfall' does not appear in this paper, not even to describe the model that Royce is criticizing (and it would be a completely inappropriate and misleading metaphor for the model he is advocating.) I suspect the use of 'waterfall' as a model of software development is a retronym coined (possibly by Royce, elsewhere) for what was once the only model of systematic software development, once its shortcomings and the need for an alternative became apparent. It has persisted because it is a convenient straw man: it is easy to make almost any new model look good when you compare it to the waterfall model. We should have burned this straw man long ago: 45 years have gone by since Royce explained its shortcomings and proposed better alternatives, so by now, we really should be able to justify our latest methods with something more than just "better than waterfall".
Re:Managing the Development of Large Software Systems (1970)... by nickpsecurity on Tuesday January 19, 2016 @04:36PM (#10934250)
Great points. I guess the pdf being called waterfall threw me on that part. Maybe we should call his the Royce model instead, eh?