Estimates vs. Guesstimates
Developers are often asked to do estimates of some task or feature. However, the person who requests estimates rarely understands how to read given estimates properly. In the following article, I want to describe the difference between estimates and guesstimates, and when you should ask for each of them.
Estimates: Impossible Accuracy
Let us start from the basics. The main point of estimates is to provide an approximate time needed to do some task or feature. Asking for accuracy in such a case is useless, but many people still do that hoping that the person providing the estimate has enough qualifications or luck to do it.
Another aspect that can also affect precision is the complexity of the task. The higher the complexity, the harder is it to do accurate estimates. Again, many people do not understand or ignore it and ask to estimate task that requires several thousand hours with hour precision.
Of course, there are many best practices that can improve the accuracy. They include splitting a big scope into smaller ones, using the Fibonacci sequence numbers to measure the complexity, various collective estimation approaches, and so on. They work fine in many areas but do not expect them to do magic and predict the future. The best they can do is to find potentially risky areas and define the accuracy for them.
To summarize, relatively accurate estimates could be provided only for relatively small and simple tasks. Everything else requires the approach described in the following chapter.
Guesstimates: Living in the Probability World
When there are too many unknown or risky factors to properly estimate the task or the task is just too big, the next best thing is guesstimates. The primary difference between estimates and guesstimates is the accuracy estimate, i.e. estimates also include the accuracy factor or range.
When you are providing a guesstimate, you should think about the exact time needed to do a task. Instead, you should concentrate on evaluating the complexity and risk areas. The higher the complexity and risks, the higher the accuracy factor.
There are several ways to interpret this factor. The easiest one is range. You can tell that the task will take between 100 and 200 hours, but there is a catch. Many people think that this range is caused not by the risk factors, but by the different ways the task will be done, and they ask to do it in 100 hours.
The second approach is to give an average or above-average estimate with a note that it could be changed because of the complexity of identified risks. So, instead of giving the 100-200 hour range, you can tell that the task will take 160 hours and could become higher or lower depending on other factors. This way the custom will keep the exact number in mind and you will have a higher chance to do it in time.
So, these are two ways of estimating the effort. Both are good, but only under specific circumstances. Use them wisely, explain to the customer what they mean, and you can do whatever is needed in time!