As someone who is renovating their house: home improvements are not 100% predictable. Although I admit they are easier to predict than software, and easier to explain in layman's terms why something went over the expected time or price.
The big difference is building work can be repeatable, the people that built the garages on the housing development behind me did the same job for each of the 39 houses.
Development is never really like that, why would you write another JSON parser if you already did it yesterday.