"99% of commercial software development ..."
"99% of commercial software development consists of a user interface to put data in or get data out of a DB. If you think that isn’t a commodity you need to put the crack pipe down."
Quite wrong. Your grasp is so shallow that you must be on the board of FTSE500 company.
The majority of significant software development is, and for at least 20 years has been, integration: making all those disparate systems talk intelligently and usefully to each other in the same way that different parts of your business communicate with one another and with external businesses.
Unfortunately, integration has historically been both quite diffiicult (though it's now getting easier, at the expense of some monstrously bloated libraries and insanely overpowered silicon) and also invisible. Whereas a fancy database interface may have the bright colours and graphical bits that Sales & Marketing folks fondly imagine is "value", they cannot see 99% of the underlying nasty, detailed, complicated, fine-tubed plumbing. The idiot who turns the tap arrogantly demands "How hard can it be?" because he knows nothing about how clean, drinkable water gets from a reservoir to his kitchen and he personally couldn't plumb so much as a toilet cistern.
So integration constitutes a Trifecta of Doom: it is critically important; difficult to get right, requiring lots of time and money and skills; and invisible to the generally greedy, lazy, short-sighted halfwits in the executive suite.
Therefore it doesn't get priority. It doesn't get properly resourced. It gets done badly if at all. The software devs get blamed, because they were not given the tools for the job because it, the job, was never understood by the beancounters in the first place.
This among other things brings us to wrong solutions sought by aforementioned greedy twits, and outsourcers are brought in: who send their Sales 'A'Team to schmooze the idiots on the board, knowing full well that in due course, once they've got the work, the actual coders will be a 'D' team. The outsourcers: (a) don't have vital domain knowledge, (b) require extensive micro-management, (c) work to a stifling bureaucracy specifically designed to maximise their revenue at every single turn, for so much as a changed comma in a spec, and are (d) soon using your budget to train their 'D' team staff so that they can charge more for them elsewhere.
In due course, your business ends up as a life support system for the outsourcer. The parasites have so thoroughly colonised and hollowed out the host that to get rid of them would kill you.