February 1, 2007

...Learn TDD with Codemanship

It Pays To Wait

Harking back to the Agile Governance game got me thinking about the problem of resourcing. Aside from being a completely made-up word, the other problem with resourcing is neatly demonstrated by a variation of the game.

In the game, teams plan and execute a sequence of moves, each move requiring a specific number to be thrown using two dice to complete it. In one variation of the game, teams plan in iterations of 20 dice throws, and in each iteration they can choose which dice they wish to use to execute their iteration plan. There are 4-sided dice, 8-sided dice, 10-sided dice, 12-sided dice, and - of course - 6-sided dice. To throw a 6 using two dice, your best bet is probably using 2 six-sided dice, because they give you better odds of throwing a 6 than, say, two 12-sided dice.

Teams who played the game soon realised that getting the right dice at the right time was part of the skill of Agile Governance. The dice represented capability - since capability is the probability of performance. We took this to mirror the skill of getting the right people on a project - the people who'll give the highest odds of successfully executing your plan.

Indeed, your plan needs to take into account your capability. If you plan a sequence of dice throws like 4, 3, 5, 3 and so on, but there are only 10-sided dice available, then your plan is more likely to fail than if there were two 4-sided dice available.

I noticed some teams had a strategy for getting their hands on the best dice. The rules stated that teams could not use the same kinds of dice in two successive iterations. so if they used a 4-sided and a 6-sided dice in iteration X, then they couldn't use a 4-sided or a 6-sided dice in iteration X+1. So they would keep a very close eye on the dice being used by other teams, and they would time their iterations for when they thought the best dice would be available. The strategy appears to pay off, in the game at least. Teams who rushed to get through each iteration - regardless of what dice were available - tended to do not so well.

The real-world equivalent strategy would be to delay the start of a project until the best developers are available. But this is a strategy that's rarely put into practice. With dice, the importance of availability of capability is obvious. It can be demonstrated using simple probability. The real world is a lot murkier, and there are plenty of people responsible for making hiring decisions who don't get the relationship between the capability of the team and the chances of successful delivery. Which is why they're happy to go with whoever is available on the planned project start date, rather than choosing a start date based on the availability of the best people. This is very probably a huge mistake, as capability is a major factor in the chances of project success.
Posted 14 years, 5 months ago on February 1, 2007