Agile Vs Waterfall
Waterfall is the best thing that has happened to Project Management since sliced bread!!!
Let’s examine which is better to see if sliced bread has anything on Agile
Have you ever been in a situation where the team had to make a decision on how to approach a development project? Let me tell you, this is one of the most heated discussions you will ever have due to two major development methodologies at play. Agile and Waterfall. They are commonly applied to software development as well as project management.
What is Waterfall – It is a linear approach where the customer’s requirements are gathered upfront and then a sequential project plan is created to accommodate those requirements. This approach is predominantly applied in industries such manufacturing and construction where a structured environment is required for delivering large complex projects.
What is Agile – It is an iterative approach where customer value is delivered faster in small increments. Requirements, plans and results are continuously evaluated so that the team has a mechanism to respond to change quickly. This approach is applied to industries where customers are demanding constant changes such as software development.
Before making a decision there are some advantages and disadvantages for both methodologies to consider.
Waterfall – Advantages
-
Scope is confirmed between customers and developers early in the development cycle
-
Progress is easily measured as the scope is known in advance
-
Persistent teams are not required as people are only needed during certain phases of the development
lifecycle
-
Once the initial design and project plans are in place, there is little requirement for the customer to
be present until the product needs to be reviewed. Adopts a hand-off approach.
Waterfall – Disadvantages
-
Gathering requirements that are easy for the customer to understand is challenging, also the possibility
of missing requirements is very high in the initial stage of development.
-
A hand-off approach is not always suitable for every type of product. Some customers would like to be
more involved and if there isn’t a framework for involvement then it could lead to frustration on both ends
-
Making changes during development is not easy, the whole point of waterfall is that it follows clear steps
and timeframes
-
Since the customer is not involved through the entire development cycle they could be dissatisfied with
their delivered product. As they don’t get to see it until it’s almost finished.
Agile – Advantages
-
The customer is permanently embedded with the development team and has early opportunities to see
how the product is delivered and make changes throughout the development cycle.
-
Prioritisation of deliverables ensures that the items with the highest customer value are delivered first.
-
The development can adapt to the user needs rather than rolling out a product with full feature set at initial
launch. Around 80% of all software features are hardly or never used.
-
Since customers are entrenched in the development teams, they are able to provide feedback at every
review which leads to a higher quality and a user-friendly product.
Agile – Disadvantages
-
Persistent teams are essential to the success of Agile projects, in large organisations this is not always
possible because people tend to work across many initiatives.
-
Possible cost blow outs due to the iterative nature of development and frequent re-prioritisation leads
to some items set for delivery will not be completed within the allotted time frame. Additional sprints may be needed hence adding to the project cost and moving timeframes.
-
It is essential for success that Agile teams have a high level of collaboration and communication.
The close working relationships are easiest to manage when the team members are located in the same physical space. However, the use of collaboration tools such as Microsoft teams and Zoom can overcome this issue.
So, how do we choose which methodology is best for our needs, let’s compare the two based on 6 key areas.
Once we have decided which methodology to use, we can further make changes to the process to best fit our project goals. Keep one thing in mind, although the way we work is important, delivering a product that satisfies our customer needs is ultimately what really counts. So if the requirements are clear such as construction then do Waterfall but if the requirements are unclear like software development then use Agile.