Building software vs. building a bridge
blog.untrod.com
blog.untrod.com
Bridges are built with detailed but slightly vague plans: there are always many unknowns that can only be fully discovered during the building process mostly to do with the environment in which the bridge is built and the exact behaviour of the often custom-designed and custom-built components being used.
The engineers are required to re-design parts and to rework components on-the-hoof. Sometimes new prototypes are built and tested to destruction. Some components go through stages of iteration.
It is never certain that a major construction project will come in on-budget and on-time.