Friday, May 16, 2003

Past Performance is no Guarantee

It's been shown that many of us have no idea how good we are. So just how are we going to assess our strengths and weaknesses?

I'm a fan of Joel's Painless Software Schedule. I like that it's simple. I like that it recognizes that the schedule is worthless until you've resolved the design down to fine grained tasks. And I really like that it keeps track of the original estimate, current estimate, and actual time invested. Because while past performance is no guarantee of future results, it's a heck of a lot better than anything else that we've got.

How good you are on an absolute scale is not as important as how good you are relative to expectations. Having data on past performance allows you to make better task estimates in the future and understand the relative strengths and weaknesses of your team. Now you have a shot at reconciling time, talent and expectations.

Mitigating Risk

Over on Swimming with the Razorfishes, Eric asks What should a project lead know [... to mitigate risk]?

You have to start with an understanding of the strengths and weaknesses of your team. Protection against everything only works against cooties in the schoolyard. But you may be able to structure your approach to mask weakness. If your team is weak in test, then you may want to take a test driven approach. If you're weak in deployment, then you may want to arrange the schedule to allow meaningful trial deployments along the way.

When it comes to people, you usually have to play with the hand that you're dealt. But if you understand your weaknesses, you may be able to arrange for some help at critical junctures of the project. And you can start to cultivate your team's skills for the next go around.