Is it possible to have a new twist on the seemingly endless debate between advocates of Agile software development and those of the waterfall model? Some people, including Coverity's Rutul Dave, think so. Coverity is a provider of code-testing products.
Dave believes that too many people get lost in the marketing hyperbole of one methodology and fail to see that Agile software development and the waterfall model have their merits and flaws; each can work better in certain industries and projects; and, heresy of heresies, they can even co-exist.
Many "Agilists" criticize the waterfall model by focusing on its practices and ignoring the fact that the principles of waterfall-based software development are not exclusive to waterfall but rather are aligned to the Project Management Body of Knowledge (PMBOK).
The criticism of the waterfall model is almost always about practices -- and bad practices at that, said Glen Alleman, vice president of Strategic Consulting and Performance Management at Lewis & Fowler, a project management and consulting firm.
One thing that drives Alleman nuts about the Agile software development community is that the loudest members seem to be those with the most anecdotal experiences: Hey, it worked for me on my little project, so it must work for you.
Anecdotes have their place, he said, but they are just that: anecdotes.
Differences Between Agile Software Development and the Waterfall Model
Agile is an umbrella term for a number of iterative and incremental software methodologies, such as extreme programming (XP), scrum, crystal, dynamic systems development method and lean development.
Unlike other software development approaches, Agile focuses all stakeholders (programmers, testers, customers, management, and executives) on delivering working, tested software in short, frequent stages. Agile's other main claim to fame is its ability to greatly accelerate the time needed to deliver finished software.
The waterfall model of development and management follows a sequential process. In waterfall projects, progress is seen as flowing steadily downwards (like a waterfall) through the phases of conception, initiation, analysis, design, development, and testing.