So the question was basically about two things, which was effectively to ask:
Why is it so hard to provide accurate estimates for a Software Development Schedule, and
    why isn't this as simple as planning a construction process, such as building a bridge.
Software schedule estimation isn't really very hard at all once you have some experience and can base your best guesses on tasks that appear to be similar to something you have done before. So if (as I'm suggesting) it isn't hard to estimate project schedules, why does it seem so difficult?
