fredag den 1. juli 2011

Getting there the Columbus way

As noted in my earlier post I want to use this blog to talk about different themes in a essay like format. And since I am very interested in agile development, I want to explore the 4 statements of the agile manifesto, and talk about what each of the statements mean to me and my view on software development.

The agile manifesto goes like this:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

That is, while there is value in the items on 
the right, we value the items on the left more.

The one I want to talk about today is the last one – Responding to change over following a plan. There are two reasons that:

Firstly I think responding to changes is what makes agile methods agile in the original sense of the word agile – i.e. someone that can move quickly and well-coordinated. The other 3 statements are enablers that allow us to reach the goal of being able to respond quickly to changes – changes that experience has taught will always be there in any software development project.

The second reason is much more simple – it is the easiest one to write about and I have a couple of good ideas of how to explain my view on it. So in the agile spirit I choose to get something out there fast, so I can get feedback early.

I called this post: “Getting there the Columbus way” because when thinking of planning I always remember a little story, that a speaker told at an AIESEC meeting many years ago. I cannot remember his name, but I think it in a very simple way explains why responding to change over following a plan is a good thing.

To get somewhere in a ship there are essentially three ways to navigate – they are

  • The Viking way
  • The Titanic way
  • The Columbus way

The Viking way of navigating is to drop 40 vikings and a priest in a boat, and pray that you get where you want to go and that there is something to loot when you get there.

The Titanic way of navigating is to have so much certainty that nothing can go wrong, that you will lay your course in a straight line to the target and not deviate from it, since you KNOW it is the fastest way to get to the target.

The Columbus way of navigating is to have a clear goal of where you are going, but knowing that the way is uncharted and may have hidden dangers, you prepare well and bring 3 ships. And you are smart enough to realise that when you miss your original goal of finding a new way to India, there is probably a buck or two to be made from this new continent you found.

I also find that the Columbus way fits well with another of my favourite quotes about planning:

“Plans are nothing. Planning is everything”

Dwight D. Eisenhower

The core of this quote is that once the plan is made, it holds no value in itself. The value lies in the planning that has been done. In the planning phase you have explored the goals you want to reach, and the capabilities you have at hand to reach them. And you have tried to come up with the best solutions to reach the goal given the capabilities you have. Knowing where we want to go and what capabilities we have is exactly what we need when something changes and we have to respond fast.

If the goals changes you know your capabilities and can quickly assess if the new goals can be reached with the assets at hand. If your capabilities change you can quickly determine if it is still possible to reach your goals with your current assets.

So in an agile world planning is performed so you know your capabilities, which in turn allows you to act fast when facing new situations. This is very much in line with the statement in the agile manifesto, that we value responding to change over following a plan. Note that it is the following a plan that is not valued in the agile manifesto - not planning itself.

And planing itself is indeed an important part of most agile methods. In most agile methods planning is something you do every iteration because you know the world has changed since yesterday, and will probably change again tomorrow, so in order to be prepared, to be able to be agile, good planning is essential. If find the backlog in SCRUM (link) a prime example of that as it is ever changing and improving, yet at any given time you are aware what is the most important goal.

This is in contrast to older methods, particularly the waterfall method, and which I based on my little story to start with will call the Titanic methods. Titanic methods tries to eliminate risk while Columbus methods tries to take them into account and navigate around them.

To sum up my view on planning and responding to change is that you have to remember:

Plans do not give you certainty, but planning allows you to act faster and more decisively in an uncertain world.

So when you are going to start a project next time which way do you want to go – the Viking, the Titanic or the Columbus way? For me there is no doubt – I'll take the Columbus way.

Ingen kommentarer:

Send en kommentar