I used to be a Carpenter and Joiner. I gained some financial qualifications through distance learning and needed some experience.
The guy who hired me told me later that there was some resistance from the team to my joining. He told them that if I could work out winding stairs, accounts would be no problem!
Regarding the ability to fix with a hammer, I would say that with software humans tended to just work around the poor fit!
Lol I guess you have not seen some of the code I have trying to use reactive programming at all costs.
In all seriousness though, I think software is quite flexible. A lot of what programmers do is take two APIs which don’t quite go together and find a way to bridge the gap.
Even the word “shim” is borrowed from woodworking and used in programming as well.
While writing my comment I thought about whether it was really correct (happens to me often).
I think the analogy for a software hack in the real world is not a hammer blow but rather, pieces of string tying together things that don't want to work with one another.
Strings tend to wear with use, and eventually break, sometimes catastrophically; whereas pieces that were forced to fit, usually stay put forever.
Sometimes yes and sometimes no. Sometimes a hack is also filling in a gap in the back sawdust mixed with wood-glue, and that will generally last longer and be more durable than the rest of the piece.
Obligatory link (often featured on HN): http://johnsalvatier.org/blog/2017/reality-has-a-surprising-...
But in actuality, it's often the case that one can fix physical things with a few well-applied hammer blows, especially in woodworking.
With some non-wood materials it's much harder to make something fit where it doesn't fit.
In software, it's usually impossible.