Earlier quoted context omitted.
> Even houses always go over time and money and that is fairly straight forward. This is an incredibly important point. I was "raised" in commercial software at a time when there was a lot of condescension internally towards ourselves as an industry because we couldn't do estimation and planning, and building was the favorite comparison. A $100 million building couldn't run late or over budget. That would be unimagin…
From what I've heard, in construction most of the delays happen with the foundations. Everything that's below the ground is hard to predict, because you seldom know exactly what's in the ground. Once your construction has progressed above ground, it's somewhat more predictable. (But delays are still possible.)
In software engineering, this also happens of course, especially if you develop in house. And you also need to factor in the maintenance, as it's usually performed by the same team.