As for why that is, well, you have to work in a non-tech company for a while to really see the problems. Suffice it to say that the gap between programmers and non-programmers in how they think and understand the process of developing software is enormous, and too large to bridge. You can't explain even things that would seem obvious and basic on this forum to non-tech people, because they just immediately reject it.