Evidence-based Estimation for Project Delivery

Planrockr
Planrockr
Published in
4 min readJun 3, 2016

People, with the exception of some mystical beings, are not very good at predicting the future.

https://www.flickr.com/photos/pasukaru76/3998273279/

Therefore, it’s very likely that their estimates for task and project delivery are not as precise as the client would expect, correct? Fortunately, we have other resources at our disposal to make up for that deficiency: facts, numbers and computers that are fast enough to process the data.

Let’s take a look at a simple scenario:

Given a project that’s due, a project manager and its team divided all functionalities into tasks, let’s say 200. It’s known that the team can deliver 20 tasks per week, so the project would be finished in 10 weeks.

Easy! Patience young Padawan, patience, life is not that simple…

What could happen in this scenario:

  • New tasks could emerge during development
  • Bugs could be found
  • Tasks could not have the same size/complexity
  • People could leave or join the team, affecting the number of tasks delivered per week
  • A zombie apocalypse could happen and all backend developers could turn into brain eaters

As far as the last item goes, we could do very little about it, maybe store food and weapons at home, but as for the other items, all of them could be mitigated.

Since we know new tasks or bugs could come up during development, let’s add a margin of error and assume the number of tasks would be somewhere between 200 and 240, for example.

Concerning the problem of having tasks of different sizes/complexities, we can adopt a simple rule: no task should take more than X hours to be completed. At Coderockr we set it to 16 hours, meaning that no task should take more than 2 days to be done. Some tasks would still take a lot less than 2 days to be completed, but at least now we have some control over the range.

As for team velocity, we can also assume a margin of error. Let’s say that the team is able to deliver from 20 to 30 tasks per week. This way we can account for things like holidays, sick days, equipment issues, etc.

Ok, but now how do we use all this information in our calculation? Simple:

https://www.flickr.com/photos/lisabrideau/with/5213615948/

No, I will not suggest that you leave it all behind and go try your luck in Vegas, although I have thought about doing that myself…

We’re going to use a technique called “Monte Carlo Method.” According to Wikipedia they are:

computational algorithms that rely on repeated random sampling to obtain numerical results. They are often used in physical and mathematical problems and are most useful when it is difficult or impossible to use other mathematical methods. Monte Carlo methods are mainly used in three distinct problem classes: optimization, numerical integration, and generating draws from a probability distribution.

Let’s get all the data and perform several simulations considering possible scenarios, 1000 per se, and then we calculate how likely they are to happen. We would get something similar to this:

As the weeks go by and tasks are getting done, the team can update this chart using newer and more precise data to monitor the results. The more data or evidence we have, the more accurate the method becomes and the team can closely watch its evolution.

Would you like to try this method? We created a site for you to use it. You can insert your range of tasks to be completed and the range of tasks your team completes per week to get your own estimates in a chart like the one presented above. And if you would like it to be even easier and have those calculations presented to you automatically, we are currently implementing it in the new version of Planrockr. Sign up now and soon you will have access to your data in the form of a widget:

What do you think about this method? Have you been using something similar or have any suggestions? We would love to hear from you!

--

--

Planrockr
Planrockr

Configuração rápida e fácil. Ferramenta on-line que acompanha seus prazos e equipe, integrando suas ferramentas de gestão de projetos em um único dashboard.