Fifteen years ago, individual experiments at some Universities and Labs were Agile. Ten years ago, Agile was underground or vanguard … used only in a little number of projects and organizations. Nowadays, it is obvious that we are all Agile. Organizations and projects are Agile because they run Scrum and Scrum equals Agile, Agile equals Scrum, right? But what if Scrum is not Agile? Can it be that way?
Now you probably think — this guy is insane — why Scrum would not be Agile? Scrum equals Agile, everyone knows that. One of my favorite interview question is: “What does Agile mean ergo why is Scrum Agile?” … and many people fail to answer! Well, it is assumed that Scrum/Kanban/XP/whatever is Agile because these methods stand in opposition to the traditional heavyweight processes, which were born before the application development crisis. But is it enough to be in the opposition, to really be considered Agile?
Many of the methods/techniques developed in the opposition to waterfall during 90’s led to Agile Manifesto codified in 2001 in Snowbird. Since then, we can easily say that a development framework or method is Agile if and only if it is compliant with the Agile Manifesto and its principles:
- Individuals and interactions over processes and tools;
- Working software over comprehensive documentation;
- Customer collaboration over contract negotiation;
- Responding to change over following a plan.
I always feel inner amusement when I ask the question: Are you working Agile? Very often I hear answers such as:
“Yes, we have Scrum, but it’s not exactly agile, because we do not strictly implement rules from the scrum guide.”
So, is Scrum heavyweight and not Agile? No, but Yes or could be? To me this is really simple. YOU ARE effectively NOT acting Agile when you are (for example):
- a Scrum Master who focuses on the Scrum rules instead of delivering great software,
- a developer who makes the code cleaner and cleaner instead of delivering software without bugs,
- a Product Owner who is an accountant in relation to your customer instead of defining valuable functionalities.
Summing up, you are NOT acting Agile if you only practice some of the ceremonies of Scrum, but forget about the essence of Agile expressed in the Agile Manifesto!
If Mr. Miyagi were an Agile coach instead of a karate master he would probably say: “First learn how to be Agile, then implement Scrum”.
Do not get me wrong — Scrum is a great framework. In my opinion, it is still the best framework for software development! But while using it, please do not forget about the foundations of agility — Agile Manifesto.