This great Dilbert cartoon was put on the ALT.NET Yahoo Group earlier this week. Although it is really funny, it also illustrates some of the misconceptions about agile software development. No more planning, no more documentation and even no more design. I've heard and read it all. Waterfall zealots are fond on big analysis and design up front. They still feel that this is superior to any of the agile methodologies, claiming that design-as-you-go is pure evil.
Well I let you in on a little secret. Regardless of any methodology you use, design-as-you-go is very typical and appears in the coding phase of EVERY software project. Why? Because your understanding of what you need to build before you actually start building it, is not as good compared to the insights you have while your in the coding phase. What's the difference between waterfall and agile development? With agile programming I have various indicators guiding me while I'm doing the actual coding work, like unit tests, continuous integration, daily builds, daily scrum meetings, etc. ... . With waterfall methodologies you have only Change and Pray Development.
As I wrote before, Agile is just human nature. Waterfall is just plain wrong.