But many companies, the companies with that 20% greener grass, are willing to give a complete stranger a 20% raise.
"The irony ... the irony ..."
Here's the key, a lot of managers are too afraid, confrontation averse, or short sighted to make a fight for their employee.
There are cases where there isn't even a competition for funds. All you need to do is ask for a raise and it passes through without any problems, managers just don't do it because they are too afraid of even making that very request.
That being said, I've always been able to get _SOME_ money for retention, but I've not always been able to get enough. If they go interview somewhere else and their current salary is $120K, it's entirely conceivable they could be getting an offer of $160 with a bonus structure that's better.
I've even encouraged employees to leave before when it sounded like they were going to get put into a position for growth that we couldn't offer. If they're already feeling stifled or short changed enough to go looking, any move you do to keep them now is just delaying the inevitable. If I let someone leave with a clear conscience, that's someone who could come back to the company even better than they left (it's happened a surprising amount of times in my career). It's also someone who can help me and/or my company in the future, whenever our paths may cross again.
I have followed managers to companies and I've had employees follow me to companies. If you just adhere to the damn golden rule things are a lot easier for everyone involved.
They do not fight for their people, they get work and outcome from them to achieve the company objectives.
Most probably they are right if they consider who will give them their next career opportunity.
I'll venture to say this: Not every project knows how to produce long term value, and not every shop is a good long term steward of value. This is a big factor in retention, in part because it's correlated with meaningful work.
There is excessive profit taking at all levels including the IC level, however market dynamics actually create greater and greater differences in wealth despite the trickle down.
Note that, although managers may wish to throw money around because it's not theirs, shareholders view every penny spent on salaries as an expense that eats into their profits. They have an incentive to insist on lower employee salaries whenever possible, and they're typically the ones who make the rules in most firms.
Also, if situations like that could exist, you wouldn't only see them in the US.
Who do you think knew more about compensation at Apple, Steve Jobs, or the random employee? Or perhaps your argument is Steve Jobs was just lying?
But to claim that, there would be a vast conspiracy tobtake all of that money on a wide enough scale to make everyone in the USA overpaid is where the thing breaks down.
I can only assume that right now the best developers are vastly underpaid relative to their worth. Why? Because it turns out every time they get annoyed with their current company they can send out some feelers and get a 20% raise. Most people can't do that. Most teachers can't just quit and get a 20% raise yearly. Do this a few times and ultimately you realize that your intrinsic value didn't really increase 1.2^3 (72%) over the last 3 jobs, it's just that companies were always willing to pay more if they needed to, but (if you were being honest about current salary) only in increments of 20%.
If they were willing to pay more, you were worth it.
There are very very few companies that exist right now that give you crappy work but top notch comp for that work. For those companies, there is not a "huge retention problem", it's just a normal-sized retention problem where in addition to paying their developers based on value they also try to ensure they get to mix things up a bit and enjoy a conference or two.
Most companies don't want to pay for retention. It's pretty sad that most companies can't make staying at their current company more attractive than the risk of starting a new job with a team/company that's unknown.