I discovered agility about 10 years ago now and I was immediately convinced. I’m a pretty social person and always had the idea that in order for people to be efficient doing their job they have to be happy and fulfilled, a fact that became evident to a lot of people today but we had to come a long way to get there and we are still far from the end (which is kind of good news actually but more on that later).
In the last year I heard more and more people around me saying “we are Agile!” in all kinds of situations, sometimes with some sort of pride, sometimes with a little bit of irony and more and more often like an all-purpose answer. So it got me to wonder, in the end what does it mean to be Agile?
Back to basis
My first impulse was to go back to the Agile Manifesto, I know you can all recite it from memory but let’s have a look just in case:
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.
Ok so, we focus on direct communication (in the team, the organisation and with the client) and global efficiency (we answer to the real need and accept it will change). Forget about baselines written in stone so dear to PMI. I know, I might be exaggerating a little, we had change requests before which is pretty much the same right?…hum, not so sure about that but that’s not the point of this article, I’ll keep this one for later.
Things are much clearer now, at least for me, being Agile is all about more interactions to work better and adapt to the real need of the client…That being said and even though this is really great, I have the feeling that we are leaving out a lot, we’re doing much more than that aren’t we?
The 12 principles
Those 4 values from the Agile Manifesto resulted in 12 underlying principles. I won’t talk about each one of them (I do recommend that you read about it if you don’t know them though, won’t take long I swear 😉 but here is what stands out for me.
Quality and technical excellence
The ultimate objective is to create robust softwares. Being able to launch an application fast is great but if the user experience is so bad due to the amount of bugs you won’t be very successful. The Fail Fast philosophy pushed by the Internet Giants doesn’t mean you have to deliver no matter what but that it is important not to reschedule production delivery just because your product is not finished (see Lean Startup for more on this) and that you need to be able to go back easily if needed. The Software Craftsmanship is you friend here.
Add value as often as possible
Two important principles (add value and often) that implies to make sure, on a regular basis, that what you are developing match what the client really needs. To do that you need to deliver often (by automating as much as possible the process in order to remove the fear of production delivery) and highly involve the client so that the backlog is up to date…
Create a culture of dialog
That is in the team and between the team and the rest of the world. Make people meet and discuss allows you to limit the loss of information and improve the comprehension of objectives and knowledge sharing. Furthermore when people know each other it’s easier for them to be more emphatic and create a culture of support. Developers will better understand the market pressure that applies to the client and the client will be more sensitive regarding technical challenges that the development team is dealing with to answer its needs.
Auto-organisation and sustainable pace
Work fast and efficiently is possible (really it is, believe me) but hold your horses, fast doesn’t mean working late hours everyday including weekends to achieve unrealistic deadlines (you might think I’m exaggerating here but unfortunately I’m not!). A great team should be efficient in the long run and to do so you should listen to its members and allow them to find their own rhythm and take their own decisions, after all they know what they have todo, they are the experts!
Keep questioning the way you do things
Processes that are efficient today might not be tomorrow (change of context, new technologies, organisation maturity, market shift…) and has Eliyahu M. Goldratt and his Theory of Constraints taught us operational performance implies an iterative process and you will have to keep on questioning how things are done and find solutions to new blocking points.
Take time, on a regular basis, to check how people are doing and if the way you are working is efficient is a key factor of success.
Don’t forget to have fun!
Quality, short iterations, business value, open discussions, goodwill, continues improvement…For me, being Agile is all of this. It’s about asking yourself about how to do things right in your company with its specific context and the constraints it’s facing. It’s about solving problems, one by one, knowing that there is no end to change. It’s about trusting individuals and letting them express themselves.
And one last thing, maybe the most important, don’t forget to have fun and keep on experimenting and learning. It’s the best way to improve!
What about you, how would you explain what being Agile is? Share your thoughts in the comments!
Did you like this article? Show it
Leave a comment, like on LinkedIn 👍 and share! Your help and feedback is important, it helps me to learn and keep improve, thank you 😀