Agile in practice #4 - Is Agile development more beneficial than waterfall?
The decision on how to approach product development can have a major impact on whether the resulting product will be successful or not. That is why it’s good to consider the benefits of the available models to see which one will suit your product best. In this article we will do just that and try to answer a single question: Is Agile more beneficial than waterfall?
Table of contents
What is Agile, and what is waterfall? - definitions
When working on a digital product, one of the first decisions to make is the selection of the software development life cycle model - SDLC for short. The chosen life cycle describes how the product will be developed, from the initial idea to the product launch. Agile and waterfall are examples of SDLCs - two out of the multiple models available out there. We have already covered the dilemma surrounding these two in Agile vs. waterfall, but in this article we’ll focus more on the benefits of each model. Before that happens, let’s refresh our memory with a few brief definitions.
What is waterfall, and where did the name come from?
The waterfall model was first introduced in 1970, as an example of how NOT to manage software development (source). The basic idea revolves around 3 key principles: minimal customer involvement, detailed documentation, and a sequential structure. Waterfall is a plan-driven approach where development is conducted in a series of phases:
- requirements
- analysis
- design
- coding
- testing
- acceptance
Each phase needs to be completed before the project can move on to the next. That sequential form of progression from top to bottom was the inspiration for the model’s name.
How is Agile different from waterfall?
Agile came to be about 30 years after waterfall, as a direct response to everything that waterfall was lacking. To understand the main idea behind it, it’s best to look back to the Agile Manifesto, which explains that in Agile, the focus is on:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
In other words, Agile is an iterative, test-driven approach to software development that puts a strong emphasis on close relationships with the client and the ability to respond to changes and discoveries made along the way. And while waterfall might be easier to implement, Agile is becoming one of the world’s most commonly used SDLC models. Why is Agile development considered more beneficial than waterfall?
Waterfall model has its disadvantages - here’re some of them
It’s no coincidence that Agile is slowly replacing the traditional waterfall approach. It compensates for waterfall’s biggest flaw: a lack of adaptability, a key element to the success of any project operating in today’s VUCA world.
This is not the only disadvantage of the traditional waterfall model for software development. In the requirements phase, the idea behind the product is often vague and full of unknowns that will only become clear once the product reaches the later phases of development. That is why one of the main criticisms is that the linear structure of waterfall carries the risk of misunderstanding the concept behind the product.
A misunderstood vision of what it is that the team is supposed to deliver will carry over to the later phases of development. As a result, the final product will differ from what the client was expecting (source). With problems like these, it’s no wonder that software developers called out for a different approach. How did the invention of Agile really benefit them?
Benefits of Agile over waterfall, organized by category
To better understand the benefits of Agile, we need to break them down into three categories: product development, organizational fit, and the client. This division is only an example of how to look at the benefits of Agile, aimed to better illustrate the value of this model.
Progression of product development
In Agile, projects are developed in iterations, with each one producing a working version of the digital product. And this is where the benefits of Agile over waterfall are most visible: with a working version of the product, the client is able to test it themselves and give honest, informed feedback. The project team is then able to alter the course of their work and make sure that the next iteration is closer to the client’s expectations.
Receiving feedback on an early iteration would also have positive effects on total cost, as it can help spot potential bugs and errors in the product. Correcting them in an early stage of development would take less time and money than fixing errors in a fully developed product. That makes Agile suitable not only for projects with tight budgets but also with short delivery times - bear in mind that these days it is common to develop a launchable product in a matter of weeks (source).
Organizational fit
When working with a waterfall model, estimating the time and resources needed to complete the project usually falls on the most experienced developers. In Agile, these decisions are a result of a collective team effort, something that is important to organizations promoting team spirit and a sense of ownership of the company’s success. A chance to reinforce the company culture is one of the reasons why modern businesses are more likely to benefit from Agile, rather than the waterfall model.
The client’s involvement
One of the most visible differences between waterfall and Agile is their approach to client involvement. In waterfall, the client role is limited to laying out the requirements and accepting a finished product. In Agile, the client is involved at every stage of the development process.
Agile projects can start with as little as a basic concept, while waterfall requires a precise description of every functionality. Agile can be particularly useful if the client doesn’t have a specified vision for their digital product, but has a business need to build it right away. The specifics of the product can be added gradually with each working iteration (source).
Nobody is perfect - even Agile
The benefits of working in Agile cannot be denied, but it doesn’t mean that it’s a “one size fits all” type of solution. Due to its nature, it may be difficult to successfully implement Agile in organizations that rely heavily on tall management structures with rigid procedures for reporting and planning; such as large corporations (source). These kinds of companies are likely to find a better fit in the predictability of a waterfall model.
Is Agile development always more beneficial than waterfall? An afterword
While not perfect, Agile offers more benefits than waterfall. It creates complex, innovative digital products that can be launched quickly and that fit the market well. However, there are cases when waterfall is a far better choice. The ideal solution would combine the best of both worlds: a model that is predictable and easy to implement, but at the same time flexible and involves the client. Is such a model even possible? Only time will tell.
Share this article: