Is that it is invisible.
Imagine that only 3 out of 10 building projects succeed. 3 out of 10 building projects are abandoned. And the 4 that are delivered late are of poor quality, rundown and not what the customers wanted. Within 2 years, another project to replace these buildings will be in place.
Hardly what we see in the building and construction industry.
Unfortunately, that is the norm in the software industry. A lot of software is bad quality, badly maintained. The reason for that I believe is that software is invisible. A customer can only see the effects of software, he can't inspect with his eyes each line of code. What we can see of software is the draping of a cloth over an invisible structure. We can see the shape the structure makes, but we don't know how well the construction is.
Humans being sensory creatures find it hard to understand software. Software is an abstraction. Perhaps with more tools like unit testing, integration testing and continuous builds software construction could be made better.
I'm not sure how this problem can be solved outright. Education could be one thing, but some people don't want the secret out. Software consultancy is like the tailors trade in "The Emperor's Clothes".