Is Agile fragile? In Software Development, Agile is a way of developing code. It is essentially an unspoken promise of new functions, fixed bugs, automated tests etc delivered in a short period of time. Agile is pictured to be a framework which helps to ‘get things done’ quickly. Agile is a framework, hold that thought.
Just What is Agile?
Firstly, let’s take a second to quick summarize Agile. Agile is a set of methodologies and techniques which can help teams to break down big problems into small manageable ones. These processes can help to increase visibility of who is doing what, identify blockers and plan ahead. With all of this said it sounds like having these processes is a good thing, right?
We briefly touched on Agile processes, just what are these? The world of Agile is broken into a number of similar methodologies such as XP, Scrum and Kanban. They are different in practice yet similar as well. We then share some common processes between these methodologies such as Stand Ups, Retrospective, Planning and Story Grooming. The purpose of each of these processes is outlined with clear purpose yet we do tend to divert away from that. For instance, we aim to have Stand Ups performed as quick as possible yet at times we tend to have Super Stand Ups. In other words, Stand Ups which turn into discussions.
We try to estimate stories in our Planning session but sometimes estimating stories becomes more of a business requirement as opposed to actually trying to predict what we can achieve. In layman’s terms we try to take an existing system, change it and try our best to adopt it to our needs. Again, this also sounds like a good thing.
Is Agile Fragile?
If all of the above is ‘good’ then what is so fragile about Agile? Let’s take an existing technique such as Stand Ups and discuss. Firstly, what is a Stand Up? A Stand Up is a very scheduled daily adhoc meeting where every member of a team gives their updates in three key points i.e. what they did yesterday, what they plan on doing today and if there are any blockers. Seems easy enough, right. But have you noticed that in Stand Ups this flow is not always followed. Sometimes people are interrupted, sometimes the ‘what they did yesterday’ becomes a topic of discussion that not everyone in the team needs to know. Or worse the topic almost hijacks the entire Stand Up.
In this event the Stand Up almost goes against its core purpose i.e. to provide a super quick update to the entire team. So, why does this happen? Why do Agile processes start to differ from their original intention. I think this happens due to two key factors, a lack of understanding and discipline.
Discipline in Agile
When we take an existing method and change it, as long as it works and generates results then this makes people happy. However, if two people take the same method and adopt it to their own needs and at some point converge, this can create issues. In short, an adopted method which works for one may not for someone else. One reason why Agile can be fragile is due to the way people adopt methods. Trying to maintain a degree of discipline does help to reduce this but change in an Agile environment is inevitable.
So, is Agile Fragile?
Yes it can be, especially if new forms of an existing methods are created by people. In my years of working in many Agile teams across many organisations, I have seen the same method (such as Stand Ups) used in very different ways. Ultimately if it works then there are no complaints but in the Software Industry we appear to have a very overloaded approach to Agile. What do I mean by this? An Agile process such as Scrum may be followed slightly differently between two companies even though the way Scrum should be followed is outlined clearly.
At the beginning of this post I mentioned that Agile is a Framework. The concept of a framework is to allow someone to take something and use it to ‘get stuff done’. But when you take this framework and change it to an endless number of variations then it becomes difficult to keep track of how it is used.
In final, Agile is not fragile as the whole concept of it is to allow change, to allow quick change. Doing things differently does not mean that it is wrong or right but it does mean that people need to adopt to changes quickly.
What do you think? Is Agile fragile?