What is Agile? Let’s Go Back to Basics
Whenever I hear this question “what is agile?” there are 2 things that came into my mind. The technical explanation and the longer philosophical explanation.
Technical Explanation
Agile is basically an umbrella or a parent term of many other agile methodologies such as scrum, xp, kanban, crystal, etc.
Technically, agile is a way to deliver working software in an iterative methods as opposed to huge big bang release. This allows businesses to be able to work in a manner that is flexible enough to adapt with the market.
If we are to use the scrum methodology, on each iterations we would have done some production release, get feedback, learn early. Then we’ll be able to make informed decision on what to plan in the next iteration. Whether we keep working on the current overall product strategy, pivot or retire the product entirely.
Obviously there are much more in depth compexity than the above descriptions such as how to do the planning, story writing, estimations, etc. However in a nutshell that was the explanation for the agile technical application.
Philosophical Explanation
Believe it or not, the philosophical explanation is the more important explanation. This is because you and your company will not be able to become agile unless you embrace the philosophical idea. Once the philosophical idea is understood and ingrained then there will be a lot of ways to move towards agility.
The best place to start the explanation is always the agile manifesto (http://agilemanifesto.org/) that started it all.
We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left more.
The manifesto stated clearly that embracing agile means embracing the culture of great team collaboration and interactions. It also means that we have to embrace positive relationships with our customers instead of blindly following a predefined plan which may not be relevant any more if it was defined long enough.
What a lot of people missed in the agile manifesto is the bit that I highlighted red: “…while there is value in the items on the right, we value on the left more”. Therefore embracing agility doesn’t mean we forgo important things like tools, plans and documentations. It just means what those should not tie us down and prevent us from becoming agile.
A good example of a process being needed for our journey towards agility is continuous delivery and devops culture.
Becoming agile is an evolution of the entire organisation into the next level and of course organisations are made of people. Keeping this in mind, it means that it’s important that the leadership teams of the company are properly trained with agile understanding and general people leadership techniques. One thing that I like to talk about is the sheppard style, which I wrote in my previous article.
In Conclusion…
Bear in mind that agile is about organisational culture as much as techniques. The culture is the building foundation and the techniques are the enablers for our journey towards agility.
On that note, I hope today’s article enlighted us about what agile is about if you haven’t heard about it much or want to brush up your understanding.
Have a good and fun journey towards agility!