Agile and Waterfall (also called traditional) are two development methodologies; Agile uses an iterative approach, while Waterfall is sequential.
When approaching a new project, program, or product, project managers are faced with the decision of what kind of delivery methodology to use. A delivery method is essentially a framework—a process or series of processes used to facilitate organized planning, development, execution, fixing, monitoring, and review for the work. And two of the most-widely used methodologies today are the traditional Waterfall framework, and the newer Agile approach. A third approach—combining traditional and agile work methods—is also seeing widespread adoption.
Agile is an iterative software development methodology with a goal centered around collaboration among self-organizing and cross-functional teams. Learn more about Agile.
Agile eschews the traditional, one-step-at-a-time approach where allocated resources will perform specific assigned tasks, and then move the project along to the next phase or resource(s) assigned. Instead, it relies on dedicated teams capable of operating collaboratively and simultaneously. These teams perform tasks concurrently, eliminating the need to wait for tasks to be completed, and capable of pivoting easily to address changing needs or emergent issues.
As mentioned above, Agile is iterative, supporting continuous releases; it splits the work into multiple sequences of repeated cycles, called iterations. This delivers value to the end user continuously, rather than all at once at project completion. Agile plays a key role in continuous delivery and continuous improvement.
Although different teams may approach Agile in a number of different ways, Agile always adheres to the following core principles:
Since its introduction in the early 2000s, Agile has gained significant popularity. Benefits of the Agile methodology include the following:
Predefined sprints enable new features to be delivered quickly and predictably. Beta testing can also be performed earlier than would otherwise be possible.
Agile’s focus on simplicity and collaboration gives teams unparalleled freedom in self-organizing and making crucial decisions.
Team autonomy in Agile gives teams the flexibility to choose the methods and techniques that best suit the desired outcome. At the same time, projects themselves become more adaptable, with new or changed backlog items able to be introduced mid-development. Early beta testing also provides essential feedback developers can use to make important changes.
Agile depends on a team’s ability to communicate effectively, both internally and externally. It emphasizes directness and clarity, and ensures that regular, face-to-face communication is occurring.
In the Agile methodology, it is the customer or end user who determines the priority of features. This gives development teams clear insight into which features provide the best value to the business.
When faced with tight deadlines and difficult, long-term goals, developers can easily lose sight of the importance of the customer. Agile realigns that focus, using customer needs and other user feedback as a foundation for improved products. This leads not only to increased customer satisfaction, but also improved returns.
Although Agile is often viewed as the superior choice of methodologies, it does bring with it a handful of disadvantages to be aware of before fully committing. These include the following:
If customers do not have the time or the interest to work closely with the development team, the project will not have the feedback or insights it needs to progress.
If team members are not fully committed to completing the project effectively and efficiently, the self-management aspect of Agile falls apart.
Some tasks, or even certain subtasks, may be too time-intensive to be completed during a single sprint. To address these issues, teams either have to change priorities or introduce costly additional sprints.
Agile’s iterative and incremental nature is not as compatible with project governance or oversight. Teams that are incapable of self-governing are less likely to be able to be managed effectively.
The fact that Agile prioritizes working software over documentation sometimes means that essential notation gets left behind. This can be a problem, as comprehensive documentation helps make implementations more shareable, identifies the thinking behind specific decisions, and allows teams to more easily return to earlier stages.
Often, entrenched corporate processes, toolsets, policies, organizational structures, and controls are not conducive to agile. As such, effective Agile implementation demands wide-spread cultural change throughout the organization. This can lead to push back from individuals or departments that are accustomed to more traditional practices.
The more-traditional approach to development, Waterfall is a linear, sequential methodology that divides the software development life cycle into distinct phases in which the next phase can only proceed if the previous phase has been completed.
The earliest development methodology, Waterfall is simple to use and understand, and depends heavily on front-loading of work, researching, documenting, and planning. It is a ‘measure twice, cut once’ approach—all project requirements are clearly defined at the beginning of the project, and a detailed plan is created to accommodate those needs.
The traditional development methodology divides projects into seven distinct stages. Each of these stages is independent from the others; a new stage generally cannot begin before the preceding stage has been completed. Additionally, most stages are separated by a ‘stage-gate,’ representing a set of requirements that must be completed and management decisions that must be made before the project can transition to the next stage. The stages are as follows:
First described in 1970, the Waterfall methodology has seen consistent use among development teams for approximately half a century. This is because it delivers certain benefits, including the following:
The Waterfall methodology is perhaps the easiest to manage, with each stage attached to specific deliverables and a clear review process.
In projects where multiple components need to be designed to allow for integration with external systems, Waterfall’s approach (in which design is completed early in the process) is a clear advantage.
Product requirements are documented and agreed upon prior to the start of development, establishing a predictable and concrete set of features.
Increased planning and front-loaded documentation create a clear overview of potential costs. This allows for accurate budgeting.
Because the full scope of work is known in advance, measuring progress becomes simple and accurate. Progress is typically measured in the 'status report,' where work items are defined as green, yellow, or red when it comes to schedule, budget, and resources.
Goals are identified and established before development work begins, rather than remaining fluid to account for changing needs.
Team members have the bandwidth to work on other projects, only needing to commit their time during their designated stages.
Waterfall methodologies create an easier, more hands-off experience for customers; involvement by end users is not required except during the requirements and review stages.
With a clearer focus on planning and documentation, projects follow an established path, are easier to review, and results are more-clearly identifiable.
The rise in Agile attests to certain drawbacks in the traditional Waterfall methodology. These disadvantages include the following:
Because Waterfall relies on detailed early-stage planning, projects that encounter unexpected problems, roadblocks, or changing needs may be unable to adapt. Likewise, Waterfalls flow in only one direction; it may be impossible or very difficult to return to earlier stages to make changes.
Rigidly defined requirements leave very little room for inspiration, innovation, or creativity, and may prevent developers from taking advantage of unexpected opportunities during development.
Being less involved in development processes, customers may feel left out of the loop. Perhaps even more problematic is that customers may not be aware of what will be delivered until the project reaches completion. On the other side of the coin, developers themselves might not know what the expected outcome is for the customer, further widening the gap. Additionally, because testing occurs only at the end of the project, bugs and UX issues are more likely to sneak through.
Unclear deadlines for specific stages can lead to projects going over schedule. To make up for this, teams will sometimes rush through the last stages, including testing. This can lead to inferior products.
Requirements must be clearly identified and approved before any work can begin. If they are not, individual team members may interpret requirements differently, leading to a disconnect.
With so much effort expended in planning and documentation, fewer resources are available for the actual building of products.
Agile and Waterfall each offer their own advantages and drawbacks.
With this in mind, understanding the specific use cases for both options
can help organizations choose the methodologies that will work best per
project.
When making these decisions, consider the following:
Stricter project requirements are better suited toward Waterfall, while fewer requirements and regulations allow the creativity and freedom of Agile to shine.
Stricter project requirements are better suited toward Waterfall, while fewer requirements and regulations allow the creativity and freedom of Agile to shine.
Strict processes make Agile deployment very difficult and benefit more from a traditional Waterfall approach. Agile is more effective when processes are more flexible.
Waterfall is effective when customers, end users, and product owners are not interested in working closely with the development team. Those users who want increased involvement to benefit more from Agile.
Enhancing existing legacy projects, where features are already well defined and integrations are established, benefits from the Waterfall approach. If the project is breaking new ground and attempting something that hasn't been done, then Agile’s iterative approach enables teams to learn and adapt as they go.
The Waterfall methodology establishes a predictable outcome and works well with clearly defined deadlines and long-duration projects. Shorter deadlines that are more flexible work better within Agile.
Waterfall’s predictability is also well suited to inflexible budgets, where each action and expense needs to be documented early in the process. Agile demands less rigidity in budgeting, focusing on features and development speed, and not taking as strict of a stand on costs.
Smaller, well-defined projects are often better suited to Waterfall. Larger, more-complex projects benefit from the Agile approach.
When coordinating with remote workers or partnering with other organizations, Waterfall’s reduced need for in-person collaboration makes it a better choice. If a single organization and co-locational team members are solely responsible for the project, Agile is more effective.
Because Agile and waterfall both offer significant benefits, businesses around the world are looking for ways to combine these advantages while limiting the disadvantages. The result is hybrid project management.
Hybrid project management brings Agile and Waterfall together to create a solution that optimizes time, resources, and user satisfaction.