So what is ‘agile’?

In this post I take a not entirely serious look at the origins and catalyst of the agile ‘movement’, born in the exciting and daredevil world of software development.

Ski LiftIt was deep into the evening of February 13th 2001. The wind pummelled the cables and towers of the ski-lift, creating an eerie, semi-musical cacophony of creaking metal and whirling wires. The icy snow rattled against the shutters. Behind them, inside ‘The Lodge’, the debate – which at times had raged almost as violently as the storm outside – came to an abrupt halt. The silence lasted a full minute as each of those present grappled with the implications of what they had created. One by one, they realised that the world would never be the same again…

Well I’ve no idea if this was how it really happened, but the date and location and possibly the bit about the raging debate are true, for it was on this day (or thereabouts) that 17 representatives (or “organizational anarchists” as they describe themselves) from a variety of technical disciplines and backgrounds created a “Manifesto for Agile Software Development”. And yes – it has changed the world.

A great many threads, influences and elements were fed into the cauldron during that meeting but probably two things, rightly or wrongly, have emerged from it to dominate first the world of software development and increasingly the wider world of business, over the subsequent two decades: the word ‘agile’ and the framework known as ‘Scrum’.

I will defer the debate about the word ‘agile’ until another post perhaps, but it is worth pointing out that for some at least, agile and Scrum are the same thing.

They aren’t – the former is a state of mind; a way of viewing the world and the latter is a framework – but it is easy to see how that belief persists due to the dominance of Scrum, which I will cover in another post. Throughout my blogs and other activities I consider ‘agile’ in its widest sense, as an umbrella covering a collection of varied principles, practices, philosophies, frameworks and techniques that fit in with the agile mind-set.

To understand this mind-set, and specifically why it has had such a significant impact on the business world, we need to delve a little further back in time to the bad old days of missed deadlines, blown budgets, disappointed customers and… waterfalls.

Once upon a time – before agile – most software products were developed in a sequence of phases using a methodology known as ‘Waterfall’. It went something like this:

Phase 1 – Requirements Analysis

The customer for whom the software is to be built is interrogated under the glare of powerful arc lights to reveal their inner most desires, which are written down in infinite detail to form the sacred “requirements document” – a tome often so large that entire forests are culled to supply the paper.

At the end of this phase, the customer is whisked away to a secret location until the start of phase 4, typically two or three years later, without any means of communication with the team developing their software.

Phase 2 – System Design

The analysts who conducted phase 1, pass the sacred document to a new group of analysts and return to their basement, for their job is done. This new team pore lovingly over the texts, extracting meaning from it all and writing new documents; sometimes embellishing their words with diagrams of great complexity and inner beauty.

When done, they too retire to their corner of the basement, leaving the new sacred ‘design document’ behind. The original sacred requirements document is carried carefully via a trusted cohort of anointed interns to a secure storage facility deep underground and is never looked at again.

Phase 3 – Implementation/Coding

In phase 3 the magicians are summoned. It is their job to mysteriously transform the sacred design document into code. Millions upon millions of lines of code. In fact it is believed that the greater the number of lines of code, the greater the quality of the finished product.

When the entire sacred design document has been transformed, the code is transferred to a special environment for the grand ceremony of User Acceptance Testing. Tradition has it that this milestone in the project should always happen at least 2 months behind schedule – often considerably more. By this stage the budget for the entire project should already have been spent. Twice.

Phase 4 – User Acceptance Testing

At this stage, the customer is brought back from their exile and presented with a partially functioning system. They are expected to remember what it was that they wanted at the start of the project all those years ago and to be wise enough to know how they should test it. Often they cannot remember the original intent, but either way, they have changed their mind anyway. The world is a different place now.

There is no time or budget to fix anything so the things that are most broken are ripped out.

Phase 5 – Operations

In this phase, a new group of technicians with no prior knowledge of the product attempt to install it (in whatever state it is in), into a new ‘production environment’.

The end users for whom it was built are then told of its existence for the first time. They play with it for a short while then spend the next six months generating a long list of suggestions about how it could be made into something useful, after which the machines upon which it runs are turned off and the process begins again.

Ok – to be fair, I am of course exaggerating – many will argue that in some situations a waterfall approach is a sound and effective way to develop software. It does have some great benefits at least on paper but joking aside, there are significant flaws in the concept.

The group of techno-anarchists who met at the Ski Lodge in Utah during the winter of 2001 managed to distil the essence of a new way of thinking that had been bubbling away in various places. They called it ‘agile’.

This essence is about many things but at the core is a set of values and principles that encourage flexibility, reflection, honesty, courage, trust and above all an in-built obsession with continuous improvement. All these things are achieved by replacing the huge, complex, heavily documented monolithic projects with a continuous stream of small steps, each of which deliver something of value to the end user.

These deliverables are released quicky and frequently so that everyone involved can learn about the product, therefore improving the effectiveness of the next small step (or increment) and ultimately delivering a more effective product or service. Due to the small steps, when things go wrong – and they do – the cost is small and the resolution is rapid.

When executed ‘properly’ this process has benefits for everyone concerned. The customer sees value almost immediately and receives a product that meets their real needs even when those needs are changing on a day to day basis. The timescales for delivering significant value are reduced considerably as are the budgets. The developers are empowered and trusted to ‘do what is best’ and to continually improve in all dimensions of their role, resulting in an improved quality of working life.

The only downside is that achieving the necessary agile mind-set, especially in larger organisations that are still organised with an industrial, ‘command and control’ mentality, is challenging and especially difficult to sustain. But the rewards are immense. I believe there are similar challenges facing adoption of an agile way of life in education but there is a similar scale of potential benefits. Potentially even greater.

I will explore this educational potential in further posts – but until then, why not join the Agile In Education UK Meet-up Group at https://www.meetup.com/agile-in-education-uk? You will be most welcome.

References:
The Manifesto for Agile Software Development: https://agilemanifesto.org/

Leave a Reply

Your email address will not be published. Required fields are marked *