Uncertainty in Software Development

I never cease to be amazed by project managers who give lip service to the idea that there are some unknowns in their project plan and then give precise estimates for their schedule.

It seems as if intellectually we can see that there are unknowns, but when it comes to our projects we think we are special and we can precisely predict how long our project will take.