Many people balk at estimation questions. I find this interesting considering that outside of our projects and in our daily lives we use estimates all the time.
How much will the taxi ride cost? How long will it take to get to the airport?
How far is it to the hotel? (it is equally interesting that doctors and hospitals don’t provide estimates nor do we ask for them)
The biggest reason estimates are worrisome is that people are scarred in their past lives by someone holding them responsible for the estimates. This is so common that even to this day I need to provide many caveats before I can coax a number out of our developers. This wouldn’t be an issue if the following are kept in mind:
An estimate will always be an estimate until it becomes an actual meaning that it is impossible to predict accurately the day a project can be delivered and the accuracy can only be improved as the project gets closer to the release date. This is the cone of uncertainty as in Figure (A)
It is impossible to keep in know everything that might crop up primarily because of the industry we are in and the complexity around the domain. There are just far too many people involved at various sections of the project that things will go wrong starting from communication, wrong interpretation, integration issues, technical complexities, infrastructure etc.
An estimate that says we will be done in 10 months is wrong. We really need to train ourselves to provide confidence levels. We are 90% confident of releasing this in 10 months and 50% confident that this will be done in 6 months is information that is not only useful but clearly indicates