Agile & Waterfall are two sides of the exact same Coin, and are equally good or bad.
Some Agile enthusiasts enjoy lambasting waterfall while espousing “Agile”, however the two techniques have many similarities — they both represent extreme ends of a continuum.
“Waterfall” is basically a Strategic method of attaining goals, and “Agile” is basically a Tactical method for achieving goals.
Both are equally limited; strategy without tactics is ineffective, and tactics without strategy are especially ineffective, especially over a longer term.
Some happy medium (Iterative Traditional) would be best; either extreme is equally good or equally bad depending on the point of view.
However trading in one extreme (“Waterfall/Strategy”) for another extreme (“Agile Programming/Tactics”) is certainly no great improvement, in fact it is merely a change — in this case, swapping one extreme for another.
The solution is not to be found at the extremes, but in the middle.
This has been known for centuries, but has been lost in what Sun Tzu rightfully decries as “Noise.”
Strategy without tactics is
the slowest route to victory.
Tactics without strategy is
the noise before defeat.
— Sun Tzu
Traditionalists might stand to improve from a little more iterative and incremental cycle, and Agilists could probably stand to improve with a little more documentation, process and architecture.
Any successful campaign must be waged using both Strategy and Tactics, not merely one or the other.
Examples of wars/battles failed by using exclusively one or the other are: The Maginot line was clearly a failure, with far too much emphasis on strategy and little on tactics. The current gulf war is a failure because it was purely tactical in nature (removing “Saddam”) with little though if any given to the strategy of a post Saddam Iraq.
Hopefully this shows that neither extreme is particularly ideal, and modern planners at all levels should be mindful of both Strategy and Tactics when waging campaigns.