Excellent article, and better than I could do at generalizing the larger problem of outsourcing. From the IT perspective, companies pay far more to outsource than they would by keeping permanent employees on staff and decently compensated (as in, enough for a modest home, a car every decade, a vacation every year, and all necessary medical/dental/vision care, plus some retirement compensation of some form). Outsourcing communicates two things very loudly:

1) To the outsourcer, that you're a cheap client who will fire you as soon as someone cheaper comes along or a KPI is missed

2) To those in the know (colleagues, workers, stakeholders), that you don't intend to be here long enough to deal with the consequences of your actions

Outsourcers will never care about your infrastructure or its actual needs, and won't care about your budget either. An employee is more likely to conserve budget with smarter product choices and more in-house builds, while outsourced workers will just nod and accept whatever you point to as gospel, since they'll never have to fix it anyway. In essence, you're paying more money to have someone else handle it then you would have paid someone else to talk you professionally down or implement it properly.

Similar arguments:

* Public Cloud is a form of outsourcing that can often increase costs, especially for static or non-scaling infrastructure/resources. Yet because it's more convenient and skirts CAPEX budgets, more companies will just outsource to AWS/Azure/GCP instead of buying two to three servers, a storage array, and some network infrastructure to host their internal directories/applications/file shares.

* XaaS is also outsourcing, often doubly so. You outsource the application to an XaaS provider, and then outsource its management or setup to an outsourcing firm/MSP/consultant. Then you leave, and the company is stuck with a product they have to pay for because "it's necessary", don't know how to support it, don't understand what it's for, and can't begin to move off of or away from it for at least a year after they hire new permanent in-house technical staff.

* Outsourcing leads to a dependency on consultants, because you don't understand your own estate anymore (and fired the folks who did, so you could send the labor elsewhere) and need someone else to tell you what's needed, with the pretty slide decks to justify it to stakeholders. Now you're paying for the outsourced infra (often public cloud or XaaS), the MSP to manage out, the consultants to update/implement it, and now additional consultants to integrate it with other systems who also require consultants because - again - you outsourced your technical staff. Before long you're just blindly implementing whatever's in the upper-right Gartner quadrant without understanding function or utility, let alone ROI.

The end result is a bunch of grossly overpaid leaders, a glut of burnt-out MSP workers who only get paid to put out fires but never prevent them (and even if they were paid for prevention, they'll only be able to do it for whoever pays them the most), and a lagging domestic workforce you have to invest in upskilling when you do want to bring technical staff back in house. Congratulations, instead of leaving your engineers and architects on payroll, you've single-handedly saved the company enough money during your contract to get yourself all your KPI-tied bonuses, and left the organization on fire while you parachute off to repeat it elsewhere.

The OP is right - people aren't necessarily bad at their jobs, we've just incentivized the worst behavior as a society to the point most jobs are just bad. Now we're even doing it to technology folks (IT/IS/Devs) with LLMs, racing ahead with ever more outsourcing and banking on the fact someone else will clean up our mess.