I’m part of the digital first project, the team that’s looking into new ways of working that will help Scottish Enterprise improve its projects’ performance.
One of the things the team is doing is a 12-week training course on Value, Flow, Quality. That probably doesn’t mean much to most people, but basically it’s a methodology we can use to organise ourselves and our work to deliver value to our customers, quickly and flexibly.
One of the things we looked at in our first session was why IT and software projects regularly fail (by some measures, only one project in three is successful).
This alarming statistic tells us something is very wrong with the way businesses approach these projects. But what?
Well, it seems the ‘rules of thumb’ we use to make decisions emerged from a manufacturing background. The problem is that, while manufacturing is a complicated business, software development takes place in a complex environment.
We use the words complicated and complex almost interchangably, so what do I mean by drawing this distinction? Well, here’s an analogy.
Making a bike is complicated …
To manufacture a bike, you need hundreds of different parts, each engineered to very fine tolerances, which you then assemble in a particular order.
So it’s tricky, and you have to get it exactly right every time. But if you stick to the design specification exactly, and follow the correct process you will eventually have built a bike.
What’s more, if you repeat the process you will have an absolutely identical bike, every time.
… but riding a bike is complex
As soon as you get on the bike and start pedalling though, things change. Sure, some things are straightforward; you push down on the pedals, the force turns the back wheel and you’re propelled forward.
If that were all you were doing it’d be simple. But it’s not. As you ride along you are constantly taking in information about your environment. Is that car going to pull out? Does that energetic-looking dog have a thing about cyclists? I need to turn right ahead. Is there anything behind me? Does that puddle up ahead conceal a wheel-wrecking pothole?
As a result of all this information you are constantly adjusting – adjusting your riding position, pulling your brakes, changing direction, anticipating.
And the adjustments you make in turn affect other road users – if you swerve to avoid an opening car door, the driver of the bus behind you will also have to take evasive action.
It is from this feedback loop that complexity arises, and which makes complex systems inherently unpredictable. There is no ‘right answer’ you can pin down in advance. Instead, you have to set out on your journey, be vigilant and react quickly to events around you. And accept that things will change.
Software development takes place in a similarly complex, almost chaotic environment. New technologies emerge daily, and these technologies can be hugely disruptive, even to established industries. You only have to think about what has happened to booksellers in the last 10 years to see that if companies don’t adapt quickly enough they very quickly get left behind.
To compound this, our software projects take place in the context of economic development. Few systems are more complex than an economy. And as events of 2008 showed, complexity in economic systems can very quickly turn chaotic.
So we have complexity squared. How can Scottish Enterprise adapt to this and deliver projects that add value for our customers, quickly and responsively, and still achieve value for money?
That’s what we’re here to find out.
Images from Wikipedia, reused under a Creative Commons licence.