• Development,  Tech Tips

    PERT Estimates – Using Three-Point Estimation to Improve Accuracy

    Background & Method

    I’ve long been a promoter of using three-point estimates for improved accuracy when estimating tasks.

    When I estimate how long a task will take to execute, I imagine three separate circumstances in an effort to improve the accuracy of my estimate:

    1. Optimistic: How quickly could I get this task done if everything went perfectly. What if I realize some unexpected “wins” that get me to the finish line faster?
    2. Realistic: When I think about my performance executing similar tasks in the past, what’s my best guess at an average amount of time needed?
    3. Pessimistic: Sometimes nothing seems to go well. If things do not come together as expected, what’s the longest (within reason) you can imagine this task taking?

    If I’ve truly thought about each of these, I can use them as variables in a simple formula, and can get a more accurate time estimate as a result.

    This formula, (Best+(Real*2)+(Worst*3))/6 , puts more emphasis on the worst-case scenario (#3 above) as things seem to always take longer than expected to execute. Sometimes I use two versions of the formula (one that puts even more emphasis on pessimistic).

    One more thing worth noting: You’ll see I used “I” and “my” a lot above; I do not recommend estimating tasks you are not executing, personally. I recommend having the responsible party estimate the task whenever possible. Explain the PERT process to them.

    Usage

    While this formula is simple, and adjustable (alter the weights as you see fit), it would take some time to manually calculate the result for each task.

    I utilize a few tools to generate PERT estimates at the speed of thought.

    First, I’ve written an Alfred plugin to make the process simple. This is my most used method of generating PERT estimates. Here’s a screenshot to give you a taste:

    I’ve also created many spreadsheets over the years. These often look similar to this:

    Here are a few templates you can use: XLSX | ODS