Agile Is In…But Waterfall Is Still Relevant
The majority of software development projects are now managed using some form of agile methodology. Does waterfall method still have a place in the mix?
Let's do a quick review of Agile and Waterfall, then come back and see where Waterfall is still very much alive and well.
Agile is about being flexible – and about delivering tangible results. It’s also about empowerment – at the working level.
Agile at its core is rooted in the values expressed in the Agile Manifesto, which emphasizes “Individuals and interactions over processes and tools, Working software over comprehensive documentation, Customer collaboration over contract negotiation, and Responding to change over following a plan.” Agile is action oriented...and less planning oriented.
One place to learn more about Agile is to study software tools that support Agile. One leading tool set is by Atlassian is a leading provider of software for agile teams. Atlassian provides some great information called “The Agile Coach”. You'll find key resources there on various aspects of Agile project management.
One of my favorite places to get an overview of anything is Wikipedia. The entry on “agile management” emphasizes the ideas of incrementally, flexibly, and interactively designing and building software applications. A key point in the Wikipedia entry is that Agile requires highly capable individuals in terms of business, technical, and communications skills.
Waterfall is decidedly less exciting and more dogmatic. It's about doing a lot more work up front by sequentially planning everything that is to be delivered, and then delivering everything that was planned. The big question is whether it's possible to even do that and come out with something of value on a software development project.
The waterfall method for software development is generally credited to Winston Royce through a paper he wrote in 1970 entitled, “Managing the Development of Large Software Systems”. Royce specified five key steps to managing a project, and interestingly also recommended five things of an agile nature that would reduce most of the risks inherent in the waterfall method.
There is lots of software that supports the waterfall method, but none more prevalent that Microsoft Project. In fact, you can get a nice example of building an MS Project schedule of a waterfall project with this video (https://www.youtube.com/watch?v=PlxOIRt8pm4). The video illustrates the practicality and continued relevance of waterfall.
In Wikipedia,the “waterfall method” page describes waterfall as a method “in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of conception, initiation, analysis, design, construction, testing, production/implementation and maintenance.” It further explains that the waterfall approach was adapted from heavy industry, where change is extremely costly and impractical.
The key is to ensure that sufficient requirements are done up front to pint the project in the right direction. Furthermore, there needs to be a plan to refine those overall requirements - in a top down manner, such that scrum teams have some guidance. It is important to balance the top-down and bottom-up processes. As a top-down process, waterfall is still relevant!