Our next Web Forum is July 19th and it will focus on USAC’s journey from waterfall to agile as told by Diane Martin and Mary Rasmussen, Directors of Software Development with the company. Keeping that in mind, I thought I’d dive into those two particular software project management approaches today.
The waterfall model (pictured above) is a sequential design process in which progress is seen as flowing steadily downwards, like a waterfall. All requirements gathering is completed upfront in this approach and requirement changes become more difficult and expensive the deeper your team moves into the lifecycle. As a result, this kind of approach is generally recommended for shorter projects that last around six months or so. Here all of your features are going to be delivered at once after implementation occurs near the end of the project lifecycle. In other words, you won’t receive any real payoff until the end.
Agile, on the other hand, is a group of software development methods based on iterative and incremental development (usually 2-4 week iterations), where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams (pictured above). This approach aims to solve some of the perceived problems with waterfall. Here, there’s more emphasis on business value instead of plan or process and a project’s priorities are looked at on a continual basis. Unlike waterfall, agile encourages rapid and flexible response to change. Also, with agile, you are essentially rewarded with a small subset of features after each of the iterations. These are potentially shippable features and prioritized based on value.
Each methodology obviously has its own pros and cons. When trying to decide on the right approach, it is important to remember that every organization and subsequent project has its own unique characteristics. Those will typically determine your needs and constraints. Some teams even opt for a more hybrid approach, taking specific elements from each methodology that may be applicable to their project. This is happening a lot more lately but it takes much more discipline on the project manager’s part to successfully pull off.
There are a thousand different angles one could take on either of these methodologies but this is a simple overview. I’ll get into a little more detail in future posts and I’d really like to hit on the topic of SCRUM. We’ll actually have a report coming out in the next couple of weeks on agile development and User Experience Integration in the U.S. Senate which discusses the scrum framework in-depth. For now though, here’s a little bit more outside reading on “Waterfall vs. Agile:”
Waterfall vs. Agile Methods: A Pros & Cons Analysis – (The Server Side)
Waterfall vs. Agile: Can They Be Friends? – (Agile Zone)