It's being a long time since I estimated something using a single value. Providing a range is usually a better practice, and forces a different thought process that's extremely valuable.
What I do is to think about three different values: the optimistic case, the most likely case, and a pessimistic case. I'll talk about PERT in the future, but for now, let's keep the idea as simple as possible.
In order to build that feature, it will approximately take 5 days if I'm lucky. Most likely will take me 7 days, but depending on this and that, it could take as long as 12 days.
Thinking about the optimistic and pessimistic scenarios in addition to your most likely case forces you to answer very important questions:
- What happens if I end up not needing that difficult integration after all?
- Am I considering the dependencies to finish this task?
- What are the risks that could get in my way?
- What happens if some of the assumptions that I'm making don't pan out as planned?
- Am I sure that documentation will be clear enough to finish the work?
Considering the impact of different factors on your estimate is extremely valuable, and I've found that it rarely happens when you think about a single value. But even when you think about all of this, it is hard to represent the results within a single number. 3-point estimates will tell the story that you need your audience understanding: big gaps between estimates will immediately point out to risks, dependencies, and unknowns that we should clear up to reduce uncertainty.
From this point, you can use your 3 values in different ways:
- Provide a range using the optimistic and pesimistic values (5 - 12 on the example above).
- Provide a range using the most likely and pesimistic values (7 - 12 on the example above).
- Get a little bit more fancy, and compute the expected duration using the formula explained here. (This would be my recommendation, but it is also more time-consuming, so I'll discuss more about it in a future post.)
At the end, even if you are forced to use a single value as your estimate, the exercise of coming up with 3 different cases will play a huge role in making your estimate as accurate as possible.