The Cone of Uncertainty: Uncertainties Change over Time
The degree of uncertainty in any estimate depends on how much is known about the overall situation. You'll have a much better idea of your arrival time for the 500 mile drive when you're halfway there than you will before you even start driving. You'll have an even better idea when you're three fourths of the way there. You'll know exactly when you'll get there just as you arrive, and no sooner.
There are a number of different sources of uncertainty in software projects, including the following:
Will the customer want feature X or not?
If they decide to include feature X, how fancy will they want it to be?
Will they change their mind about feature X or how fancy they want it?
How will feature ...