That said, companies are often wrong to hire externally as they misattribute their problems to their employees instead of to their own leadership. It is easier for them to blame others instead of themselves.
Parent comment is really saying to find a way to put a value on institutional knowledge.
If a job/task only requires entry level skills, why are senior employees doing them?
I don't think I can count how many times I've seen a really poorly designed solution causing real pain, and everyone even knows it's bad, but it will never change until X leaves the org, which they have no intent of doing until they're rolling out on a stretcher. Usually X has been there a long time and knows everyone - often they've created enough messes that only they understand to avoid getting laid off. Heck, if the messes are big enough, they can even look like an above average performer to people who aren't overly familiar - generally never top of the stack though, as that might get them asked to take on more work.
I can’t agree with you more. Having a combination of individuals with historical knowledge and new individuals with fresh perspectives can be so refreshing. We recently hired an external architect on the team. She’s great technically. However, I would argue her greatest contribution is fresh perspectives. She suggests ideas others (include me) hadn’t considered due to past negative experiences with team X or Y. By not being as aware of past histories or projects gone bad, she can encourage us to rethink things.
The luddite attitude is orthogonal. Does it happen? Sure. But I also have the expectation that senior staff should be identifying the New, Better Way all the time. And are well-positioned to measure “better”. It is part of providing engineering leadership. An old bird that isn’t keeping up needs a job performance message.
Person B did an unwise thing and spent the weekend working to fix the consequence.
If the problem was subtle and management didn't immediate corelate the action of Person B with the problem, they are likely to profusely praise Person B's working their asses off to save the company during the weekend.
On the flipside, if the company only contains A kind of people or if A people are too influential, it's likely that you'll stick in a local optimum where people are not incentivized to try out new things that may fail but may also succeed.
But in programming, you deal with systems, you know the undocumented gotchas of the system, and understand the flow of it better than someone who's completely new to it. You know when Chesterton's fence applies and when it doesn't. I often tell startups to promote the juniors instead of replacing them with seniors, because the junior who built the system would be able to modify it better.
Even in sales and product, there's some value to understanding what the customer wants and aligning that to the features or a specific pitch and such.
A reasonably experienced surgeon in one hospital in NYC is likely to be almost exactly as great on day one if he moves to the hospital across town.
All too real. Unfortunately, i do think that relying on such expertise is fraught with danger - because both your bus-factor is 1, and it makes it hard to bring up new people.
In practise, this is hard to avoid, but i think a real senior developer should know to document the undocumented, and to communicate (using various mediums) to ensure that nobody needs tribal knowledge to work on a system.
You either don’t know what a doctor does or I don’t understand the point you were trying to drive. Doctors spend decades refining their ability to recognize all kinds of issues that have vastly different conditional probabilities of occurring. Internalizing that is the entire value of a doctor over webmd.
Being a doctor isn’t as simple as absorbing a mechanic’s guide to the human body and just doing the same procedures over and over.
A hiring a senior engineer with 15 years experience, but not at your company, might not compare as favorably to an intermediate engineer with 8 years total experience, but 3 years at your company.
Promoting someone with tenure just because of their domain knowledge is an extremely good way to hit the Peter Principle. You can get people who know the system very well but don't know how to take a step back and look around and evaluate the broader context vs just plugging along the same way as yesterday. Especially if you've never hired someone with those skills to teach them. You also run into bus-factor issues and robbing-Peter-to-pay-Paul limitations around "this person's domain knowledge would be useful for this new project, but we've never ramped someone up to take over what they're doing now."
Then there are the people who manage to get tenure without actually absorbing too much of that domain knowledge... so you need to be able to evaluate that, plus skills/aptitude/potential, not just years-in-seat, when deciding who to promote, when to hire, etc.
People quoting the "Peter Principle" usually ignore that it is normal to promote beyond current skill level, since it is common to learn a position when in that position.
The Peter Principle is that eventually an employee hits a roadblock where they are failing to learn the new position. That failure is usually attributed to the person, but I would guess the root cause is usually a lack of training ability within the organisation (not commonly recognised as the problem).
I am not a manager, but I see these stereotypical misconceptions all the time... I'm not accusing you of ignorance at all: I'm just pointing out you could be clearer to help us all!
Not always, but still I would assume that people with complex tasks generally become more experienced and accumulate specific knowledge over time that makes them better at what they do. Therefore, it should be the default for employees to get a raise every now and then, unless there are clear signs that someone is not performing and the employer is not interested in keeping the person.
That being said, when somebody finds that fair system sustainably in place at a company, let me know. Fair and accurate measurement of an employees performance, free from bias and favoritism ... I'm just not sure that's how people work.
In my own very limited experience of mid-size companies, it seems like senior leadership is first on the chopping block when dissatisfaction becomes real. However, the expected value of those positions is much larger due to compensation (i.e. $2e6 x 1 year = $2e5 x 10 years, better assuming execs can find jobs within a few years)
After talking to a lot of managers it really seems that a lot of them are deeply skeptical of the people they themselves have hired.
It seems to be the case that effective and competent leadership is the exception. Even in the military, where enormous amounts of money are spent on attracting, training and retaining leadership; they're simply aren't very many that are very effective. Mediocre leaders get promoted and that's just what everyone else gets to deal with. Other examples include professional sports, academia and politics. The tech industry is hardly an exception here.
The other issue I ran into was being so good at the position I was in that I was "unpromotable". Got told that a lot as an IC. Was then told even though I was fully qualified for the promotion, I would not get it nor the accompanying salary.
It's one of those things that goes by "Yeah, yeah, we know the studies, doesn't work that way in real life, it's cheaper to just fuck over your employees, pay new employees more, most of the old dumb fucks are to stupid/lazy to ask for a raise/go to an interview", just like work from home used to be. Until reality kicks in, some tectonic shifts happen and they start screaming they can't find good employees.
Comparing peoples performance objectively in a large organisation is essentially impossible. Only the people working closely with someone really have any idea, and even then they only see part of the picture.
And are accused of bias when trying to get raises for their team.
Well janitor retention would surely go through the roof, but I think you might lose a lot of upper management and software engineers.
Is that really your question?
Do you really think anyone is proposing the pay growth of a janitor should be so high they're getting CEO rates?
Both the janitor and the SWE get more valuable as they get more familiar with the company, but it's still a different role.
OTOH, a SWE doesn't need to be promoted to Principal Engineer to be more efficient at IC work because he knows your proprietary systems inside out.
Generally software engineers get crappy 2% raises year-over-year and may or may not get significant RSUs/bonuses, while the market rate is flying up 5+% per year. I think most people on this site who've been working for 10+ years can attest that they snagged a 50% or more pay increase by changing jobs at some point.
I'd still be working at my first crappy post-college job if they'd been nicer to me and I were within 75% of what I can make at a nearby FAANG. But I snagged a 100% pay bump (DOUBLED pay) by changing jobs. And then I doubled my pay again a few years later! And now I've been in my current job 3 years, and I'm pretty sure I could get a 20% increase by changing jobs again even with the recession.
Saying "end perverse incentives" makes this seem like some moral oversight driven call-to-action but I think it's more complicated than that.
Eh, most of the people in the established pay range tend to be at the low or mid range, so the company likely has the ability to pay more. Once they're at the top of rhe range, that shouldn't be much of a problem either... but that assumes the range was created using good industry data. If so, then there shouldn't be a better deal somewhere else (or at least very hard to find).
When you factor in how much it costs to have a roll unfilled, hired a new person, then train them, then productively paying to retain your talent becomes a no-brainer
If this is your path I'd strongly recommend tenure in a core revenue generating project. Avoid projects in cost centers, especially those that serve small / non-critical business needs or have potential off-the-shelf replacements that could be purchased and integrated into the business. Don't assume that leadership will be rational about replacing an internal system with an off the shelf one, if someone comes along with a mandate for change all bets are off.
Don't assume you can rely on political capital when your area of work is being turned down, odds are there are a dozen other people that are trying the same thing. Leadership would likely want to retain lower cost junior employees with the rationale that they have potential in addition to being cheaper.
But it's also a Faustian bargain that many engineers knowingly enter into. They are trading their professional coding passion in for more money and status. For some, this isn't much of a loss. For others, it is. It really depends.
These things do not happen out of nowhere. Someone is greedy and has market forcing powers.
Nah, that has been proven to not be true (at least in most cases).
What usually happens is a combination of various factors, money being one of them. And when money is part of it it usually psychologically functions as a proxy for whether your company/boss cares for you.
Most people want confirmation of their own beliefs about themselves -- they want the company/boss/coworkers to be showing respect and show that they value your work. People want to see that their work is accomplishing something and a lot of people can go to great lengths to lie to themselves that this is the case. And a lot of people also want progress, they want to see themselves doing new things, getting more responsibility, advancing their careers.
I hired and said goodbye to A LOT of software developers. And I do understand that it is difficult to get an honest, unbiased response when you ask them for the reasons for their decisions to leave.
But at the same time you get to experience trying to get people to stay and seeing what works and what does not. Giving raises works relatively rarely -- it only seems to delay. They are already discontent with their job and the higher salary only functions as a sort of gold handcuffs. After quarter century of doing this I literally am still to see a situation when a developer is offered a higher salary and suddenly becomes enthusiastic about their job to have a long fruitful career.
So what does work? Trying to find what causes them to be discontent in the first place and trying to address it. Do they feel they worked for too long in one project? Are they bored intellectually? Are they not getting along with their current boss? Changing the project without any raise is in my experience one of highest success rate things you can do in this situation. That success rate may not be very high (people tend to leave anyway) but at least I have a lot of good stories of people who changed teams and things clicked for them and they liked their new team. The only things that worked better in the past are changing the project WITH upgrade to the salary to reflect the market, and, for the ultimate highest employee-keeping potential - promotion to manager.
Now... this all assumes software developers and we know software developers are not exactly starving. If you are earning very little compared to your needs or when those needs grow suddenly people tend to really start paying way more attention to just monetary compensation.
Sure, cheap developers implementing the same endpoint over and over for 20 years for a paycheck are like that, but a good chunk of them actually cares about solving a problem and get recognition in the form of life changing money.
Sure, I am paid many times better and the problems I am dealing with are way more complex and varied and I know a lot of people who are asking me for help, the calls are over Slack or Zoom and the timelines and involvement in the issue is much higher. Otherwise, this is the same job.
But to say that the people who are less capable are somehow composed differently psychologically, more resistant to doing repeatable work... it is the same as thinking that people in poor places on Earth are somehow very much different from us, less intelligent and outspoken. This is simply not true -- just go and visit places (and not just tourist attractions). Go to youtube and see people visiting places. Go to library and read a book about people visiting places.
Everybody says that the first thing they experienced is this feeling of everywhere in the world they thought being so much different, actually being very much the same as home. Buildings are different, views are different, weather is different, wealth is different. But the people and their daily problems are strikingly the same.
People who are paying low wage jobs have exactly the same kinds of problems, they just also have other problems like paying their rent that is keeping them doing the job they don't want to be doing because they just don't have any other option.
So that regard they would prefer more money and couldn't care less care about arbitrary internal recognition, it's a job nothing more, unless you're actually working in a genuinely meaningful field like advancing medical science for example.
Every time I've ever switched jobs (particularly anything revolving around e-commerce) or other meaningless drivel it's been about the money pure and simple.
In the backend of the org, this is harder to do, because the impact is hard to measure and comes to fruition later in the game.
One solution is to have small teams of engineers that own their companies - ie, millions of tiny startups. That way, brilliant contributions lead to large profits for the contributor.
But how engineers can be fairly compensated in large orgs, I'm not sure. This is a fundamentally hard problem. Removing the salary ranges might help.
Sounds a bit like what Google does internally for promotions. Except their execution is failing so badly it is starting to affect the company. And also that I have no faith in this concept any more.
But at the same time you could have the same with bonuses based on how much money your team made. The more granular, the better (albeit there are limits).
Nope!
Two salespeople closing the same total value over a year can have vastly different impacts on the business.
Say Alice cares about how well the customers she brought in are doing. She follows up on their experience every six months. She talks to the people in the organisation who fulfills the customer desires. She makes sure there's a good customer--product fit, and her customers are just at that edge where they challenge the organisation to do better without demanding of them the impossible.
On the other hand, Bob doesn't care about how customers do. He just wants to close deals. He finds bad customer--product fits but convinces them anyway by promising rainbows and daisies. The customer is unhappy from day 1, because they never get what they were lead to expect. The organisation is stressed out trying to fulfill unreasonable demands.
Alice is a net positive contributor, Bob is at best neutral -- both close the same value, remember!
That sales performance measures are easy and instantaneous is one of the most damaging myths governing my current workplace. It's really bad.
So if Alice finds good customers and retains them, she does better than Bob because that customer is retained and she’s finding new accounts while Bob is trying to find customers to replace the sales he lost this year.
It’s not trivial to develop sales incentive programs, I agree, but it’s way easier than doing it for home office people whose job only has a loose connection to revenue and profit and any measure is inherently subjective.
I still don't agree it's easier, though. If a customer stays, is it because they've received great support or because the salesperson found a good fit?
What I'm trying to say is "if sales get compensated when a customer sticks around, then so should everyone else supporting that customer".
Basically the only good incentive programme is profit sharing (or ownership) applied across the organisation.
My Position has always been "More Money, with less responsibility, is the best promotion one could ever get"
1. Cul-du-sac promotions where once you're there you don't have a progression beyond 2. Promotions where you end up hating the work
> Reward seniority and loyalty
Aware this isn't a whitepaper that deeply explores what's better and worse for a company's workforce retention, but "Reward seniority and loyalty" is dangerously simplistic.
From my limited experience with payroll systems, and having groups of employees doing the same role, all on different rates based on how long they've worked for us, is a maintenance nightmare due to the inability to automate things. Salary bands and levels etc. alleviate this, but there are necessarily fairly tight limits where a 10-year veteran's expectations are just unrealistic. There's a point where "everyone doing this role" should be paid more, rather than this individual should get a higher percentage than their peers if their total remuneration would breach some ad-hoc level of acceptability.
I think a simple description of a wickedly-complex strategy is "know your people". This requires managers that have the time and space to get to know their reports, all the way up the chain.
Just two days ago I was discussing an ex-colleague, who had a bad reputation with our previous management (I was actually explicitly told by management not to bring him into my project). He eventually moved to a new company, and is an absolute star worker there. If he was managed better at the previous place he could have been a star there as well.
Immediate thought-analogy: If Managers treated their reports as Customers; if Managers acted as Sales Reps for the company in their dealings with reports, then retention would be less of a problem (also need to know which "Customers" are worth the effort).
But it all depends on what you're optimising for, and every workplace is different. Know which roles are "soldier out, soldier in", and which require 6 months of knowledge absorption to become remotely productive.
A single rule is as efficient as it gets, but it'll rub a majority of the people the wrong way. A rule for every individual will keep everyone somewhat more happy, but it'll be murder on administrative maintenance. Find your balance point on that scale and re-evaluate based on changing macro-economic situations.
I don't agree that this is a trap. sure, leveling systems aren't perfect. but they're based on a key insight: there is usually a limit to the impact an engineer can have for a given scope. if I own a single service/component in a larger ecosystem, there comes a point where it doesn't make sense to keep paying me more money to make it even better if my clients/dependencies aren't keeping up. the only way I can continue increasing my contribution to organizational goals is to broaden my scope and start influencing the design of other services/components I interact with. it's not by coincidence that is a major part of how leveling guidelines are written at most tech companies.
When you become low level manager this resets btw, Senior Managers and Directors will want to know where you are, nobody asks why the Director wasn't feeling it for 2 days though.
Other part of it is control. Higher rank means you get to decide which technology and how the problem gets solved and get to play empire building games. Which is fulfilling to some people. Some people want to feel like they are making the decisions, other people like to feel like they have influence on others for self worth. Other people enjoy high level strategic work over doing actual implementation of the work. You pretty much have to get promoted to do strategic style work in tech. My analogy is you enjoy playing a starcraft style RTS where you get joy out of sending the exact right amount of marines to beat that enemy in the most efficient manner, but hate having to do an FPS where you play that marine and have to fight that enemy yourself.
End the perverse incentives. Pay your people well if they're doing a good job, regardless of how long they've been doing the same job or what their title is. Reward seniority and loyalty. Suddenly, you'll find that employee retention goes through the roof, and you don't have to worry about hiring new people all the time.