I am personally involved into software and general IT. I was always wondering, why this Agile keyword has gotten so much attention over the last few decades. Are there real benefits to using it? Or is it just a centrally imposed scam?
The origins of Agile can be traced back to the birth of Lean manufacturing. The lean manufacturing is a set of predictable actions, built in a process, where maximisation of value, while reducing waste is expected continuously. It applies to a simpler domain compared to software engineering. Think of it as if you were optimising your house cleaning in very predictable conditions (things get dirty over controllable means, like only dust). The questions you would ask are:
- What is important to me to clean?
- What are the things I don’t really need to do?
- What can reduce my cleaning time?
Potential solutions can be – I’ll buy a vacuum cleaner, I’ll get rid of some of my flat surfaces, or I will reduce the amount of stuff I store. The keyword here is muda. This way of thinking about manufacturing was pioneered and popularised mainly by Toyota.
Agile software delivery started less officially with new delivery methodologies of the early 1990’s. You can name focus on people (Peopleware), process timeline (RAD) and eventually interactions (Scrum) and engineering excellence (XP – extreme programming).
How was Agile different to the lean manufacturing? Try thinking our cleaning example. Just this time, as this is a software world, things are more ‘fluid’ and ‘complex’. Children can run around with dirty boots over cleaned space, your mother in love can come in and say that ‘things look dirty and she does not like it‘ or your partner decides to take children out for a trip, rather than help you cleaning as planned. Things are in constant motion and planning becomes a much bigger challenge. Results are also unpredictable, value is set by the expectations of multiple stakeholders (see here).
In the standard model, called waterfall the advise is to control and check as many things as possible for the end result. It is a centrally managed model, similar to army structures. It generally leads to multiple smaller or greater failures, due to the nature of unpredictability of the external factors. Both in software world, to quote […] the giant British food retailer J Sainsbury had to write off its US $526 million investment in an automated supply-chain management system. Merchandise was stuck in the company’s depots and warehouses and was not getting through to many of its stores. Sainsbury was forced to hire about 3000 additional clerks to stock its shelves manually. […], as in military world […] At Stalingrad […] By concentrating on a secondary objective and reinforcing failure, Hitler failed to take his primary objective and lost an entire army of 330,000 men. […].
Is then the issue, you should not plan and just start complaining, risking loosing primary focus, as per the Dilbert cartoon? Not really. Usually most of the central-control focused managers start to panic at this point. Agile is being introduced and they will loose control, everything will fall apart. They rarely notice, that up until this moment, they were building a company culture based on lack of trust and promoting obedience over results.
The other factor to consider here, is something called Wirth’s law. High level – through promoting complacency in delivering software, most of the managers try to solve their software problems, through buying stronger hardware. All this backed by the culture of lack of trust and full-on obedience, will continuously, negatively impact all of your projects. It is as if you would have a team telling you what you want to hear, while they spend more time producing evidence, than actually working. At the same time, when they make something working, if its bad, they would blame it on slow hardware (are you also thinking older versions of Windows? 🙂 Because that’s how Microsoft operated, until recently, and this is also why Apple secured an edge on the market in almost no-time).
How to tackle all that then?
Think on your complex cleaning example. First think on why is there an actual value in cleaning, do a survey, talk to different people. Try to find out, if it is worth it at all!? Once you are through this stage, sit down. Lets assume you have found value in cleanliness. Start to think on your group of stakeholders and what would they expect. List it all.
Great if you got yourself to this stage. Now a bit of terminology. You are entering an area of a Minimal Viable Product. Once you have that, you need to organise yourself.
[…] the best generals are those who arrive at the results of planning without being tied to plans. By Winston Churchill.
You are in a collective effort state. You have a minimal set of requirements, potentially required by all, but open to feedback. Establish very frequent communications. Call your mother in law, speak to your partner, speak to your children, adjust. Also try to execute your cleaning process (a product of all this), as often as possible, to learn and adjust, keeping your primary goal and MVP on your mind. Then build on top of MVP.
You are almost Agile now.
The last step is the one that is the most fearsome. Allow yourself to fail multiple times, before achieving perfection. Don’t target superb quality and value from day 1. It takes drilling, rehearsals and learning, to achieve perfection. Often and continuously.
I believe it is the hardest to achieve in our Western society. We are taught from early ages, that making mistakes is bad. You get strifed by your parents or teachers, or you get bad grades, you get penalised one way or the other. Just because you failed. Making mistakes, while learning is something, we are attempting to eradicate from our culture. Hell! We even allow AI to do it. The way robots gain experience is through continuous, multiple failures and corrections. I would like to see a human worker being allowed these many errors to improve. Wonder what would be then, the comparison of a robot vs human efficiency.
If you have applied all that, you are following the spirit of Agile, concentrating on interactions, response to change, short feedback and improvements. You have built a culture open to change.
Separately, Agile encourages smaller work groups, working on specific problems. It is like having indigenous tribal groups (which model btw, was applied at Spotify).
This is why, I believe, this Agile, tribal thinking is the future over centrally controlled, massive processes. If you still believe that culture based on obedience, limited trust and full control is something for you. Well, do names like Hitler and Stalin or Franco ring a bell? Their control was illusion, supported by massive resources. In the end, it ended as unsustainable long-term. With a rather huge bang!
To motivate you to fail… Just watch the video below:
By the way, if you are thinking the overused Eisenhower quote on: Plans Are Worthless, But Planning Is Everything, you should read this, he never actually had said that and definitely not in Agile context. He was up for extensive planning and extensive long-term re-planning.