Originally posted in efficientuser.com
Follow and spread the positivity to the world 😄
Most of us will do estimation as part of the job in building software.
Estimation is not just limited to the job, it’s happening in our life as well.
When your mom or spouse asks: when you’ll reach home — you’re mentioning a time based on looking into traffic on road; THAT’S THE ESTIMATE
Why does the estimation fail?
The estimation fails when there is a major difference between the actual time and estimated time.
Let’s say you are building a feature in the software.
You are estimating it to complete it in 5 days.
- Estimate fails if it takes 10 days
- At the same time, estimate fails if you complete in 2 days.
Why overestimate or underestimate?
An estimate should be realistic than an imaginary one.
We should hide behind overestimation or breaking the head with underestimation.
While estimating, one should consider all the internal and external factors to be considered in the part of the process.
What if I missed the deadline even after proper estimation?
Estimation is a skill that makes you feel perfect.
It like machine learning, you will keep on learning by doing multiple iterations.
But each iteration should bring the results better compared to the earlier one.
How can I estimate better?
Yes, that’s the question we trying to discuss now.
Earlier, in one of the projects I have worked — we have experimented PERT principle to estimate our tasks.
PERT — Project Evaluation and Review Technique
I usually call it with another term – 3 point estimation, because it sounds cooler than the previous one.
Short story
PERT is an estimation technique that helps you calculate the estimate by considering the uncertainties that may happen in the tasks.
So one should bring a 3 estimation for one single task. Let’s see that in detail in the long story.
Long story
For every task, one should prepare 3 estimates by considering all the risks and uncertainties that may occur.
And using a weighted average of that three numbers to come up with a final estimate.
Pessimistic (P) — when everything goes wrong
Optimistic (O) — when everything goes right
Most likely (M) — common problems and difficulties — similar to life 🤔
Mostly these estimated are measured in hours or days(6 hours a day). So one should prepare 3 estimates for all the above-mentioned cases.
The program (or project) evaluation and review technique (PERT) is a statistical tool used in project management, which was designed to analyze and represent the tasks involved in completing a given project. - Wikipedia says
Process of estimation
Let’s say, I’m working on the task to build a console application to do some operations.
Now I need to go through the requirements and check the technical impediments in it and decide the workflow. And the come up with these 3 estimates like
If everything goes wrong; Pessimistic — I will complete the task in 8 hours
If everything goes right; Optimistic — I will complete the task in 3 hours
If I have some real problem; Most likely — I will complete the task in 5 hours
That’s it. They can start and continue their work in full swing.
From a project management view
I manage this project and I got three estimates for one single task.
Which one I should track now?
And how can I estimate the overall timeline of the project?
The answer is — we have a formula now 🤣
Don’t scare! I do scare when I learned it first. But it’s straight forward, nothing to do with algebra or integral calculus.
The resulting PERT estimate is calculated as
(O + 4M + P)/6
This is called a “weighted average” since the most likely estimate is weighted four times as much as the other two values. You’ll notice that the final PERT estimate is moved slightly toward either the optimistic or pessimistic value – depending on which one is furthest from the most likely.
Estimation is a skill that makes you feel perfect.
It like machine learning, you will keep on learning by doing multiple iterations.
But each iteration should bring the results better compared to the earlier one.
Try out and leave your feedback in the comment section.
Follow and spread the positivity to the world 😄
Credits:
Photo by Kelly Sikkema on Unsplash
Top comments (6)
Good post, I hold perhaps a contrarian view on this and that is that estimation is a waste of time. Why? because it's hard and in 90% of the cases people get it wrong.
What is the alternative? No estimation! You have your team create tasks/issues that take roughly 1 day (8 hours) (or whatever metric you prefer) to complete. Over time you'll see the burn rate of your team and you'll get a productivity average your team is able to produce during a week's time or even sprints of several weeks if you want to use something like Scrum.
Depending on the type of task, and the team maturity you'll end up with a certain level of accuracy. This is true regardless of actually estimating your tasks or you ballpark it with this method.
You might also be interested in Joel's evidence based scheduling. It takes some steps to account for estimation skill and iterative improvement thereof. Link: evidence based scheduling
Very nice article
Thank you
Is this all based on Probability and Normal distribution?
I'm not sure about the exact tags that need to be added to this post.