Are We Doing it Wrong?
Agile has quickly become the most misunderstood and abused word in software development, splitting opinions and generating heated debates between supporters and detractors. Every workplace can pride itself on their share of evangelists and challengers and that’s a healthy conflict to be proud of.
How many times do these sort of debates end with the classic line “but you are doing it wrong”? Everyone who has been in the software industry in the last 30 years must have heard this line applied to your agile framework of choice at least once.
But… Are we?
Quoting one of my workmates “agile is an admission of failure”. I loved this sentence and couldn’t agree more. Find a CEO who wants their company to be “agile” and who describes agility as an admission of failure and you will know that place is going to do it right.
Agility is the realization that you cannot control software development or precisely determine the output of creative problem solving. Agility is recognizing that you cannot fit a chaotic system in a box and approaching things differently.
Being agile is about taking inspiration from adaptive systems used in other engineering fields: Base your choice and behavior on observation, empirical data, experiments, short feedback loops, to quickly adjust mistakes, expectations and practices.
I like to describe the agile journey as… learning how to ride a bike:
The Prodigious Kid
Would you seat your kid on a full-size bike and wait for him at the finishing line, a mile ahead?
I wouldn’t think so.
You’d probably find something more proportioned to him. You will get him started on the pedals and let him have a go for a few meters. He would lose balance immediately…and that’s ok.
You’d put him back on the seat, correcting the posture, explaining how to use his feet and let him go again. He would try again and fall… and that’s ok.
You’d explain how to keep the bike more in control, you’d explain how to brake and turn. And yes, he would learn, but most certainly not today, and he would fall many more times before eventually concluding that mile. And that’s what you’d expect.
Learning from mistakes works! This is expected behavior and we know this is the only way your kid will learn to run that bike.
But while the continuous improvement nature of the agile principles is pretty well understood and digested, the various agile frameworks — Scrum being probably the most popular — just seem to provide another way of “doing it wrong”.
What do I think of Scrum? I see Scrum as agile on stabilizers.
Would you find any meaning in judging the ability of this little girl in using the stabilizers?
It’s an odd question, and the reason why it sounds odd is that clearly, the goal is learning to ride the bike and not to be comfortable on your stabilizers.
Once the stabilizers are removed, we will know if they have done any good.
Similarly, is there any meaning in judging Scrum practices, schedule, ceremonies and pointing fingers at what’s right and wrong?
For some reason this question often sounds less odd, but clearly the goal is being agile and not mastering Scrum. Our ability to achieve customer satisfaction at sustainable pace, beyond Scrum and with or without Scrum, will tell us if we are successful.
The purpose of Scrum and many other lightweight methodologies out there, is to provide a starting point particularly useful for new teams, but that’s not the finish line and every team with the ambition of continuously improving should feel empowered to come up with their own way to reduce feedback loops and achieve success without the fear of “doing Scrum wrong”.
What about… doing Scrum well
Like there’s no such a thing as doing Scrum wrong, there is also no such a thing as doing Scrum well. Indeed never stop trying to push the boundaries and feel free to move away from the framework’s guidelines if that’s what works for you. Otherwise you’ll find yourself stuck in a tricycle, where so much attention has been given to those big and stable wheels, that all the challenge to learn to balance, is gone.
Changing the rules of the game is part of the journey.
Play with the rules of the framework, try what fits your team’s needs and what doesn’t, and feel free to adopt some suggestions and drop others.
Does compromising on Scrum artifacts mean “doing it wrong”? Of course, it doesn’t, the only metric of success is learning from the previous attempts.
Being agile is about being a little uncomfortable and brave, calling out the things that don’t work and using that information to find your own path to agility; it’s about being empowered and being able to see and decide where we are going and how we are progressing.
Skepticism fuels agility
Skeptics are the fuel of continuous improvement; passive acceptance is not a useful skill in an agile environment. Every time an engineer raises an eyebrow questioning the validity of methods, plan and practices, you get a new chance to improve.
Being agile, in any form and framework, values critical thinking and recognises that the team is the only entity understanding what can make the team itself more productive.
So whenever you speak up proposing your alternative to your current set of stabilizers, you are not being cynical but you are actually being the agile person in the room and you are most definitely doing it right!