Glen makes the argument in It’s not Waterfall versus Agile, It’s sample time: ”the sampling time in the control loop determines how responsive the loop is to change.” or more succinctly, “Sample slow, respond slow” and “Sample fast, respond fast”.
I agree that sample time is the major difference between projects that succeed and projects that don’t. However I would also argue that the major difference between Waterfall and Agile is the sample time, and thus is fair to pit the two against each other.
When you get down to it, every practice and method is some variation of PDCA/DMAIC/etc. What differs from them is how quickly you close the loop between each iteration, how the speed impacts the style of communications, what you believe about the appropriateness of certain inter-team communications (can developers impose restrictions on the requirements? can developers talk to the customers?).
Agile likes it fast – you need to work hand-in-hand daily with everyone on the team because there isn’t time to do otherwise. It is believed that developers and business people need to talk together, because the developer may have a restriction that the designers didn’t know about.
Waterfall likes it slow – you write design docs, throw them over the wall to development, and again over the wall to testing, etc. You write a lot and try to be exceptionally clear, because waterfall folks believe that conversation about a project is basically a one-way street, slowly falling down each step of the waterfall till the product emerges at the bottom.
Each belief fits a different situation, and the real argument is: which one fits software development the best?
[via @jurgenappelo]