The irony is never lost on me when I hear people discussing waterfall. I pray that no one will ever misconstrue me as much as poor Winston Royce is misconstrued today.
From the second page of the paper (what most people consider as waterfall).
Now Royce has the following to say about this:
“I believe in this concept, but the implementation described above is risky and invites failure. The problem is illustrated in Figure 4. The testing phase which occurs at the end of the development cycle is the first event for which timing, storage, input/output transfers, etc., are experienced as distinguished from analyzed. These phenomena are not precisely analyzable. They are not the solutions to the standard partial differential equations of mathematical physics for instance. Yet if these phenomena fail to satisfy the various external constraints, then invariably a major redesign is required. A simple octal patch or redo of some isolated code will not fix these kinds of difficulties. 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 lO0-percent overrun in schedule and/or costs.
Sounds a lot like the arguments people make against waterfall right?
Now I may disagree with some of the assessments made by Royce (importance of documentation being one) but the irony of associating the chart above to him never misses me. Read the paper, waterfall as presented by most people is a strawman http://leadinganswers.typepad.com/leading_answers/files/original_waterfall_paper_winston_royce.pdf