I can tell you how to not retain employees, and do the opposite of that.
1.) Make goals unclear or constantly changing. Bonus points if you tie their bonus to hitting some kind of OKR even though that goal may be put on the back burner halfway into the quarter. Even more so if this includes their holiday bonus, and you have a minimum threshold of “accomplish 80% of your quarterly OKR and get 80% of your bonus. Get 79% or less accomplished and take home 0%”
2.) Make sure all managers are spineless and won’t fight for their employees. This includes managers from other teams piling work onto people who don’t report to them, but add “important to the company” work that has to be done and your own manager always going along with it.
3.) Make sure there’s a lot of good old boys club going on, especially if the “principle” engineer and the CTO go out to clubs every other night trying to wing man for each other. Also make sure there’s no accountability for these favorite engineers (or employees in general)
4.) Have a career framework that lets your employees know what they can do in order to get promoted or grow into another role (manager? senior level?). After a couple years of not promoting (most) people, then get acquired or change the entire structure so all of your employees are unsure if their work is actually going to help them get a promotion, or if that’s even an option anymore.
Finally, make sure feedback is treated like the plague. If somebody notices that the checkout page crashes every time someone uses PayPal, just ignore it. Somebody who isn’t the web dev has PR that fixes it? Let it live in limbo forever. Features require login but don’t tell customers until they get an auth error, and then have to refill out the form all over again? Not a problem. Why do you keep bringing up issues with the UX instead of rewriting our site in Angul...Reac....Vue.
>“important to the company” work that has to be done and your own manager always going along with it.
I've worked in some highly political large companies and one of the best managers I had would basically say "I know this is basically BS but there is lots of visibility on this so we have to show something." He'd then work with us to find the bare minimum we needed to do to to make it seem like we did a lot more.
It's a lot easier to tolerate crap if people just admit it's crap and your job is to shovel it. It's awful when a bunch of managers hand-wave and act like you're smelling roses instead of crap. Then they make you work 10X harder then you need to just so they can show their boss you are growing roses, not shoveling crap.
I work at a company where tech is an unrespected cost center. There is also a ton of useless bureaucratic and middle management crap that impedes actual work getting done. My boss handles all of that and does his best to shield the team from all that stupidity so we can get our work done. He's one of the best managers I've worked for.
I still don't like the company and work environment, but when I do leave this place, I'll genuinely miss my boss.
> Make sure all managers are spineless and won’t fight for their employees.
> If somebody notices that the checkout page crashes every time someone uses PayPal, just ignore it.
Oh my god. So much these - especially the combination of the two. It's not hard to identify with the customer when building a service (especially if you use the product yourself.) It really angers me when I encounter a customer-facing problem, try to fix it, but instead I get shut down by my manager, who explains that it's not one of the company's OKRs this quarter.
Cut total compensation without cutting salary. A favorite cut is to reduce the quality of the insurance (and the cost to the company). The unilaterally changed your compensation without telling you let alone negotiating a new contract.
Pay people the minimum instead of what they are worth. The guy who can walk to work from his house - you know he's not going to leave if you underpay him.
Even something as small as switching to a new (crappier) 401(k) custodian can be seen as a demotivating compensation cut. Yay, we saved $5 per employee, but lost two key contributors who were finally fed up. Probably not a good trade-off.
EDIT: One of the classic texts on this is Steve Blank's "The Elves Leave Middle Earth" [1] which describes how small seemingly innocuous benefits reductions can serve as a "wake up call" for content employees who never really thought about looking around for a new job.
> tie their bonus to hitting some kind of OKR even though that goal may be put on the back burner halfway into the quarter
Been burned by this a couple times. Especially infuriating after all the effort that goes into crafting "acceptable" OKRs every three months. Mandatory training sessions, the stress of identifying metrics that are both measurable & meaningful, multiple one-on-ones with management to review them, acknowledging and signing copies, and then toss it all in the trash because we're changing priorities. But it's the core of your performance review and tied to compensation. The hell.
A good old fashioned "corporate re-structuring" will also suffice for #4. While you are at it, cut pay by some percentage that just barely keeps the workers at their job and force budget cuts that systematically strip people of the tools that they need to do their work.
They pay _just_ well enough and with _just_ enough benefits to keep anyone from leaving? They're capable of weathering the pandemic for N years largely unscathed? Both?
They appear to be tools used by their inventor, a marketing consultant, to sell copies of his book. Whether they have value beyond that I don't really care to pay to find out.
We give off all kinds of signals in our behaviour, from how we dress to how we breathe to how we show up.
A lot of the signals are cold, aloof, passive aggressive, disgruntled, dismissive, insincere, immodest, fake, insecure, uncultured, ignorant, insensitive, etc. That's just the human condition. Even if we don't mean them as such they can be interpreted as such by other insecure, insincere, imposter syndrome types.
Put a bunch of people in a room and the signals get amplified, it's the basis of reality television.
Combined, the signals whisper "you don't belong here."
Your manager is giving you a signal by wearing running shoes to your 1:1. What does it mean? How can you interpret it?
Your founder is giving a signal by walking in with a coffee. Again what does it mean?
Your VC is giving a signal by his haircut. Your project manager is giving a signal by her exposed skin. Your developers are giving signals through their man boobs.
All of these signals are wretched and don't entice quality people to stick around because they stink of belligerence.
In an honest open and transparent environment the signals align with the values and people don't need to wallow in cognitive dissonance until their minds crack under the pressure to conform, because fundamentally people will do almost anything to be accepted by a group, and when your job depends on fitting in the company has a lot of leverage over you to essentially milk you for your efforts in exchange for keeping you around.
I'm going to echo the other commenter who said you're a "thought leader," because this is a whole lot of words not saying much of anything. Scantily clad female PMs are wretched? Fat developers are belligerent?
I'm trying to comment more substantively but you're not giving me anything to work with.
And I'll tell you one more thing. Everyone one of us is so quick to defend never judging a book by its cover. Yet we judge it by the words it contains? Why don't we look past the words as well in the same fashion?
There's this myth that brilliant people are supposed to be anti social, but only to a point? Look how antisocial I am, at least on the surface.
I'm actually using this forum as a testing ground for my fevered ideations. Any substantive meaning you may extract is all in your own mind.
I like to disguise my brilliance in a patina of filth so I can confuse literalists while evoking deeper thoughts in lateral thinkers.
Obviously I threw you off the scent by triggering your sensibilities.
But I'll have you know I've worked with PM's who had very distinct physical traits that attempted to buck the conventions. One woman worked exclusively in athleisure and halter tops, even in winter. Another guy had piercings all over his face and ears. This other nitwit wore the same exact orange hoodie abomination every single day for four months. My favorite is the guy who wore tiny golf shirts so I could see his underwear on top of his jeans. This is a grown man, with a beard! He should have gone into military service to learn something about personal grooming and had no place in the organization no matter how brilliant. His very presence was a sector stating "abandon hope all ye who enter here" as in you have zero chance of seeing a real client now get back to your coerced agile workflow.
These signals are impossible to ignore and reek of bougie decadence and cause people like me who want to invest their whole lives to something more than an unfair exchange of time for money to die a little inside and seek the comfort of strangers to air our grievances only to get downvoted, therefore reinforcing the trauma.
Plus I like to disguise my modesty in an utter lack of respect because this industry is a cockroach infested nest of groupthink if you ask me with everyone copying everyone's signals until only clones remain. Then we argue about diversity and scratch our heads as to why none of the girls want to play with us.
The reference to man boobs is in relation to grown men signalling like middleschoolers wearing printed T's from guardians of the galaxy and star trek while they get progressively more corpulent on a diet of chicken wings and lunch specials and pints of shock top. Oh and pizza. Always the dry pizza left over from those two pizza meetings.
Hey it's good of you to read the depraved rantings of a code lunatic. If I could tell you about my journey through software you'd maybe understand where I'm coming from.
In the not-to-distant future, this might actually play out IRL considering the direction some people want to take things...you sound like a thought leader who is ahead of their time and therefore may I suggest posting to LinkedIn meanwhile if you have not already and just get the ball rolling already because there are those out there who want to believe.
Ha! You're too kind. To be honest I have been battling it out on social media trying to get the idea straight in my own head. This is the closest I've ever gotten. It's very kind of you to make the effort to read and reply to it. Hearing your voice means the world _curious_
As someone who's been leading people for 8+ years and also who remembers why I have left places... here is a long but comprehensive list.
1) Pay Fair at hire and try to keep it within the market as they grow in experience/skills.
2) Give opportunities to learn and grow based on their own personal/professional goals.
3) Be Communicative and Transparent when it comes to everything.... company/leadership asks, values, deadlines, hiring, firing, promotions. Attempt to have documentation/processes for these things so theirs no question in ambiguity or favoritism.
4) Have check-in's often and Listen to the wants, needs, issues of each individual. Attempt to quickly get back to them with a solution or at least an answer/explanation.
5) Create a 'culture of winning' where wins are always celebrated and mistakes/failures are treated as actual learning opportunities to improve.
6) Ensure everyone has a voice, it is heard, and people feel safe to be critical as long as its constructive.
7) Do everything you can to eliminate toxicity... weather is from members on/under you or above you. You cant stop others from being toxic but you should be able to shield most of it from those who report under you.
8) Since you should have the authority EVERY problem you have or those under you has and its then YOUR problem and your job to fix it (or at lease respond/escalte).
9) Judge people based on objective results not on "optics". Ass-in-seat time is a lazy and pointless measurement in most cases.
10) Delegate and empower those under you as much as you can. Lack of autonomy/ownership are signs of micromanagement, over-control, and poor leadership/delegation.
11) Accept a truth... your reputation/success as a leader is a direct aggregation of the success of those under you. If in anyway this is not the case there is a problem and that problem is you.
> 9) Judge people based on objective results not on "optics". Ass-in-seat time is a lazy and pointless measurement in most cases.
I'd only point out that as a manager one also needs to be aware of the optics because those can affect other team members. "So and so is never here" kinds of murmurings need to be dealt with (and dealt with by, as you said, ensuring that the team judges based on results and celebrates winning together).
Completely agree, I left out the "other side" of leadership, working with other departments and senior leaders as it seemed out of scope of the question.
I put "optics" in quotes to use it as a pejorative as I only seen it used as a strawman. eg. "Your team is never at their desks... it creates bad optics". I prefer to file that under transparent communication between all sides of a company.
In one particular case it was a team that 19 times out of 20 hit every goal and expectation on the product roadmap on time to near 100% ask. As a snarky and sarcastic asshole my response was of course "Do you want to potentially sacrifice the fact that we nearly hit every roadmap deadline and OKR in order to make it "seem" like they are working harder?".
Note: This is based on the startup world... Its never senior management who does things like this as often all they are about is the company they put their blood, sweat, and tears into is successful and cant afford the luxury of ideal "optics". This is an argument/toxicity that comes from less experienced "leaders" who needs to find fault to make up for their lack of success or are micromanagers themselves.
Especially when they suggest organization wide changes to improve workflow or work environment. Don't be the guy always dismissing suggestions or you can slowly but surely turn a proactive A player to someone that just do the bare minimum while seeking other opportunities.
This. When I get the impression that my expertise and suggestions don't matter that's the point when I mentally quit my job. That's always the first step, the original reason. After that it's only the benefits, good pay and all the other suggestions named here that "keep" me, but if those weren't there I will go. So not listening to your employees comes with a heavy price tag if you want to also keep them.
I second this too. I started current position 3 years ago. In the first year I wrote 90% of the code and did many many propositions how to manage first development in the department of the very first hardware unit. In second year I saw, that these propositions are completely ignored. It was mind blowing to see how my manager ignored very detailed proposal how to save $200k buying less pricier hardware parts. Test system was never implemented... In year 3 and 4 I am doing bare minimum while seeking other opportunities.
Definitely this... I have a manager who always has an answer to every one of my suggestions or comments on 1-on-1s where it feels like he thinks my complaints are unwarranted. You don't need to have an answer for everything, just listen and then come back with a good solution.
1. give them the ability to apply their own solutions to your problems - don't force-feed solutions as part of your problems. let dev teams use their own expertise to collaborate with the business to come up with the right answer
2. allow devs to pursue mastery of their field, give them opportunity to learn and experiment and become great at what they do
3. make sure that the thing you're building matters to your customers, so that your devs have a feeling of purpose. nobody wants to ship code that does nothing, for nobody. start measuring whether you're building the right thing (see Lean Startup)
People will say 'pay', but I think that only matters up to a certain point. I don't think anyone leaves a company offering all 3 of the above just because they aren't paid above market rate.
Pink definitely recommends paying above market rate, though. To quote the book:
"Type I behavior does not disdain money or recognition. Both Type X's and Type I care about money. If an employee's compensation doesn't hit the baseline that I described in Chapter 2 — if her organization doesn't pay her an adequate amount, or if her pay isn't equitable compared to others doing similar work - that person's motivation will crater, regardless of whether she leans toward X or toward I. However, once compensation meets that level, money plays a different role for Type I's than for Type X's. Type I's don't turn down raises or refuse to cash paychecks. But one reason fair and adequate pay is so essential is that it takes the issue of money off the table so they can focus on the work itself. By contrast, for many Type X's, money is the table. It's why they do what they do. Recognition is similar."
I think it really depends on the situation. If all 3 above are applied, 'pay' might still be a requirement (maybe someone is starting a family, maybe they got a way better offer) but having them in a position that they like will at least guarantee that they will probably talk to you first.
If I, as a dev, really enjoy my job and know that I might not get a better situation by switching, I will at least ask my employer for a raise before walking.
All in all, money is the easiest thing to fix of those in my opinion and it's easy to talk about it.
I know everyone says no, I want this or that, but at the end of the day, you are trading time for money. Only when people have enough money to not worry do they care about other things, and unless they are were getting 300k+ in a FAANG company for the last few years and now can live ok for a few years, pay is the important factor.
If you can't save a penny, even if work conditions are great, people will change to start building their 401k or to get their kid to a better school.
Then there is also the cultural factor that if a manager asks 'what kinds of things motivate you' if you just say money, you are branded an heretic, so people say independence or agency or whatever.
I would say (assuming they have another option of course) more than 95% of the people here and everywhere would change jobs if they got a 20% payout or something, so that probably says a lot about it.
The problem with the example of getting a 20% payout is that there are diminishing returns on each additional dollar. Most software developers make far more than a living wage. After that threshold is met, most people have a lot of other things that matter more to them.
For example, for me, I work to support my family. Pretty much any software job in my area will be able to do that for me, so the bigger consideration in choosing is which jobs will actually allow me to spend quality time with my family (since that's the entire reason why I go to work). No amount of additional pay could persuade me to work 60 hours a week or work in an environment that leaves me drained by the end of the day.
I've always disliked how widely accepted this argument is. I agree, if you have a family or really value time outside of work for some reason, money has a serious diminishing effect. However, even if I'm totally satisfied with my wage, having more of it means I HAVE to work for less years in my life. Giving me 500k/year versus 100k/year means I have to work roughly 4 less years per year I work now. That is EXTREMELY valuable.
I don't exclusively value money, and there are trade offs that I won't make, but lets not pretend like making more money isn't very impactful for nearly everyone.
Exactly - there's a reason you can find a good number of stories of physicians retiring or going to very part-time work in their 40's. It's because they made $500k for a decade (for some specialties), didn't spend like a drunken sailor, and now they don't have to work.
The economics are different for software developers for a lot of reasons, not the least of which is that we don't have a cartel protecting our licensure, but you give me an extra $350k a year and it definitely will raise the bar on what I'm willing to put up with. But a decade in, I'd be willing to give up more than $350k for more of the intangible valuables.
I agree with this thread. There really isn't a diminishing return. I'd even argue that the return gets even better. Beyond the point where your basic needs/expenses are covered, every extra $N reduces the amount of time I need to continue working before retiring, and my goal is to retire as quickly as possible. So there's really no upper limit where I could say "more money doesn't help". If you offered me like $500K more for a year to work 16 hour days, sacrifice my mental health, family life, and social connections, I'd do it because that probably cuts 10 years off my retirement date. What an amazing trade: temporary pain for an extra decade.
> After that threshold is met, most people have a lot of other things that matter more to them.
Absolutely true. People don't jump ship to get a 10% increase in salary once most of their usual financial needs are met.
However, when people feel they are underpaid compared to other companies, it might seems unfair and unjust. Engineers can feel unappreciated and leave because of that.
Furthermore, many companies seem to be able to think only in terms of money: very often the employee that is paid more is also listened to, given opportunities to grow, treated with respect.
> Most software developers make far more than a living wage.
This is a strange way of thinking and an absurd baseline. Most software developers have also gone out of their way to study, keep up their skills, etc. Why would you think "making more than a live wage" is a good thing -- perhaps the comparison should be the value they are adding? If all those years studying for SATs, struggling thru tough CS courses, grad school, GREs, etc get compared to earning a living wage, why even bother?
Also, I grew up on a "living wage". Living wage means your kids dont get braces. They go to schools with gangs. It means wearing shoes with holes. It means you skip doctors appointments because your living wage does not cover the deductible or copay. It means you cant get a review book for your SAT and you need to chip in with friends to share a review book and allocate time among yourselves.
SWEs: If you've busted your arse to get where you are and add value, dont fall for the "remember you're making more than living wage" argument.
It's not just a "business" transaction. That is incredibly naive. There are implicit health, family costs as well. Chronic stress is real and dangerous.
It is possible to work without putting your real life on "pause" (we age every moment whether we are present with that truth or not).
Business transactions aren't solely financial. I don't think the comment you replied to is suggesting "focus only on career" but rather "maximize dollars earned per hours worked".
The "brainwashing" is people who don't pursue or request raises because "I'm already comfortable".
Someone values something different than you, and that's brainwashing? Baloney. (Maslow's Hierarchy, while not perhaps perfect, does seem to have some reasonable insight into how humans work. It seems more accurate than your comment.)
Most of us look at billionaires and think "why would anybody want so much more money than they need?", identify this as the vice of "greed", and implicitly stear ourselves away from that vice. However, the quantitative disparity here makes these phenomena qualitatively different. As you said, employment is a business transaction and should be treated as such, and this attitude only becomes a vice when it dominates someone's life (as in the case of the billionaire).
> The problem with the example of getting a 20% payout is that there are diminishing returns on each additional dollar. Most software developers make far more than a living wage. After that threshold is met, most people have a lot of other things that matter more to them.
The question was not "What is the way to keep software developers without paying them"
> For example, for me, I work to support my family. Pretty much any software job in my area will be able to do that for me, so the bigger consideration in choosing is which jobs will actually allow me to spend quality time with my family (since that's the entire reason why I go to work). No amount of additional pay could persuade me to work 60 hours a week or work in an environment that leaves me drained by the end of the day.
Have you asked your wife if she would take a $1,000,000 a year for 2-4 years in exchange for you working 60 hour weeks? Because actual financial security as described by having extra half a million a year in a bank sounds like a boon to any family that does not already have millions of dollars in cash and cash equivalents.
But I mentioned it is money in exchange for time. If you are paid 1000 a week and work 40 hours, or you are paid 1200 a week for 60 hours, the 60 hours one is actually less pay, thus still the main consideration. Now if you are paid 5000 a week for 60 hours, you will start to look at it differently. And believe it or not, I don't think the fact developers make more than average is the point, as they also have much higher cost of life (see any HN post about house prices, even developers mention they will probably never own)
I think people in general say not work 60 hours a week, or freedom, etc. Which is fine, but for me that is the starting point. Same as I don't need to say 'not be physically or sexually assaulted at work' as I expect that is the norm.
Developers do not have a higher cost of life. People in cities do. Plenty of developers live in suburban or rural areas and make nearly as much as their urban counterparts. And plenty of HR Generalists making $35k/yr work in NYC or San Francisco as well.
I don't think developers are more concentrated in urban centers than any other jobs are.
I don't have data, so I won't say you are right or wrong, but if you go by the anecdote in HN, SV/NY/Seattle pay significantly more than in rural areas, and have 10x or so more opportunities.
And 10x the people. I'm sure per capita there are still more job postings but certainly not 10x. 1.5-2x maybe? And anecdotally, my company which has been "ass in your seat by 8am" since it started over a century ago is now completely open to hiring 100% remote workers since they've seen the productivity increase in the last few months. As more companies in rural and suburban areas do that, the incentive to live in insane COL areas (which the above three absolutely are) decreases even more.
I've done the math but just to maintain the same standard of living I'd need to make around $400k a year cash comp in San Francisco. Doable for a very small minority, maybe, but not with my resume and experience. And that's not even counting California taxes, where the marginal tax rate is 4x my current rate (I know the math is more complicated than that which is why I called out marginal), and the increased Federal taxes if I was actually making $400k. So it's probably in the neighborhood of 10-15% higher. And there's little things like a Roth IRA, which I would become ineligible for. That's $6k a year in tax-advantaged retirement contributions, gone. Obviously a good deal for a big pay raise, but a net loss if I'm just maintaining the same savings.
I work remotely for the last 10 or so years so I understand that. But you gave a good example, if a company wants to hire good talent in SF, as you said, it will be 400k. No amount of free sushi or bean bags will change your mind. So, pay is the reason you aren't there. No amount of 'like minded individuals' or whatnot will make you move.
>there are diminishing returns on each additional dollar
>For example, for me, I work to support my family. Pretty much any software job in my area will be able to do that for me,
Yes, but are you thinking outside of right now? What happens if the software jobs dry up in your area, or you have something happen where you aren't as competitive at your job and need to change careers. What if the new career you land on doesn't typically offer health insurance? Do you have enough money for a change like that? Do you have 6 months to a year in expenses saved up? Money isn't money, money is freedom, and we're all trying to buy our freedom.
There's definitely decreasing marginal utility of each additional dollar, but IMO the slope is very gradual (if not flat) for what software engineers are making in the Bay Area. Housing and college costs are only slowing down a bit in the face of cataclysmic shocks to the economy. If you can get another 30k in annual comp, that roughly translates to an extra 100k in house budget which is a big deal.
Every time I've gone on to the next company it has been in response to a "no raises" and a subsequent 25-50% pay bump by next employer.
Companies think they can retain people out of fear, this only works on people without options. The ones without options are the lowest value slice of employee to have.
I agree with the idea of pay. With that said, there really are some caveats.
"I know everyone says no, I want this or that, but at the end of the day, you are trading time for money."
Not all time is equal. Let's say you're paid $2000 and you're at a job that has no stress, feels cognitively easy and career advancement is possible. Now suppose you're being paid $4000, but you're lightly stressed all the time at baseline. In fact, the whole company is. Now you're being paid $6000 with chronic moderate stress. Or imagine being paid $8000 with heavy chronic stress and you barely have it under control.
In these scenario's I'd choose for the $2000 in most cases, unless the other cases are short-term assignments. I could do the $4000 job for perhaps 1 to 2 years, but you start playing with your health in all other cases if you do it for that long.
Now this only looked at the relationship of salary, time and stress, but I believe there are a few other variables as well, but it's a lot of typing ;-)
E.g. being able to do remote work wherever and work hours whenever, as long as you average 160 hours per month on a 3 month basis. That's completely different as well, I can imagine that you have people that take 1.5 months off and then sink in all their time in the other 1.5 months while being in Argentina, traveling with their SO.
Exactly, and the other thing I think is missing from the belief money is always more valuable than time is there is a scaling limit to money in most cases.
In your example you go from x to 4x but taking a developer in London with say a new-senior salary of 70k for a standard low-medium stress role, (with a few exceptions such as working in finance) you might get up to 100k by making a change, which is ~1.4x. But that extra 30k is taxed at 40% so isn't significantly more and is irrelevant against the actual cost of housing in London.
HN is always a SV bubble but by and large jobs that allow you to triple your income are vanishingly rare for the average developer, so given you're not going to change your situation entirely with an extra 16k why trade a known quantity for more stress, longer hours and a worse quality of life.
I'll add growth opportunities to that. When I've learned 80% of what I'm going in my current role, I'm itching to find new challenges. If I'm stuck in a position where I can't grow, it's gonna be hard to make to make a case that I deserve increased compensation.
This is 100% true, but also completely useless if your entire team is at the point where they have enough money for a few years. Even outside of FAANG, teams full of senior devs are often full of people who don't truly need the specific job they are in.
So if I don't need your job, you need to build a working environment where I want the job you are offering. The details of what that means will be different for each person, so managers need to talk to their people, and need to ask. There won't be one single thing to do to retain everyone - retention is a permanent ongoing negotiation.
- match (or offer, if you don't) my 401k
- increase health benefits
- provide a learning benefit - no strings attached. It shouldn't matter if it "benefits the company" directly
- flexible hours. (I prefer a 6-2 schedule. Why do I have to be in 9-5 just because that is what most do?
- etc ..
Compensate an employee well, and they will see you care about them; not just their work.
The way this works in my experience is, I'm usually pretty happy where I am. Whenever recruiters or other opportunities find me, they usually fall short on comp, tech stack/maturity, culture/mission.
If not being paid above market value it takes away one of the big reasons to stay. And if caught at a low point it might be enough to open the door and look around.
2. Pay above market rates and promote when it's deserved.
3. Allow them to retain IP of their side projects. People who want to build startups will eventually leave, but you can delay it with this. Considering most people will never reach product market fit, it's a win win.
About (2): Not everyone is just chasing money. I know several very good engineers I'd love to work with which have left to lower paid jobs because they got tired of internal politics and a bad culture, terrible tools and horrible projects. I personally value more (1) as long as my minimum for (2) is meet.
About (3), that just makes things worse in my opinion, people end up working for their CVs, their side projects, and their future company. You would certainly retain them, but not sure if that's the kind of people that will make your company successful.
After a given minimum figure for my salary, I personally would value more WFH, having good tools, being able to make progress and not feeling stuck because of bulls??t and a nice manager and team that focuses on getting things done and shipping. No amount of free avocado would compensate it for me.
So, to OP, (as someone commented elsewhere) just LISTEN to them and ACT to help them fix what they see wrong. That's it. I'd be surprised if the only things they want to stay is more money.
I think it’s more that you can compensate for everything else by just increasing (2), so if you cannot fix your cultural issues just yet, you can keep your engineers if you pay them more.
The moment someone else pays them more for a more pleasant environment you are 100% guaranteed to lose someone.
As I said, I doesn't work like that for me nor for some other engineers I know of. There are definitely people which are only interested in money and that's the main motivator for anything in their life. They're definitely trading their time for money. I know many people like that and I respect the way they see their profession. I prefer not to work with people like that, and I believe those are often times not your best employees. If you tell me I'm going to earn 50% more than at my current job but I have to wear a suit and deal with bullshit all day in a toxic environment, I'm sorry, I prefer my current salary and job. There is no way you can pay for making me will to kill myself 8 hours a day. Not enough money in this world for that.
This doesn't sound right to me at all. There are environments and fits where people will leave, no matter what you pay them.
And people have an inherent bias for the status quo because of job switching costs (or if they don't, they're not long for your company anyway). If they're happy and feel fairly paid, they're not going anywhere. If they get a competing offer such that it no longer seems fair, if you've created an environment of trust, they may even tell you.
I don't think that you can compensate for everything else by paying more. I'm with the GP in that I have a minimum requirement for pay. After that, culture, flexibility, and hands-off management matter far more.
You couldn't pay me enough to work in a toxic culture. I've been there, and no amount of money is worth it to me.
I think in the context of a holistic approach to keeping great employees, above-market compensation is important, whether they are "chasing money" or not. If your market rate is 200k, should you be happy with 150k? In all but the most extreme outlier areas of the country, that's more than enough for all your bills, have a fully funded 401k and Roth IRA, and recreational/spending/fun money on top of it. You might say "oh I like where I'm at" or "the devil you know beats the devil you don't" or whatever, but most people don't think like that. And the best people in your organization will look at places with equal or better culture, who are paying 10, 15, or 20% above that 200k market rate, and leave.
Getting your just compensation isn't about "chasing money," it's about making sure you're paid what you're worth. The market largely dictates that and it's easier than ever to get a rough idea (+/- 20% is pretty easy) of where you stand based on experience, industry, location, and leverage.
> I'd be surprised if the only things they want to stay is more money.
I agree with you, but I think it is worth to reiterate to some people that pay does actually matter (Doesnt have to be above market in my opinion).
I'm fed up of people thinking they can compensate for not paying adequately by buying a ping pong table and a vague promise of "great growth oportunities"
There are so many social dynamics in employment that are detrimental to an employee's mental health: Arbitrary/unclear goals/deadlines, management not responding to criticism/feedback, favoritism, career stagnation, overwork, etc.
The most common reaction to an employee's deteriorating mental health is for the employer to get confrontational with the employee, and demand that they fix all the side effects. This just piles an extra stressor onto the employee. Very rarely is the deteriorating mental health addressed directly.
Employees are not machines; they are humans. Machines work with very tight tolerances, but humans are better suited to diverse problems. Machines require physical maintenance, but humans require a different sort.
Vacations can help, but they cannot solve or redeem the day-to-day frustrations an employee has. Paying well can help, but that is only valuable if the employee has enough personal time to spend it.
There are external factors, too. When an employee rolls an ATV during the weekend, and needs a few weeks to physically recover, it's totally normal to give them that time off; but when an employee is going through a divorce, losing their religion, etc. it is very uncommon for their employer to even know, let alone help.
The real goal should not be to retain (hold) employees, but to cultivate a workplace where they want to attend. Don't turn your workplace into a cult that demands too much of an employee's time or focus. Instead, make it a place for people to fulfill their need to work. Make it a place where ideas are shared, and things are made.
Agency. Give them control over how they organize their work and their work life balance, and to the degree possible, what they work on. It can even be down to little things, like giving them a say in what work laptop they get, or what ide they use, or what coffee machine is in the office.
1) to work with people just as qualified, including managers who are just as qualified at managing (a rare unicorn in the IT sector)
2) not having roadblocks for doing good work. This includes being kept in the dark, micro-management, simplistic "all employees have exactly same computer" policies, workplaces that makes concentration difficult due to e.g. noise or splatter of meetings, weird requirements which can't be discussed at all and doesn't make sense.
Personally as a developer I switched jobs multiple times. Most importantly because:
1. I expect to be trusted. If there is no possibility to work from a remote location and excessive time tracking (e.g. punch cards) because of a lack of trust, I realized that my work was not valuated at all.
2. I expect to be able to use my own workflow. If I get micromanaged and am forced to use buggy toolchains and processes with lots of dependencies, my productivity will suffer and so will my passion. Define the inputs and outputs of my work, but not anything in between.
3. Growth is more important than high pay. I am not talking about a 2% raise every year. There really needs to be a difference based on performance. I throw myself into something and get the same pay rise as if I had been slacking the whole year. This will not lower my performance, it will make me leave.
Money. We can argue here all day and pretend it is not money, but it is money. And I know people don't like to hear it, so it needs to be repeated. Money. With a capital M. Also applies for any regular employee.
While I agree that money is quite important, but it's not the only thing that matters.
A few weeks ago I interviewed for a job with a 50% salary increase compared to the current company I work for. All went well until I had an interview with the manager. He was the kind of guy I would not want to work with. He gave me the micro-manager vibe and mentioned a few things that made me turn down the job.
I'd rather work with a good and nice manager than have a 50% salary increase.
> I'd rather work with a good and nice manager than have a 50% salary increase.
But as soon as you find a good job with a decent manager that pays 50% more, you are going to leave.
Actually the moment that you've received that offer with 50% salary increase you already lost some of your motivations even though you may not notice it immediately. And you are going to continue lose more of your motivations because you know that you can earn more.
I think Money is equally important to many other things mentioned here.
But the thing about money is that it isn't the only thing that matters. If you don't fix other problems, money can only keep your employees as long as they can't find a replacement with similar pay scale. And even until then they are going to under-perform.
So Money is important. You can't keep good, motivated, high performing employees only with a good pay check. But you can't keep them without a good pay check either.
> But as soon as you find a good job with a decent manager that pays 50% more, you are going to leave.
Well yes, I would. But that doesn't mean it's only about money.
> And you are going to continue lose more of your motivations because you know that you can earn more.
Partly agree. I know I can do more and be in a role with more responsibility. If I find a new job as a manager/team lead which pays same or 10% less, I would actually go for it. Because in the long run I may move up to director/VP level. So maybe money is important as I mentioned, but it's not the only thing.
> So Money is important. You can't keep good, motivated, high performing employees only with a good pay check. But you can't keep them without a good pay check either.
Money is the best way.
Your situation is a different scenario. If you were going to accept the other offer what would it took to keep you in your current one? Money.
And if you worth +50% on the market you should really re-evaluate how nice is your manager not paying you that much. It is all 3-5%/year {raises|insults} until you show them a competitive offer, then the parent question gets asked.
> Money is the best way. Your situation is a different scenario. If you were going to accept the other offer what would it took to keep you in your current one? Money.
Not necesseraly. If I had the chance to move up in my current role and keep the same salary I would stay.
I’m curious, then, why you were interviewing elsewhere. The OP is asking about retaining good employees. You were on the verge of leaving. You didn’t like the environment at the place you looked, but does that mean you’re done looking now?
I'm looking to move up, i.e manager/team lead. I do like my job currently and there is a really good environment. I get to work from home, the work/life balance is quite good.
I did apply for a job that actually paid less, but had more responsibility. I guess it's part of planning your career rather than tactically deciding based on money.
So, I'm not done looking, but money is not the only deciding factor.
As someone who has been serially un-retainable to the point that I eventually got tired of it all and decided to take up consulting, here's my advice:
* Pay them their market rate. DO NOT WAIT UNTIL THEY ARE ASKING FOR RAISES. Nothing makes you feel unappreciated like not being fairly compensated. If I have to ask you not to rip me off, the relationship is already on very rocky ground.
* Give them interesting things to work on them and empower them to solve them creatively. Do not micromanage competent people.
* Let them have skin in the game by giving them a non-trivial stake of ownership. Nothing makes you go the extra mile like knowing that doing so is furthering your own success.
This really annoyed me with a previous employer. They gave me every raise I ever asked, but they always made me ask, and they never gave me more than I asked. It took all of the goodwill out of the raise.
I'm going through this exactly with my employer right now, they will never mention a raise until I ask. I'm disappointed, but it doesn't surprise me anymore.
For a lot of companies, a significant profit center is the delta between their employees' market rates and what they are paying them. Asking them to eliminate that profit is tough.
Since a lot of good points have been raised already, I'd though I'd mention something else which have seen happening quite often :
Often times development teams are applying all kind of processes and reporting
are taken accountable for the bug they make, and are overall held to a high standard of quality. All the company is able to consult the backlog, ask questions, whatever, it seems good, and they're ok with it in general.
But then, the dev team may very well fell like all the other team are basically doing the exact opposite. Maybe the sales team will never admit a single failure to close on its team side, the product one will never admit its specs were flawed, the marketing will never admit its creatives where delivered too late, etc...
And that perceived unfairness may be a deal breaker for engineers in my experience. They don't care for example (or even know) if the sales guys have to go to nightclubs until 1am to land a deal while they clock out a 6.30pm, they value visible equality of treatment.
So to retain certains developers, company wide "fairness" may go a long way. (I use quotes because I'm not 100% sure this is the correct english term).
I think this happens often and it’s because of a combination of two things. First the complexity of software development is not well understood by other teams so they can be fairly aggressive when something doesn’t “work” - like how could that happen. and second is that programming types also aren’t as assertive in defending themselves. They take blame and accept responsibility quickly.
From my experience, adding to what has been mentioned: get rid of unqualified/underqualified and lazy employees, because few things are more annoying than having to work around other people's inability or do their work if they are lazy.
You can keep the un-/underqualified by improving their skillset, I've not seen the lazy improved, but maybe that's possible as well.
From personal experience, and as someone who has been in the same company for 8 years, and have turned down multiple offers, even for a compensation that's been magnitudes higher, I can list only one thing: The team(or at large fraction of the team). That's the only reason why I'm still around. Put a shopping cart wheel on a tank and it will break, simple as that. At this point, we can easily deliver large upgrades faster and more efficiently than anyone else. If I were to leave at some point, it will likely be with the entire team coming along.
So yes, be clear about what the exact responsibilities everyone has and build up a solid team where everyone fits in.
Don't achieve profit at the cost of negative externalities; for example widespread health effects, environmental destruction, financial system collapse, Internet-wide insecurity, patent trolling, underfunded open source projects etc.
2. Be honest regarding company state and finances. The worst thing is that you tell everything is OK, the company is doing well, and suddenly you have to lay off half of your staff.
3. Flexible hours and projects. Development (and solving problems) is an art, not cranking something like in a factory.
To me, I like to describe my role as mommy & daddy rolled into one. I need to take the time to comfort the group as I need the time to correct them.
Since I have had the opportunity to raise my kids, I have grown tremendously as a manager: I have learned to forgive and to stand fast. To allow for slack and to demand relentlessness. To treat people as individuals (you might have guessed I work in IT where rather exquisite characters seem to flourish) and learn them to enjoy the results of our efforts as a team.
Loads of seemingly contradictional qualities that are required from parents and very easily translate to people management.
Basically I see my role as a temporary one: you are here with me since we need each other to reach some goal, and then we will both move on. This might be short-term or long, but we will separate and I will do my utmost best to become a better person / employee / employer over time, as I will do my utmost best to let you grow and fore fill yourself.
Oh and I will try to be having a good time while doing that, since I have ran out of time to suffer for no reason but suffering.
Calling a manager a boss already puts you one foot into employee mentality. The only boss is the investor. That's the team, the client's clients and the client in that order. Not everybody even knows this.
If they want to code, let them code. Facilitate it so they can spend more time coding.
If they're qualified, they know how to use Jenkins and Jira, when to script and whether to automate. If you start regulating Jira with excessive rules (classifying as epic or story, team, feature, sprint, component, DOD, estimate, only work from top of backlog, etc.) then a dev is is really going to be disincentivised from using it.
Whether or not they know how to use JIRA only tells you whether or not they've used JIRA, not whether or not they're qualified.
And in my experience, most developers (myself included) will just not use those tools if they're not required to. And if you have no idea what level of information you're going to get from an epic, story, bug, task, or subtask until you know who wrote it, the tool is largely worthless.
Allow them to put their family first and maintain a healthy work life balance and they will put up with a lot. Anything you can do on top of that as far as pay (not necessarily top tier but not insulting) and autonomy/ability to contribute and be recognized will help. The company and position also needs to be stable.
There is an army out there of intelligent, qualified individuals ho just don’t care that much about work. You likely won’t be able to keep people who are highly ambitious long term without constantly sweetening the pot which usually isn’t tenable.
Find the right people, treat them with respect and allow work to not be the most important thing in their lives and they will be with you for a very long time.
I think this is a big one, at least from my 40yo pov.
Getting a boss to tell the client "we will add that feature to our list" vs telling me "we really like this client, how fast can you crank out this feature for this stupid deadline"
Although this is (I guess) a bit too generic, I don't get why it's being downvoted, as the points all make sense.
Point 4 for example ("Support their other goals (startups, health, lifestyle)"), is basically the same as what the current top comment states as "1. Give them flexibility eg- work timings, wfh."
Point 1 is again another one of the top comment's point.
I expect it's because of the redundancy in the posts. My reasoning for that is my feeling that 'adding on' another thing to keep in mind would have made the thought too incomplete to be useful on its own.
Either way I strongly feel that giving people a way to move on to the next big important mission as they progress is the real secret. Humans get bored and all the bonuses and free lunches in the world won't keep highly motivated talent from seeking out something they consider 'worthy' of their time.
My ordered list, having seen a lot of departures lately, would be:
1. Fair compensation, meaning don’t make people feel like they’re suckers for sticking around.
2. Team quality, since any move to a new job means you might have to work with bad people, so if you currently work with good people that’s a huge hurdle, especially for engineers.
3. Useful work, i.e. useful for keeping interested, useful for advancing careers, useful for making the company successful (in that order).
4. Work environment, so your valued Employees don’t think they’re just expensive meat on a stick. That probably means less open plan, not more free food.
5. Flexibility, because not everyone wants or needs the same thing.
Here’s what has had me looking to leave in the past, make sure these don’t happen:
Being paid less than the market and not receiving raises in line with my growth. I got a 50+% raise by jumping ship. If you don’t pay well, people will jump ship unless there is something very attractive intrinsic to the job (like working on a niche loved technology). If you don’t offer raises in line with growth, leaving is the only way for an employee to earn their worth.
Having no vision for the tech org and letting flashy tech-debt laden projects get the most recognition. There is a tricky balance between fostering bottom-up innovation and letting “get recognition quick” projects get the focus. Good engineers who really care about your product and maintenance will be turned off.
Poor dev tooling. Locked down PCs where devs can’t install the tooling they like. Centrally controlling the libraries devs can use. Paranoid security that gets in the way, leading people to give up or build hacky workarounds.
Focusing too much on new features and building up a backlog of bugfixes and reliability improvements.Not realizing the cost of tech debt.
Allowing nontechnical management to drive technical decisions. Not listening to those of us in the trenches, who see how things are day to day.
No studies or articles to reference, just what I've heard from talking to people is that workers want to feel like they have impact. You have to get all the other things like pay and conditions correct too, but that should be a given. Once those are in place, giving people the sense that they're having meaningful impact will keep them around.
Stay within reason, don't try too hard. Realize that there are some people who won't stay no matter what you do, try to identify those lost causes and focus your efforts on everybody else.
If those who are open to staying see people rewarded, in futile efforts to retain them, for being almost gone, they will eventually start leaving as well.
PS: and one more thing: retaining starts with hiring. If your hiring process strongly selects against those boring people who might actually stay longer than two years, then nothing will stop the perpetual churn except changing the way you hire.
From the comments, it's clear that one faction is extrinsically motivated another another is intrinsically motivated. A healthy company has a mix of both.
Intrinsically motivated are usually the most cost effective, and don't fight for recognition, and happy to R&D at night and document their findings. Extrinsically motivated people are happy to do the dirty, boring work or even sit in a role where no work is necessary, which would drive the intrinsically motivated people crazy.
Extrinsically motivated people will leave you for a job at a FAANG. Intrinsically motivated ones will leave you to do their own startup. You can't stop it from happening, but just maintain good enough conditions to keep the medium skilled ones.
I had the pleasure of learning two concepts ( part of Herzberg's motivation-hygiene theory) when it relates to work environments : "Hygiene factors" and "Motivators"
Figure out what the hygiene factors (typically pay, good physical working conditions etc) are and fix them first if they are lacking.
The motivators are typically industry specific and group specific. Some (in) formal surveys should help but ensure that people _know_ that their voices are being heard while you bring about the change.
I’d echo what the others have said re: pay and flexibility and add another point-
Autonomy and Impact- people need to feel like they own their work and that it matters to someone. Meaningful (subjectively defined) work is an important motivator in my experience. Creeping nihilism erodes morale and motivation.
I’ve found that nihilism is often caused by broken processes that fail to fix obvious deficiencies, especially in large corporations. This ranges from pointless hoop-jumping to get simple software packages to the lack of accountability/oversight for low-performers and everything in between.
Listen to them. Allow feedback. Ask what they need, some posted pay, but it depends, Many switch jobs for less pay and better benefits, better culture or cooler projects.
Helps only until a certain point and then becomes counterproductive if they don't really like the work but can't quit due to these golden handcuffs you put them in. It could even make them disgruntled, the opposite of what you wanted. Or another possibility at an extreme end, they might even consider early retirement - happened at waymo apparently.
there are diminishing returns on salary increases. you should aim to be competitive but if you raise it too high then people will stay just for the salary. their motivation changes and they can feel trapped or just start coasting.
if someone comes to you with a competing offer, you should be open to negotiation (provided they have done well in their recent perf reviews)
It can't be all just increases in salary, but don't ever stop increasing salary. You should have a cost of living adjustment, in line with the BLS regional CPI-U index for the last year, as a minimum, and maybe an extra 1% just on principle.
This bare minimum will keep you from coming across as super-cheap and out of touch / unconcerned with their compensation. Remember most employees can get a bigger raise by switching jobs; your salary increases shouldn't make a point of making that obvious.
Let them code if they want to. Too often programmers get managerial and design work piled onto them, such as conducting early culture-fit hiring calls and coaxing the project requirements out of stakeholders.
Some people live for that, and there must be a path out of engineering into management or PM-type requirements gathering. But if your programmers just want to be programmers, let them. Hire the boss an assistant, hire more PMs, whatever.
Give them copyright over any work that they do that is released under a Free Software or Open Source license. Make this a standard part of your employment agreement. Give them an allocated amount of time each week to work on such projects.
Allow developers/engineers to use an OS and tooling that they're comfortable with. There must be choice between text editors, IDEs, browsers, shells, etc.
Also don't try to control this centrally. Once developers have proven themselves to be competent at operating a computer, they shouldn't be forced to use a locked-down corporate machine.
Someone wrote on HN that you can not make all of your employees happy at the same time. Identify the 20% who gets done 80% of the work and make sure they will want to work for you in the future and follow you if you jump ship. How? Build a relation to them based on trust and respect and ask them directly.
Pay 10% more than other non-FAANG companies (who are on a different planet) and offer a real mission and opportunity to make a difference in the product/world/industry. Make sure there's free coffee, smart people, and no jerks.
Have seen this go wrong so many times. Here's may take:
1. As many people have mentioned, pay. Don't invent "noble" excuses, e.g. 'you must want to be here because we innovate so much' to avoid a pay discussion - those things work, but to a point. Pay matters. You don't have to pay the highest in the market, although that obviously works. But it has to be competitive, and hikes/increments should be regular to reward good work. This also has to be proactive: if someone has already begun to look outside, its probably too late for retention.
2. Peers. Smart people hang with smart people. If you staff team A with qualified folks, but team B has people not as qualified to the point that collaboration exercises are frustrating, either people from team A leave (they feel team B gets nothing done) or from team B leave (because they feel they're being lorded over, or feel team A is working on abstract pointless things).
In general, impedance mismatch at the level of skills or intellect is something to be wary of.
3. Bad apples. During hiring you need someone with fresh perspectives, but still aligned with the culture at some deep level. Its a bit like the superficial adage we hear about in dating: "opposites attract" - except they don't when you start living together. You are on your way to build a meritocracy, and then accidentally hire this person who wants to "play the game" to rise up the ranks, ruining it for everyone. Competent, hard working people don't want to spend time playing politics, and at some point they're going to reach out to their network to look for better teams.
4. Be transparent. You don't have the budget to hire the top talent in all depts? Be honest about it. Don't give out vibes like "we hired X anyway because we think he's good irrespective of what the interview panel felt" - people would eventually figure out that you don't think X is that great either, esp over candidate Y who got top scores from the panel but you glossed over, and you're just hiding budget decisions. Welcome, erosion of trust begins here.
5. Don't micromanage and stay away from pushing biased agenda down the chute. I think these are fairly well known. If you hire people qualified to do a certain job, let them do that job. Don't prescribe minutiae because you found them hyped up in a blog post. If you want a discussion, set up brainstorming sessions where you make it clear that you're probably going to come in with silly ideas to discuss.
One of the best managers I have worked with knew very little about my area, but one-on-ones were a delight with him because he would have many questions/thoughts about the project from the perspective of an inquisitive layperson. It made me want to improve.
6. Small acts of trust. Instead of conveying what you learned from speaking to a customer to distilling it to "code features X, Y, Z", expand the involvement of your team by actually talking about the discussion you've had. Invite perspectives and suggestions. It tells people that you think of them as more than just cogs in the system.
7. Hire empathetic people in the mix. Ego clashes do happen despite best efforts, and you want people who can diffuse tensions and mediate discussions between warring sides. I have personally seen the presence of such people help immensely in standoffs where I believed the only outcome might be a bunch of people walking out saying "I don't need this st in my life".
1.) Make goals unclear or constantly changing. Bonus points if you tie their bonus to hitting some kind of OKR even though that goal may be put on the back burner halfway into the quarter. Even more so if this includes their holiday bonus, and you have a minimum threshold of “accomplish 80% of your quarterly OKR and get 80% of your bonus. Get 79% or less accomplished and take home 0%”
2.) Make sure all managers are spineless and won’t fight for their employees. This includes managers from other teams piling work onto people who don’t report to them, but add “important to the company” work that has to be done and your own manager always going along with it.
3.) Make sure there’s a lot of good old boys club going on, especially if the “principle” engineer and the CTO go out to clubs every other night trying to wing man for each other. Also make sure there’s no accountability for these favorite engineers (or employees in general)
4.) Have a career framework that lets your employees know what they can do in order to get promoted or grow into another role (manager? senior level?). After a couple years of not promoting (most) people, then get acquired or change the entire structure so all of your employees are unsure if their work is actually going to help them get a promotion, or if that’s even an option anymore.
Finally, make sure feedback is treated like the plague. If somebody notices that the checkout page crashes every time someone uses PayPal, just ignore it. Somebody who isn’t the web dev has PR that fixes it? Let it live in limbo forever. Features require login but don’t tell customers until they get an auth error, and then have to refill out the form all over again? Not a problem. Why do you keep bringing up issues with the UX instead of rewriting our site in Angul...Reac....Vue.