3 ms·
Waterfall was not the name given by Royce to the multi-stage model of software development but it's easy to see how it got called that. Boehm called it "Waterf
by projektfu 4y ago
Waterfall was not the name given by Royce to the multi-stage model of software development but it's easy to see how it got called that. Boehm called it "Waterfall" and used it as a foil for his own ideas in the spiral model, which was a pretty good description of a "middle-out" sort of process with an emphasis on feedback and customer support.
The Royce paper saw the one-shot waterfall as unrealistic even with the project alternating back and forth between phases. It ends with a complicated-looking process of writing two systems. Estimation of time to completion or cost is not really solved there.
But really what people mean when they refer back to Waterfall is the idea that you can put a reasonable upper bound on cost and time to completion of a larger project while keeping a maximum lower bound on functionality/scope.
Even in the 1980s, people were looking at business software systems and thinking they were pretty well defined in terms of complexity. A database, a bunch of data entry and data retrieval screens, some online functions, some batch functions. Maybe you could specify these like a builder specifies a concrete sidewalk. (A literal example from a software engineering book). Then estimation should be possible.
The trouble is that the requirements of a multi year project are often out of date before the project is started and many specifications are underspecified until the customer has seen something like the final product. So why not plan around change? Bound the budget, allow some schedule time, and see how much functionality can be built in that time. Let the customer prioritize parts of functionality and the developers work smoothly, and the whole team can stay in a mode of delivering functionality frequently.
Royce 1970. https://dl.acm.org/doi/pdf/10.5555/41765.41801 https://dl.acm.org/doi/pdf/10.5555/41765.41801
Boehm 1986? https://dl.acm.org/doi/10.1145/12944.12948 https://dl.acm.org/doi/10.1145/12944.12948