Agile v. Waterfall

kumar rishabh
3 min readMay 6, 2022

What exactly has changed?

Software as an engineering has started way back in 1950’s. However, we were well versed in engineering the roads, rails, and other manufacturing practices. Now as a practice If any new engineering is born, I will start using the processes and management technique I am aware of and this gave birth to Waterfall model.

Analogous to a simple manufacturing practices, we list down the jot down the requirement, then finalize the design, Do build the product, and then Verify it before calling this a release. This provides us the classical waterfall model, which on years of usage turned out to be unfit for software development.

Waterfall as we know(credit — Wikipedia)

Reason for failures: -

Lets start with few Question:-

1. Can you freeze requirements in Software Industry?

2. Are you sure that we can freeze the design?

3. Are we sure that the day we have our product ready, the need for the product won’t go obsolete?

There are many other papers describing multiple disadvantages of using this model. The main is software industry is not getting ROI with this model. And yes theoretically, software development is a complex process and waterfall was designed for Simple ones. Wait, what is a complex process?

Ralph D. Stacy came out with an excellent matrix called Stacey matrix

Stacey Matrix(Credit managedagile.com)

Stacey defined the Simple, complicated, complex and chaotic processes, where in he compared Certainty and Agreement as a parameter to define. The above figure is modified to make relevance to Software. Then We had Cynefin framework to help us analyze what to do for which stage process.

And then it took us a lot of study to understand that Waterfall is for simple and for complex we need to be agile.

Agile came out in picture where the changing market demands and technology forced teams to be ready for a change and act accordingly to mitigate the risk and thus increasing the Return of Investment(ROI). Scrum is most widely used framework to achieve agile.

Agility requires

1. The ability to rapidly and deliberately respond to changing demand, while controlling risk.

2. Flexibility, the capacity and capability of rapidly and efficiently adapting.

3. The ability to innovate.

Software engineering is a game of rugby, where every minute the game changes, the strategy changes, the pressure changes, the competition changes and the environment changes. We are sometimes forced to innovate to survive and that is what agility is. We must always analyze the situation, make a plan and timely act as per the situation. We may lose a game, but inspecting of what went wrong and learning from failures will win us the next game.

In the end, the change in mindset while delivering things is what the difference between these two terms is. Whatever process management strategy we choose, What we get in the end is Software product. Just we need to remember and reiterate to ourselves as individual that the change is coming and coming earlier then you can anticipate. Change may come next month, next week or may be next morning. How you react to it will make difference.

References:

Stacey RD. Strategic management and organisational dynamics: the challenge of complexity. 3rd ed. Harlow: Prentice Hall, 2002.

“A Leader’s Framework for Decision Making” — Harvard Business Review

--

--

kumar rishabh

A software test enthusiast develops, maintain and consult the testing solutions for a product. specialized in automating the tests. Firm believer of Agile.