Agile vs Waterfall
Our way of working is under constant change.
That automatically implies that also our Project Management is under constant change.
Project Management has become one of the most important pillars within any company as it has been recognized as one of the fundamental factors for the success of the organisation. This is why organisations are looking for technologies, systems, and processes that help them to customize and optimize Project Management.
There is a need for growth, which often goes hand in hand with an increase in clients/customers.
Project Management needs to be able to adapt to these needs and continue to serve the organisation at all stages of growth. This is why the Agile methodology was born, which seeks to bring that flexibility into the world of Project Management by completely detaching itself from traditional frameworks.
A traditional Project Management framework is defined as the ‘Waterfall Methodology’.
The Agile framework and the Waterfall Methodology differ in obvious and less obvious ways.
Both have their benefits and drawbacks and there is no ‘bad’ way of Project Management.
What works best for your organisation depends on your situation and strategic objectives.
In this blog post, we will analyze the differences, benefits and drawbacks of the Agile methodology and the Waterfall Methodology (traditional).
The Waterfall approach is a breakdown of project activities into linear sequential phases, where each phase depends on the deliverables of the previous one and corresponds to a specialization of tasks.
At the start of the project, the output, outcome and benefits are defined.
The Waterfall model originated in the manufacturing and construction industries, where the highly structured physical environments meant that design changes became prohibitively expensive much sooner in the development process.
When first adopted for software development, there were no recognized alternatives for knowledge-based creative work. The Waterfall model has a set team working in a linear fashion towards a clearly defined end goal.
It makes use of standard documentation of which the format is predefined by the organisation.
Examples of this documentation are the PID and the Business Case.
Waterfall Methodology: Benefits vs Drawbacks
There is a clear understanding of the project timeline and deliverables before the project begins. The full scope of the project is agreed upon by the development team and their stakeholders in advance.
|Less customer involvement
A hands-off approach is not suitable for every type of product. Some customers will want more involvement as the project proceeds. If there isn’t a framework for that involvement, the waterfall approach could lead to frustration on both ends.
Each phase of the process is documented in detail to eliminate any misunderstandings or shortcuts.
Documentation should be done at each stage of the process to ensure that all stakeholders are on the same page despite the sequential progress of the project.
|Changes can be difficult
The whole point of the waterfall methodology is that it follows clear steps and a set timeframe.
Once these elements are in place, it can be difficult to make changes once the development team encounters a roadblock.
Adaptability is a crucial part of software development to consider, particularly since it can be hard for customers to have a full grasp of the project before it begins.
This approach allows for a more hands-off approach from the customer.
Once the initial design and project plan is in place, there is little requirement for ongoing customer presence until the review phase.
|Short in the effectiveness of requirements
One area which almost always falls short is the effectiveness of requirements. Customers are sometimes intimidated by details, and specific details, provided early in the project, are required with this approach.
In addition, customers are not always able to visualize an application from a requirements document.
Wireframes and mockups can help, but there’s no question that most end users have some difficulty putting these elements together with written requirements to arrive at a good picture of what they will be getting.
The major difference between agile vs. waterfall might be summarized by saying that the waterfall approach values planning ahead, while the agile approach values adaptability and involvement.
However, there is not just one Agile approach: Agile is a combination of multiple frameworks.
The agile methodology has two core elements: teamwork and time.
Instead of creating a timeline for one large software development project, agile breaks the project into individual deliverable pieces. These ‘time-boxed’ phases are called ‘sprints’ and last just a few weeks.
Once each sprint is completed, the feedback from the previous phase is used to plan the next one.
An Agile team starts every day with a short meeting where they discuss the status and objectives of the project they are working on. This is called a daily stand-up meeting, which is beneficial for all team members, regardless of their position in the team. Read here why the daily stand up meetings are being held and how to optimize them.
Agile Framework: Benefits vs Drawbacks
By allowing the client to determine the priority of features, the team understands what’s most important to the client’s business, and can deliver the features that provide the most business value.
The customer gains a strong sense of ownership by working extensively and directly with the project team throughout the project.
The very high degree of customer involvement, while great for the project, may present problems for some customers who simply may not have the time or interest for this type of participation.
|Early and Predictable Delivery
By using time-boxed, fixed schedule Sprints of 1-4 weeks, new features are delivered quickly and frequently, with a high level of predictability.
Agile development is often more user-focused, likely a result of more and frequent direction from the customer.
|High involvement needed
Agile works best when members of the development team are completely dedicated to the project.
Because Agile focuses on time-boxed delivery and frequent reprioritization, it’s possible that some items set for delivery will not be completed within the allotted time frame.
Additional sprints (beyond those initially planned) may be needed, adding to the project cost. In addition, customer involvement often leads to additional features requested throughout the project. Again, this can add to the overall time and cost of the implementation.
|Allows for change
While the team needs to stay focused on delivering an agreed-to subset of the product’s features during each iteration, there is an opportunity to constantly refine and reprioritize the overall product backlog.
New or changed backlog items can be planned for the next iteration, providing the opportunity to introduce changes within a few weeks.
The iterative nature of Agile development may lead to frequent refactoring if the full scope of the system is not considered in the initial architecture and design.
Without this refactoring, the system can suffer from a reduction in overall quality. This becomes more pronounced in larger-scale implementations, or with systems that include a high level of integration.
Waterfall vs Agile: Comparison
|Separates the project development lifecycle into sprints.
|Divides project development process into distinct phases
|Follows an incremental approach
|Is a sequential design process.
|Is known for its flexibility
|Is a structured development methodology so most times it can be quite rigid.
|Can be considered as a collection of many different projects.
|Completes project development as one single piece.
|Is quite a flexible method which allows changes to be made in the project development requirements
|Does not include a scope of changing the requirements once the project development starts
|Follows an iterative approach because of this planning, development and other phases may appear more than once
|Completes all the project development phases like designing, development, testing, etc. only once
|Reviews the test plan after each sprint
|Rarely discusses the test plan during the test phase
|Is a process in which the requirements are expected to change and evolve.
|Is ideal for projects which have definite requirements and little change
|Performs testing concurrently
|Starts with the ‘build’ phase, after which the ‘testing’ phase follows
|Introduces a product mindset where the product satisfies needs of its end customers and
changes itself as per the customer’s demands
|Shows a project mindset and places its focus completely on accomplishing the project
|Works exceptionally well with Time & Materials or non-fixed funding. It may increase stress in fixed-price scenarios
|Reduces risk in the firm fixed-price contracts by getting risk agreement at the beginning of the process
|Prefers small but dedicated teams with a high degree of coordination and synchronization.
|Has limited team coordination/synchronization
|Has product owners prepare requirements just about every day during a project
|Has business analysis prepare requirements before the beginning of the project
|Has a test team that can take part in the
requirements change without problems
|Has limited opportunity to initiate any change in requirements
|Can alter the description of project details anytime during the process
|Needs detailed description
|Has interchangeable Agile team members that, as a result, work faster.
|Includes straightforward processes, so the project manager plays an essential role during every stage
Which development methodology you go with depends very much on several key factors.
For example the structure of the organisation, the sector, the strategic goals and the role of Project Management in the organisation. There is no bad choice, for some organisations, the Agile framework will better fit the objectives, for others the Waterfall approach is a more obvious choice.
However, it also absolutely possible to create a mix of approaches, depending on the project.