I have, recreationally, written code to simulate a rocket ship. It was a pretty significantly different experience than my day job. My usual tools didn’t help much, but you don’t actually need a lot of data modeling or fancy UI to draw a trajectory. Debugging was awful, though.
Maybe it’s a good time to re-read Brett Victor’s “Inventing on Principle” and ask ourselves what we can do to get closer to that vision
The problem is that software does not understand tacit knowledge, only explicit knowledge. Many people are good at things on an intuitive level, but aren't able to explain clearly and unambiguously and comprehensively why they do those things. Structuring thoughts and processes like this is an important (and quite rare) skill in itself.
Secondly, "tech" is not a completely homogenous or bland medium, certain things are simply much easier to do than others. It's much easier for humans to drive cars, even with an error rate, than for computers. While it's much easier for computers to do arithmetic. The implication of this is that it's often much better to change your process - or possibly replace your entire business - than to take the current one and freeze it into a computer.
That's the problem with a lot of bureaucratic efforts. Often the "process" doesn't actually work as written down, and relies on a lot of slack and human judgement by individual low-status people who aren't included in the software development process. So freezing the process in software, even if done exactly to spec, doesn't work.
See also "Seeing like a State"; the process of making people and processes 'legible' to a bureaucratic system changes them, as does computerising them.
Third related problem is demarcation: even if individuals want to automate their workflow, they're still part of an organisation which would prefer they stay in their lane. So many "enterprise" disasters are the result of the people making the purchasing decision refusing to work with the actual users.
There are already a few decent task-specific programming environments that let end-users create valuable "software" — the most obvious example being spreadsheets for anything finance-related — however we're still a long ways away from programmers being replaced entirely.
Software engineers are pretty much the modern day scribes. We're literate in programming languages, while the rest of the population is illiterate. We're the only proxy for communicating with computers. So, how do we get the remaining 99% of the population to become literate?
In other words, there are elevator buttons out there but people don't know what floor they need to go to.
A different way of interpreting the article is not why we (computer programmers) haven’t made things better for other people and their industries but why we haven’t found better abstractions for computing itself so that they don’t need us to make the software they need.
We no longer have physical human elevator operators pushing buttons for us because we made an friendly abstraction over that anybody could use. So why does the job of a software developer even exist? Why can’t people productively and easily make their own software? It would likely be better: extremely customized to their own needs, highly tuned based on their own in-depth domain knowledge, and continuously updated since they don’t have to ask and wait for someone else to do it for them. Why do we still have human operators pushing buttons for people?