Psyc+Tech: Don’t draw diagrams of wrong practices:
The Waterfall model is originally invented by Winston W. Royce in 1970. He wrote a scientific article that contained his personal views on software development. In the first half of the article, he discusses a process that he calls “grandiose”. He even drew a figure of the model, and another showing why it doesn’t work (because the requirements always change). This model is the waterfall. He used it as an example of a process that simply does not work. In the latter half of the article he describes an iterative process that he deems much better.
OK, so why do people still advocate the waterfall? If you look at the scientific articles on software engineering that discuss the waterfall, they all cite Royce’s article. In other words, they’re saying something like “The waterfall is a proven method (Royce, 1970).” So they base their claims on an article that actually says the opposite: that the model does not work.
This is how science (unfortunately) often works – researchers just cite something, because everyone else does so as well, and don’t really read the publications that they refer to. So eventually an often cited claim becomes “fact”.
I would argue that Waterfall methodologies can work, however just like Agile, it depends on the project, the team, and the environment. As always, pick the right tool for the job. A development methology is just another tool. Just another means to an end.
A couple examples come to mind right away – when you’ve only got resources for a finite period and need them to get their portion done all at once, when certain portions require such investment they should be focus on primarily in one gargantuan effort, etc. You’re more of a pro and could probably post a bunch more examples – consider this a request for a post? 🙂
Maybe sometime. I don’t know if I’m ‘more of a pro’ then you dude, but maybe sometime I’ll get around to sharing more of my thoughts 🙂
There are no silver bullets. That’s what it all boils down to for me.