Why do we do Agile?
What problem does it solve? What benefits does it give? Why it’s better than the Waterfall methods?
What are the core reasons to use it?
Surprisingly, this seemingly basic question turned out to be quite hard to answer for most candidates we interviewed for a Scrum Master position.
The candidates mentioned a lot of benefits: iterative development, self organized teams, direct communication, transparency, comfortable work environment, motivated developers. All of these are true. And all of these are valuable. But none of them is the goal of Agile. They are either the tools necessary to become Agile or nice side effects of being Agile – but not the core reasons to adopt it.
So why, in my opinion, do we do Agile?
As I see it, the goal of Agile methods is to provide a competitive advantage in an unpredictable, changing environment.
There are two fundamental elements in this statement.
First of all, the competitive advantage to us or our customer is paramount. Although working in an Agile environment is fun, we don’t adopt Agile just for the sake of having fun. We adopt Agile to build products faster, better and cheaper than the competition. Forgetting about this fact leads to serious process dysfunctions and conflicts.
Second, we must understand that Agile methods were designed with an unpredictable, changing environment in mind. They don’t solve the problem better than the Waterfall methods – they solve a completely different problem. While Waterfall assumes that software projects can be predicted and planned, Agile acknowledges that they are unpredictable and optimizes for being able to cope with unevitable changes cheaply and efficiently. However, such flexibility doesn’t come for free. If we forget what’s the intention of Agile, we may end up paying all the costs of being open for change without getting any of the benefits.
These two goals – providing competitive advantage and coping with unpredictability – are in my opinion the two pillars of Agile methods. Every other rule or benefit either supports them or results from them. If we forget about any of these two core reasons, we will never be able to reach the full potential of Agile.
Why do you do Agile? Do you agree with me or do you see it differently? Please share below in the comments!