June 11, 2018

 

Dr. Winston Royce’s 1970 paper is generally considered to be the paper which defined the "waterfall" model.

What’s really interesting about his paper is that he wasn’t advocating this approach at all. He explains the impact of defect

discovery in the testing phase:

 

The required design changes are likely to be so disruptive that the software requirements upon which the design is based and which provides the rationale for everything are violated. Either the requirements must be modified, or a substantial change in the design is required. In effect the development process has returned to the origin and one can expect up to a

100-percent overrun in schedule and/or costs.

 

What’s most interesting is that he goes on to propose five enhancements to the “Waterfall” model:

  1. Program design comes first
  2. Document the design
  3. Do it twice. Note that it is simply the entire process done in miniature, to a time scale that is relatively small with respect to the overall effort.
  4. Plan, control and monitor testing
  5. Involve the customer. Involve the customer – the involvement should be formal, in-depth, and continuing. To give the contractor free rein between requirement definition and operation is inviting trouble.

This is certainly Agile as we understand it today , but it contains thoughts that go in the right direction.

 

So how did Waterfall become so popular if its shortcomings were so well-known? No one really knows for certain, but it’s troubling to think that after almost 50 years, many companies are still following this model.

Waterfall: A Big Misunderstanding