DEV Community

loading...
Cover image for Provide better time estimations with PERTify📈

Provide better time estimations with PERTify📈

salhernandez profile image Salvador Hernandez ・2 min read

As I was reading Robert Cecil Martin's The Clean Coder I stumbled upon a section in chapter 10 about estimating tasks. Using Project Evaluation and Review Technique (PERT) you can provide three values for a task: Optimal, Nominal, and Pessimistic, and generate how long it was expected to finish a task. I wanted to try it out, but didn't want to write all the equations when being asked to provide estimates. I could have used any of the PERT calculators out there, but like a typical developer, I set out to create a tool that fitted my needs, hence PERTify. PERTify is hosted on AWS using CloudFront and S3.

This application is optimized for desktop screens!

PERT

PERT is a statistical tool used in project management, which was designed to analyze and represent the tasks involved in completing a given project. The scheme provides a simple and effective way to convert estimates into probability distributions. For PERTify, we will be using tasks and subtasks, instead projects and tasks.

For an in depth explanation of the calculations, please visit The Clean Coder: Estimation, Wikipedia, and LinkedIn.

PERTify

For each row (subtask) you will see the calculated probability distribution (μ) and standard deviation of the probability distribution (σ). σ measures how uncertain the task is.
At the top left of the card you will find μ sequence which is the sum of all the subtasks' expected duration, and σ sequence which is the standard deviation for all the subtasks.

We will using hours as the unit of measurement.
Alpha is estimated to be done in 4.2 (μ) hours. However, the estimated time to finish Alpha, Beta, and Gamma is 14.2 (μ sequence) hours with a standard deviation of 3.1 (σ sequence) hours.

Using the standard deviation we can calculate different estimates:

  • 14.2 hours
    • μ sequence + ( 0 * σ sequence )
  • 17.3 hours
    • μ sequence + ( 1 * σ sequence )
  • 20.4 hours
    • μ sequence + ( 2 * σ sequence )

The task is set to take 14.2 hours, or 17.3 hours, or 20.4 hours, etc... But will most likely take 14 hours after rounding down 14.2.

Demo

PERTify Demo

What I learned

Links

What is your favorite Task Estimation tool? Let me know in the comments!

Discussion (2)

pic
Editor guide
Collapse
rmhogervorst profile image
Roel Hogervorst

I've looked into this method before but your project looks really nice!

Collapse
salhernandez profile image