≡ Menu
Pawel Brodzinski on Software Project Management

Evidence Based Scheduling – One More Way to Improve Your Estimates

Somehow my recent discussions are mostly about estimating. Last discussion on PM Clinic happens to be on the very same subject. It reminded me about great technique which can improve your software estimates. It is called Evidence Based Scheduling and I’ve learned this from Joel Spolsky’s article.

The basic concept is pretty simple. Jack the Developer gets the task. Actually a bunch of them. He delivers his estimates basing on his guts. Estimates are most likely crappy but at the moment it doesn’t matter much. As Jack does his work he tracks how much time he really spends on the task. It may happen it takes two days instead of planned 4-hour effort. Velocity for this task is 0,25 and it goes to the history of Jack. When Jack’s history is long enough you can use it to judge how crappy his estimates are.

Evidence Based Scheduling uses Monte Carlo simulation which takes some effort to calculate results. However Joel brings some good news here:

Most estimators get the scale wrong but the relative estimates right. Everything takes longer than expected. (…) This common estimator has very consistent velocities, but they’re below 1.0. For example, {0.6, 0.5, 0.6, 0.6, 0.5, 0.6, 0.7, 0.6}

After completing a dozen of tasks you can get pretty much insight which number you should use to multiply Jack’s estimates to get something close to reality. Of course full-blown simulation will probably lead to better results but you get the idea.

There’s one more gem in Joel’s posting which is worth stressing:

Fix bugs as you find them, and charge the time back to the original task. You can’t schedule a single bug fix in advance, because you don’t know what bugs you’re going to have. When bugs are found in new code, charge the time to the original task that you implemented incorrectly. This will help EBS predict the time it takes to get fully debugged code, not just working code.

I know it brings quite a lot of effort for Jack the Developer, since sometimes he fixes bugs really fast and accounting time spent on each bug fix to proper original task adds enough hassle to be reluctant to do so. However the ends are worth means this time.

I strongly recommend you reading whole article as it delivers all the details about Evidence Based Scheduling.

in: project management

3 comments… add one

  • Raven Young February 24, 2009, 1:24 pm

    Pawel – estimation in software is one of the trickiest, stickiest points of the project. Good post – Thanks for sharing your thoughts!

    -R

  • Pawel Brodzinski February 24, 2009, 2:07 pm

    Although Joel wrote that in 2007 I thought it’s worth reminding. Especially in context my recent intensive discussion on software estimation.

  • Paul Marculescu February 25, 2009, 6:23 am

    Your post reminded me of Devshop, a web tool intended for software projects schedules.

Leave a Comment