Blog Software Testing

So why don’t we all go Agile?

Cristina Barnutiu Cristina Barnutiu | Last updated: June 20, 2024 |

This is one of the most frequent questions students ask when I teach the different project methodology types in SDLC. After explaining the waterfall and the Agile models, the first question that comes into everyone’s mind is “So why don’t all projects choose Agile?”. So here’s a short post to illustrate why.

The stages of the Software Development Life Cycle (SDLC)—Requirements, Design, Implementation, Testing, and Maintenance—progress in a linear and sequential manner under the classic waterfall methodology. Since you cannot return to a previous stage once complete, the requirements must be extremely well-defined and unlikely to change. This makes it more “rigid” than the Agile approach, where “change is welcomed”.

Agile

Agile on the other hand is much more popular, “trendy” and flexible. By dividing the project into smaller increments, called sprints or iterations, Agile projects ensure a delivery of “fragments” of each SDLC phase. The priority in Agile is to deliver a workable product after each sprint and to gain more flexibility. Collaboration with customers is highly encouraged and this leads to increased customer satisfaction and confidence.

So far it looks like Agile has more advantages over Waterfall but in fact, the choice between the two methodologies depends on the specific characteristics and requirements of your project.

Let’s say you want to build a house from scratch. You must know the requirements and have a well-defined design before you start building it. Once you start the construction, it’s hard to modify the initial design and add for instance an extra room. You are less likely to change the initial requirements and all the phases will follow in a sequential order so you will probably opt for a Waterfall methodology in this case.

Now let’s say you want to prepare a new chocolate cake recipe. You can add extra baking time based on your preferences. You can always taste bits of the cake and decide whether to adjust the cream consistency or flavour. Changing the product is still doable as long as you have the necessary resources. So if you are looking for constant validation and feedback on a product, Agile is the way!

I’ve experienced both methodologies and I cannot say one is better than the other. Waterfall might seem more suitable for large projects and for some industries, while Agile works best for small start-ups and for adaptable projects. Although Agile is much more challenging for testers, it is a safe choice and sometimes worths the extra testing effort. Waterfall is more rigid and limits the client interraction but has very clear documented requirements that are unlikelly to change (in some cases event stipulated by a contract).

However, in practice no project is 100% Agile or Waterfall as most of the organizations use a hybrid approach. The choice between Waterfall and Agile should be based on the product’s characteristics, possible risks, the level of uncertainty involved and why not, preferences.

Leave a Reply