Context-driven thinking... or not
I revisited this passage recently. I've added the emphasis.[quote]I am going to describe my personal views about managing large software developments. I have had various assignments during the past nine years, mostly concerned with the development of software packages for spacecraft mission planning, commanding, and post-flight analysis. In these assignments I have experienced different degrees of success with respect to arriving at an operational state, on-time, and within costs. I have become prejudiced by my experiences and I am going to relate some of these prejudices in this presentation.[/quote]Each of the italicized passages provides important information about clues the author's context, and he's explicit about his biases.The author goes on to suggest that program design comes first; that the design should be documented; that it should be done twice ("If the computer program in question is being developed for the first time, arrange matters so that the version finally delivered to the customer for operational deployment is actually the second version so far as critical design/operation areas are concerned."); that testing should be planned, monitored, and controlled; that the customer should be involved. Then he notes (again, I've added the italics) "I would emphasize that each item costs some additional sum of money. If the relatively simple process without the five complexities described here would work successfully, then of course the additional money is not well spent."What's interesting is how, over the years, people have adopted and applied the model that the author describes while implicitly ignoring the context that he has explicitly set out. The model might make sense in similar contexts--very large projects with enormous technical complexity where huge amounts of money, human lives, and national prestige are at stake--with the additional assumption that it's still 1970.The author? The model? The author is Dr. Winston W. Royce. The model is the Waterfall model of software development. http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf.