I don't like linking to Quora but I have to link the legendary "coastline trip" story posted by Michael Wolfe as a response to the question "Why are software development task estimations regularly off by a factor of 2-3?"
https://www.quora.com/Why-are-software-development-task-esti...
Also, (maybe counterintuitively), in software estimation the more fine-grained the estimates, the more likely they are to _underestimate_ project scope. For areas that are better-understood, the estimate will be (properly) limited in scope (reducing the overall buffer) -- which leaves less margin for error in the areas with more unknowns, where the biggest scope bloat is hiding. As a rule, software estimates should use a very broad brush. (This also helps mitigate the tendency of PHBs and product owners to mistake precision for accuracy.)
(Too late for me to correct "blig" -> "blog", whoops.)
I read that and immediately thought well, this explains software schedule slips.
"The first 90% took us 90% of the scheduled time; the last 10% will take the other 90%..." (editor's note: 9% of that last 10%, anyway!)
In real life, specific unknowns in part of the project may turn out to be actually _easier_ than you thought, while in perimeter calculations it's always a lower bound at a higher scale.