Warning. This post starts out looking like geeky techno babble but it isn’t, I swear!
I’d never heard of agile software development until I arrived in London. I can’t say it’s what everybody’s doing over there, but the best development houses are at least dipping their toes in the water. The guys I worked with at Conchango are bloody ninjas at agile development, and it works really well for them and (most importantly) their clients.
There are a lot of different agile development methods (IIRC Conchango uses ‘Scrum‘), and I really can’t be arsed going over them here – there’s some pretty good coverage in the links above if you’re interested. What I’m more interested in today is Agile as a philospohy, rather than a development methodology. Let me explain…
My first exposure to agile was as a development methodology. When I interviewed at Conchango, Tom Hopkins (one of those annoying bastards that you can’t help liking, despite them being so much smarter than you are) tried explaining it to me. While I understood what he was telling me, to tell the truth I didn’t really buy it at first. It wasn’t until I’d seen the teams churning out incredible (in terms of value and complexity) work in quite short timeframes that it all started to make sense. Here’s my take on it:
The easiest way to eat an elephant is to do it one bite at a time, starting with the tastiest bits. This makes your lofty goal much more manageable, and if / when you stop eating you can be comforted by the fact that at least you ate the eye fillets before the asshole. You can also avoid the risk of starving to death while trying to figure out how you’re going to fit the whole bloody thing in your mouth.*
Ok Tom, how’s this instead?
The easiest way to eat an elephant is to do it one bite at a time, starting with the tastiest bits. This makes your lofty goal much more manageable, and when you’ve eaten the eye fillets you’re free to decide if moving on to the asshole is really that great an idea. You also minimise the risk of choking, or starving to death while your mother is trying to figure out how to fit the whole bloody thing in your mouth.
I agree – the analogy doesn’t really do justice to the complexity of actually doing agile development, but that wasn’t my intention. I think the main message I wanted to emphasise is that big picture planning is great, but not at the expense of doing. The days of ‘scope and hope’ (‘waterfall’) planning are numbered – and hopefully not just when it comes to software development projects. I think agile holds water as a planning/doing philosophy on many levels, and would encourage everyone to check out the links in Tom’s comment below – I know I will.
Merry Christmas, kiddies!
So now I get agile as a development methodology, and as an approach to digital strategy it makes a lot of sense too. You can’t anticipate all future requirements, and even if you could the odds are you don’t have the time, cash, authority or nads to commission a project that big. A much simpler and yet more powerful approach is to continuously assess and evaluate opportunities for improvement (achieving whatever your business objectives are) and going after the most important ones first. (You still need an over-arching vision or direction, but within that you should be free to do whatever you’ve decided is the highest priority).
What’s my point? Ok so I’ve been thinking about this concept quite a bit in recent weeks, and it now occurs to me that agile as a philosophy not only makes sense from a development and strategy / planning perspective, but also as a way of life…
You’re a long time dead, as the saying goes. We’ve all heard that one before, but most of us never seem to take it on board. I remember a scene in the CS Lewis biopic ‘Shadowlands’ (bloody terrible movie), where Lewis observes that we seem to live our lives like we’re climbing a hill, continuously living in the shadows in the misguided hope that one day we’ll reach the summit and bask in the sun. Trouble is, it’s cold in the shadows and most of us never reach the top.
It’s good to have direction in your life, to have some kind of ambition and a few clues about what’s important to you. But there’s no point fretting about what you want to do with your life. When I was a kid I wanted to be a vet, as a teenager I wanted to be a *shudder* lawyer, and these days I dream about life as a rodeo clown. God only knows what my aspirations will be later in life – most likely I’ll wish I was a kid, teenager or thirty-something again. You can spend a lot of time making these big life-long plans, and miss out on a lot of living along the way. What should you be doing instead?
At any given point in time, you should be focusing on whatever the hell you’ve decided is most important to you. Whatever makes you happy – do that shit.
Ok so here’s the parallel I see with agile development:
Imagine you ‘ve got a budget of ’10 years’ to spend on a project with the business objective of ‘making you happy’. You could spend 2 years mapping out everything you needed to do before starting the real ‘get happy’ work. By then you’d be committed to a good solid plan that will take you maybe another 5 years to achieve. Assuming that your aspirations are still the same 7 years from now (how likely is that?), you should be doing pretty well.
Alternatively, you could assess a whole bunch of things that could make you happy (some of these can be big and lofty – I’m not saying you can only do the little stuff) and make a call – which of these would make you happiest? When you’ve made that decision you can get cracking right away and also start thinking about what you’re going to do next. At the end of your 10-year happiness program, one of these will hold:
- You will have achieved everything on your list – you can’t think of anything that’ll make you happier; or
- You’ve run out of time, but spent every day of that 10 years doing the stuff that was most important to you.
I don’t know about you, but the latter approach sounds pretty sweet to me. If that’s not enough, you will also have been enjoying yourself from day one, rather than spending 2 years in planning hell before starting to actually do the happy happy stuff.
I’m not sure if this post is about trying to help laymen understand agile software development methodologies, or just a wake-up call to people (myself included) who find it easy to slip into a rut in the misguided hope that greater things are just around the bend. Either way I hope there’s something worthwhile in there.
Get busy living or get busy dying, I say. Can anyone suggest the name of a reputable school for rodeo clowns? I might need that.
*Cool analogy, huh Tom? You can use that one if you like 🙂