(also wondering about the armed services and paying for medical school)
As to why not just pay more, probably the reason you were trying to train someone to begin with is because you can't afford to pay the higher wages to just poach the most experienced people? Otherwise why not just pay the higher wages to start with and skip the risky and slow training? Also, the software world has the unique problem that everyone is competing against VC backed startups that are willing to spend more up front to minimize time to market, so these firms generally don't train but can afford to poach anyone who is trained at a perhaps unsustainably high salary.
It’s not like walking around with sacks of money and hiring people interested in that money is low-risk. I’ve found training to be lower risk/uncertainty than hiring in terms of fewer outright failures and negative surprises.
Unfortunately, this is a coordination problem, and those are what humanity sucks at.
> This mentality has never made sense to me. Why would a business invest so much money into training someone, then fail to spend the money needed to retain the (more valuable) trained employee??
It didn't and doesn't to me either. It's very similar to the disturbingly common case of a company cheaping out on office chairs, computer hardware, etc. when the total cost of creating a comfortable working environment for an employee is less than the company pays them for a month of work!
Or, related, and perhaps even more common in tech: skimping on infra (be it physical or virtual), despite again wasting more money in lost productivity than they save. Like e.g. at one place, I used to regularly complain about the amount of build bots we had for the team, and the resources allocated to them. The response was always that it's as much as we can get from the company cloud, to which I'd reply, why not buy more compute? Never got a straight answer to that. Sure, more and beefier machines cost some money, but when the CI is running at capacity at all times, and you have several well-paid devs sitting there and getting distracted while waiting for their jobs to finish... Penny-wise, pound-foolish was the saying?
In fact, I'd happily spend a fraction of my salary to buy a beefy PC to use as a compilation server. And another one to lend to the team's CI infra. But I can't do that, because procedures and company IP protection and whatnot. In the end, I was left with the feeling that the company just wants to make it hard for me to do the very job they're paying me for.
You'd think that management and finance education would let the company do the obvious math, but apparently, it doesn't. But then, the whole problem seems eerily similar to what's apparently a Business Wisdom today (and to me is total insanity): always being focused on acquiring new customers, and not paying attention to retaining existing ones. Maybe the reasons are similar, whatever they are?
This mentality has never made sense to me. Why would a business invest so much money into training someone, then fail to spend the money needed to retain the (more valuable) trained employee?? "They'll leave after we train them" is a ridiculously easily preventable problem.