Engineering leadership | Blog Post
Agile vs. Waterfall: Side-by-side Comparison
Share this post
Over the past 30 years, the project management sphere has been dominated by discussion of the Agile vs. Waterfall methodology. There’s something to be said for careful planning and predictability: two inherent qualities of the Waterfall framework. Some industries – manufacturing, and construction being two prime examples – require a systematic approach to building a product.
Within the Waterfall framework, a traditional form of project management, the scope is firmly established from the outset, and the end product is known, be it a widget or a bridge. The approach is linear, with a series of sequential stages to get from A to E, and tight controls over schedule and budget. There is little interaction among functional teams as the project unfolds: each does its part and hands off to the next. There is also no interaction with end-users until the product has been developed and is ready for testing.
Although this approach works for some fields, it’s not always conducive to the world of software development. Developing new products typically requires room for innovation and for solving the unknown. Development teams thrive when they have the flexibility to hypothesize, test and return to earlier stages to make modifications as the need arises. They also value collaboration with their peers and frequent engagement with end users.
The Agile framework was created in response to these requirements.
The story of how the Agile framework came to be is an engaging, feel-good story that began in a ski lodge in Utah. In 2001, 17 people with expertise in software development gathered at a ski resort to share ideas on how to meet the changing needs of software users. Out of that gathering came the Manifesto for Agile Software Development.
The manifesto comprised a set of four values and 12 principles. Its purpose was to build a foundation for the type of communities that its originators wanted to work in – ones that would recognize the importance of people and collaboration.
The values described how practitioners of this new methodology would do things differently from how they were done under the Waterfall framework. They would value:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
The principles were so contrary to Waterfall methods that they might have seemed heretical to some traditional project managers. For example, Principle No. 2 reads, “Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.”
This group, which called itself the “Agile Alliance,” did not consider itself radical. Rather, the group’s scribe, Jim Highsmith, wrote, “The Agile movement is not anti-methodology, in fact, many of us want to restore credibility to the word methodology. We want to restore a balance. We embrace modeling, but not in order to file some diagrams in a dusty corporate repository. We embrace documentation, but not hundreds of pages of never-maintained and rarely-used tomes. We plan, but recognize the limits of planning in a turbulent environment.”
The Agile framework starts with the premise that the problem to be addressed is complex, the solutions are not known, and requirements will likely change along the way. In keeping with the principles, the organizational community that evolved through the practice of Agile methodology is more horizontal than siloed. It champions innovation and fosters a culture that encourages cross-functional teams to work collaboratively toward achieving iterative goals.
The structure for carrying out an Agile project was born from the principles established by the Agile Alliance in 2001. Agile teams work together in “sprints,” short intervals of about two weeks each. They meet before each sprint to plan and have frequent sprint meetings to review their progress. They progress incrementally, adjusting as required.
Every sprint ends with a retrospective on what the team could have done differently. It also ends with something tangible to deliver, such as an early release. At the close of the project, the team delivers a product that has been tweaked and tested.
This is the type of culture that breeds innovators. Yet, the framework is not without risks. Two of the most common risks are increases in scope and budget, which highlights the importance of client engagement throughout an Agile process.
Imagine a transportation company planning a long road trip. Five delivery people have a carefully planned route and a clear destination. One driver logs his leg of the journey and hands off to the next and so on until the destination is reached. The last driver arrives with the delivery on time and on budget, which is great — as long as it’s known in advance that the product being delivered by the drivers will serve its purpose.
Likewise, with the Waterfall framework, there is more certainty on scope, time, and budget, which is a primary advantage. The project progresses through stages, in a linear fashion. One stage begins when the previous stage ends, and each concludes with a measurable milestone. Each stage is also carefully documented, setting up the next functional team for doing its part.
For team members, there is value in working with a clear and detailed project plan that outlines exactly what they need to do and enables them to plan their time and resources accordingly. The process also makes it easier for developers who join a project mid-way because it requires clear documentation of every preceding stage.
Another advantage, especially for project managers and clients, is there is little need for engagement as the project unfolds because the scope is defined and requirements are gathered up front. This means there is less opportunity for clients to add requirements and, by doing so, increase costs and delay production.
In spite of these advantages, the greatest risk with the Waterfall framework is that the end product may not solve the users’ problem or fill a need. This is true for the software development industry in particular, given that it is constantly and rapidly changing.
Agile vs. Waterfall Side-by-side
This chart summarizes the best conditions for Agile vs. Waterfall methodologies, as well as their pros and cons:
|– Iterative model is broken down into short sprints
– Sprints last two to four weeks
– Each sprint ends with a tangible product, allowing for quick wins
– Scope of work is flexible and project planning adaptive
|– A linear model that divides a project into a series of sequential phases
– One phase starts when the previous one ends
– Each phase ends in a milestone; outputs are only delivered at the end
– Careful planning and a clear understanding of goals and deliverables are required at the outset
|– Larger projects that require flexibility and value adaptability over predictability
– Long projects that will benefit from frequent deliverables, e.g., early releases
– Cross-functional teams of motivated individuals who work together throughout the project
|– Smaller projects with clear goals and deliverablesProjects that value functionality over quick delivery
– Teams of individuals with different functional expertise working toward a common end goal
|– Nimble and innovative
– Adaptable scope, solutions, and timelines
– Collaborative decision-making throughout
– Opportunities to return to a previous phase
– Regular interactions with clients and end users
– Constant testing and adapting
– Early releases and incremental improvements
|– Linear and fixed
– Clearly defined goals, deliverables and timelines at the outset
– Hand-offs from one functional team to the next
– No opportunities for returning to a previous stage
– Little interaction with clients and end-users during the project
– Quality assurance testing only at the end
|– Room for quick adaptation to unexpected changes
– Quick wins at the end of each sprint
– Focus on client satisfaction Emphasis on teamwork
– Seedbed for innovators
|– Careful planning and tight control over scope, schedule, and budget
– Predictable processes and outcomes
– Less opportunity for change requests from clients
– Opportunities for team members to work on more than one project at a time, thus further developing their areas of expertise
|– Potential scope creepPotential budget increases
– Dependency on clients being engaged
– Less opportunity for team members to work on different projects
|– Little opportunity for adaptability or error
– Increased risks due to lack of flexibility
– Potential loss of information if team members don’t document sufficiently before leaving the project
– Feeling among some clients that they have not been kept in the loop
In the end, the choice between Agile vs Waterfall is contingent on the type of project and the environment you work in. If you know what your end product is going to be, and it’s important to have a tight rein on scope, schedule, and budget, the Waterfall framework is proven, and the process is predictable.
Alternatively, if you’re given the right conditions for emphasizing innovation and collaboration, the Agile framework can help you reach a happy balance of staying focused and on track while having enough flexibility to innovate and thrive.
Continue to explore the rest of Terminal’s content offerings. If you are interested in learning more about how Terminal can support your organization and accomplish your development goals, please get in touch with our team!