“study of 6,700 projects, it was found that four out of the five key factors contributing to project failure were associated with and aggravated by the waterfall model, including inability to deal with changing requirements, and problems with late integration.”
Source: http://www.versionone.com/Resources/AgileBenefits.asp
The main problem of traditional development method is once one stage of the traditional/waterfall method has been completed, going back is impossible. If you go back it is costly and inefficient.
But on the other hand if you follow agile method, change is welcome. At the end of each stage/iteration you will have a working software. And the size of the iteration is 2/4 weeks.
The most interesting thing is agile says customer is a part of development. So where customer is a part of development, you can't have so many requirements gap and after all customer is getting a working software in every 2/4 weeks. so if there is any gap it is not going to cost you that much.
Agile says document but do not get lost in piles of paper.Agile includes some excellent practices and those are
-Active customer participation
-Respond to change
-Time boxing
-Iterative and Incremental delivery
-Use case driven
-Prioritizing requirements
-Team work
-Team must be empowered to take decision
-Pair programming
-Just enough documentation
-Testing is integrated throughout the life cycle
-JAD session/daily meeting/Communication
-Refactoring
-Feature driven
-Visual modeling- A picture is worth a thousand words
In traditional development for a mid size project the requirement specification takes few months and the boss loses patience and bullies all concerns to sign off the specification. Then the developers go away with the confident that they have the signed off requirements so no one gonna blame them for any problem. They design for few months and coding starts after several months.
When the customer gets the software, already it has been almost a year. When they start using it, they find their business changed a lot.
But in the case of time boxed delivery it would never been happened.
"another study of over 400 waterfall projects reported that only 10% of the developed code was actually deployed, and of that, only 20% was actually used."
Source: http://www.versionone.com/Resources/AgileBenefits.asp
Finally I am totally agree with cockburn and like to say "Waterfall is an acceptable way of failing"