Golf putting

Faced with the question ‘What do you do?’ from family and friends is more challenging than it should be. Most other professions have been around longer than a generation but writing software applications is different. Especially for my parents and so this is for the vast majority of people who don’t do what I do but would like some sort of idea of what I do.

But first a disclaimer – I don’t really know that much about golf. I have played a few rounds in the dim and distant past and watched a bit on the TV. My apologies in advance to golfers everywhere for the mistakes I am about to make.

Teeing off

Every project needs to start somewhere. If a round of golf were a project then it would start at the first Tee. Arriving with golf bag with an arsenal of clubs ready to begin. Even before arriving at the first tee there has been a bit of planning, appropriate clothing for the weather, umbrella in case it changes on the way, score card and pencil in hand it is time to start the project/game.</p>

If the fairway does not stretch out in front of you then this is probably pitch and put and you are overdressed and equipped. Take a couple of clubs from the bag and put the rest back in the car. Pitch and put might be an appropriate metaphor for the support and maintenance phase of a software project but that is not the game for today.

So the first step is to work out how to approach the first hole. This is similar to planning the first release. If the hole is close by you might be able to reach it in one shot. Typically though the pin is some way off in the distance, perhaps behind some trees or lake and although you might have a general idea of where it is, trying to get there in a single stroke is very risky and could land you in a whole lot of trouble. The sensible approach is to work out how much of the course you do know about (the bit in front of you) and try to get the ball a far down the fairway as you can without hitting an unknown obstacle. Each shot can be compared to an agile software development iteration which takes on enough work to move the project forward and deliver value without putting the overall project at risk.

The drop shot

What makes golf and software development so interesting is all the factors that can affect the game/process. Weather, tools, mood, other people. Sometimes even the best players end up a long way from where they intended to be and have to take a drop shot to continue the game.

Sometimes development iterations don’t go as expected. There are so many variables that predicting the outcome of an iteration let a lone a full product release is not reliable.