There was an interesting paradox last time I was a people manager.
Sometimes people would leave and get a bigger raise than we'd budgeted for them for that year. But at the same time, we never took long to hire a replacement at the same budget we'd been paying them. This required us to be diligent at doing market adjustments when necessary, but also led me to some other thoughts on compensation: if we think employee A is worth $X, and they get a job offer for $X*1.2, neither company has to be wrong. Maybe there's a bigger need at the moment in the other company. Maybe they're going to be working on something more valuable to that company than they were working on here. Maybe to us they've been a solid but non-exceptional performer, but the other company sees potential for them to do more in the interview. Maybe the other company just has more to spend. Maybe they're the third best-performer on the team, and we chose to allocate more to the top two people, so can't do as much to keep them as they'd like.
You're leaving out some serious costs incurred by your company and team. The loss of institutional knowledge, the loss of expertise, business process knowledge, personal relationships that could make hard changes much easier. Sure, you hired someone for $X instead of $X*1.2 but in terms of work done you probably missed out on a lot and came out way behind.
I think you're both overestimating those costs and also underestimating the difficulty of just being able to suddenly pay 1.2X for people.
Re: institutional knowledge and expertise, etc - we tried to avoid too much concentration. If all the institutional knowledge for system X is tied up in person Z, what if they want to take on to a new roll, or I want to ask them to work on a different system or a new project? I like people who focus on what they can do next, not solely what they've already done. Otherwise it's a bad place for the company to be even if someone doesn't leave. Change is a constant, flexibility is good.
Re: personal relationships - morale is always something to keep an eye on, but someone having an exciting new opportunity never seemed to hurt the rest of the team's morale that much.
I think you're also making an unspoken assumption that the new hire wouldn't be superior to the person who left in some areas! The most common case of this was "generalist who built a ton of stuff in an earlier phase of the company leaves, replacement is more experienced in the specialized area that that generalist was currently working on since the company was larger now and they couldn't contribute to everything as easily," but that's hardly the only way.
And lastly, as I alluded to about budgeting more to keep the top two performers than the third - I think you're overestimating the amount of effort and/or success put into by the average developer at becoming the go-to expert on specific techs or business processes. If I tell my manager "I know the second most about React, the third most about Node, and the second most about the plugin system business logic" I'm not going to expect them to find me irreplaceable.
You're trying very hard to dismiss experience specific to a company and industry, but I'm not buying it. Someone who has intimate experience with an established code-base and the company will be vastly more proficient than a new employee of similar intellectual capability. It's why companies often try to hire people within similar industries and tech stacks to help reduce this gap.
It's like trying to argue that a mechanic who has only worked on Ford vehicles for 20 years should be able to quickly have the same proficiency as a mechanic who has 20 years of experience on only Porches. Nonsense.
Remember, a company can typically expect to hold onto a developer for maybe 3-5 years, so even half a year of training is a significant portion of their tenure.
But the status quo is already change and loss of expertise and teams and products continue along fine.
Also you maybe discounting the change in code itself even when I have years at a company I’m still continually learning things because I’m working on new things or new things are being built. If I left a new hire would be able to ramp up on these fresh code based without much hassle. So expertise itself has a half-life in a fast moving field like a lot of software shops.
>status quo is already change and loss of expertise and teams and products continue along fine.
Change in a way where past experience still translates to value. And yes, with enough money and brute force you can overcome the loss of tribal knowledge, but that's the whole point of this conversation; it's an expensive thing that's often not worth it and definitely not something easily dismissed.
Strongly agree, I've experienced this myself from both sides of the table.
The concept of "the market" for engineering talent is far more nuanced and multifaceted than the nice x/y plots used to correlate compensation and experience (not meant as a criticism to the author at all).
I think what this misses, which I saw in another comment, is the take here is an individual one.
If someone leaves and gets a 20% raise, while it may be an isolated incident, I believe it's more often than not an example where the market rate has shifted up and a company is slow to catch on.
While you may find someone new who's willing to accept $x instead of $1.2x, there is likely a large difference between the person being hired and the person leaving which represents the 20% discrepancy. And there's a cost on both sides that's not captured in the 20% differential.
As others have said there's the loss of institutional knowledge and know how. But the new person may also be more junior or is switching domains and so has less experience and thus willing to accept a lower salary.
It also takes a decent amount of time to hire someone new. Usually at least a few weeks. And I'm sure it can take longer. Sometimes 1 person leaving also means you really have to hire 2 people to be as effective as you were before. And of course, the new hire may end up asking for $1.2x anyway if they negotiate.
When all this is said and done, my personal belief is a 20% raise is far cheaper for retention just by the numbers.
There may be several non math based reasons for not offering a 20% raise to retain someone, but purely by the math I think its always going to be cheaper to give a 20% raise.
TLDR: I think this possibility is a false equivalency that just because you can hire a new person at $x means you're in the same spot as before.
This was a growing company making an active effort to pay market rate - I realize this doesn't apply to everywhere.
At the point where the market rate has shifted that much and my employer hasn't caught on, I'm out the door myself. ;)
"Maybe the replacements suck in comparison" is certainly something we would've noticed - happily, it wasn't the case.
But we were hiring basically constantly, since there was no team that had enough people for the work the company wanted to do, even before attrition. So we had a good feel for what we could get for the money. If someone on the team can do better elsewhere, though, more power to them - I would certainly take that opportunity too.
Thanks for the response and glad to hear the new hires have been good!
Admittedly I'm a little burned on this issue. My previous (and first job) was severely underpaying me and all my coworkers. I stayed there for 3 years, wanted to leave after 1.5/2, put a pause on it when covid hit, and finally completed the move earlier this year just around my 3 year mark.
Leaving got me an 80% raise in total compensation and 4 other people on my team/org all left with at least a 50% bump.
All within a few weeks of each other too o.O!
It's such an interesting dynamic and market today and so fascinating to hear about people's experiences as they jump around. Thanks for sharing your perspective!
Sometimes people would leave and get a bigger raise than we'd budgeted for them for that year. But at the same time, we never took long to hire a replacement at the same budget we'd been paying them. This required us to be diligent at doing market adjustments when necessary, but also led me to some other thoughts on compensation: if we think employee A is worth $X, and they get a job offer for $X*1.2, neither company has to be wrong. Maybe there's a bigger need at the moment in the other company. Maybe they're going to be working on something more valuable to that company than they were working on here. Maybe to us they've been a solid but non-exceptional performer, but the other company sees potential for them to do more in the interview. Maybe the other company just has more to spend. Maybe they're the third best-performer on the team, and we chose to allocate more to the top two people, so can't do as much to keep them as they'd like.