I worked at a bigco that followed this approach. I think the alleged fungibility of programmers is surface-level.
Sure - ~any decent programmer can jump into ~any codebase and do your JIRA tickets. But there's a more holistic ownership you miss out on that's going to be the difference between a system aging gracefully and a system becoming a giant hunk of butchered junk that's been one-small-jira-ticket-ed to death over a decade and now needs a very costly and distracting replacement/rewrite.
I worked at a different company that did the opposite of this. Programmers were expected to stay either 1 year or 10 years, and you'd be compensated according to which bucket you were falling into. They had excellent retention rates, and the dev team was small, <30 engineers. We never rewrote systems. They had owners who had either written them, or been handed off apprenticeship-style over the course of a year or two from the former master to the new master.
Place 1 was a fucking mess of tech debt and had constant incidents that made high value customers mad, execs mad, and oncall engineers mad. One of my coworkers literally went into his first oncall shift, got paged at night three times in two days, and resigned the next morning when he found out that yeah this is just kind of normal and good luck convincing leadership to let us fix it.
Place 2 literally never had tech incidents. The worst oopsies were generally related to (it was a trading shop) other people in the market fucking up and resulting in trade breaks that we had to clean up after hours, or exchanges having problems and sending us garbage data that we had to resolve by calling someone from the exchange to confirm order statuses and so on.
I only left place 2 because I was moving across the country and they didn't do remote (and still don't, even post covid). I was laid off from place 1.
> One of my coworkers literally went into his first oncall shift, [...], and resigned the next morning
I've seen people nope right out of there, and (anecdotally) it's always been an experienced person seeing something that was worse than they should've expected, and having an idea how unusually bad it is.
When you know for an absolute fact that you hold ownership and are held accountable for a codebase, assuming you're competent, things like tech debt and bugs suddenly become much more important and consequential to you.
Ah no nothing like that. And 10 is just a pithy way to say that they want people to stay a long time if they're good. And they did that by, each year, if they wanted you out, you got a very small bonus. If they wanted you to stay, you got a very large bonus. That's all I meant - they retain you by giving you many dollars via payroll.
It's how it works in the trading world. The base is decently competitive (for devs anyway) but the bonus is based on trading results and functions similarly (from an incentives/alignment and retention perspective) for how stock works for other companies.
I think the point is that salary + bonus = your real salary, but they give much if it in the form of a bonus so they can more easily choose to give your overall "salary" a cut.
Sure - ~any decent programmer can jump into ~any codebase and do your JIRA tickets. But there's a more holistic ownership you miss out on that's going to be the difference between a system aging gracefully and a system becoming a giant hunk of butchered junk that's been one-small-jira-ticket-ed to death over a decade and now needs a very costly and distracting replacement/rewrite.
I worked at a different company that did the opposite of this. Programmers were expected to stay either 1 year or 10 years, and you'd be compensated according to which bucket you were falling into. They had excellent retention rates, and the dev team was small, <30 engineers. We never rewrote systems. They had owners who had either written them, or been handed off apprenticeship-style over the course of a year or two from the former master to the new master.
Place 1 was a fucking mess of tech debt and had constant incidents that made high value customers mad, execs mad, and oncall engineers mad. One of my coworkers literally went into his first oncall shift, got paged at night three times in two days, and resigned the next morning when he found out that yeah this is just kind of normal and good luck convincing leadership to let us fix it.
Place 2 literally never had tech incidents. The worst oopsies were generally related to (it was a trading shop) other people in the market fucking up and resulting in trade breaks that we had to clean up after hours, or exchanges having problems and sending us garbage data that we had to resolve by calling someone from the exchange to confirm order statuses and so on.
I only left place 2 because I was moving across the country and they didn't do remote (and still don't, even post covid). I was laid off from place 1.