5 reasons why your best developers will quit - and how can you postpone it
Simple tips on motivating developers after years of working together
6 months ago, one of the developers on my team quit, and I took it pretty hard. It caught me by surprise - after years of managing, it was the first time someone left me.
Yes, it felt like he left ME. You know, everyone says: “People quit managers, not companies”. So I must have been a bad manager, to even not see it coming.
After some conversations with my peers, I understood it was just an important reality check. There were definitely lessons to learn, but I shouldn’t beat myself up for it.
When 69% of software developers stay less than 2 years on the job, our job as managers becomes much harder.
Gone are the old IBM and HP days. Even in places like Google, the average tenure is only 1.3 years!
Why do Software Engineers quit?
Starting a new job is like sailing on a new adventure - a bit scary, but full of excitement.
I just finished the 1st season of ‘One Piece’ on Netflix, it may have influenced my analogies 😅
Then, a year goes by, and the novelty fades. You start to look around and notice the problems.
An interesting way to answer why developers quit is to use the inversion mental model - what does an unmotivated developer feel?
Unappreciated (and/or underpaid).
Lonely.
Bored.
Stuck.
Apathetic.
When a developer quits, it’s almost always because they feel one (or more) of those 5 things.
So to keep them motivated, we ‘just’ need to figure out how to make them feel valued, connected, challenged, growing, and passionate about their work.
Easy, right? :)
1. Unappreciated → Valued
Salary
Let’s put on in the table - often it comes down to money:
Even if an employee was paid fairly when they were hired, it doesn’t end there. The cost of living goes up every year, and people expect to get raises.
When a developer asks for a raise, it may already be too late. If you don’t give them what they asked for - they’ll probably leave soon. If you do - you won’t get any credit, they’ll just feel as if they got what they deserve.
You get many bonus points if you initiate the salary increase, not waiting for your employee to ask.
Usually, it’s not up to you to make those decisions, but it’s up to you to fight for your employees!
Sidenote - it IS possible to retain underpaid developers:
Maybe they feel very passionate about the company’s mission (like in NGOs)
Maybe they strongly connected to the team and became close friends.
Or they really enjoy the technical challenges they deal with.
But I wouldn’t count on it for the long term. People have families and future to think about.
Recognition
Salary is an important part of feeling appreciated, but it’s just the start. Make sure your people know you value them:
Actually tell them you appreciate them!
Try this in your next 1:1 - “Hey Jen. I wanted to tell you how much I appreciate the great work you did on that last project. You've made some amazing progress in the past year!”.Give them the stage - let them write Slack messages about the features they released, and communicate with other people in the company. Tag them and make sure people know what great work they did.
Public recognition - if there are ‘employee of the month’ or similar traditions in your company, make sure to push for your employees to get it (assuming they deserve it of course).
2. Lonely → Connected
Next is making sure your engineers feel a part of a great team.
When you don’t have any connection with your co-workers, the chances you’ll decide to leave are much higher.
You can’t ‘force’ people to connect with each other, but you can create opportunities for that:
Have team meetings. Read more about tips for effective ones here:
Do team-focus days - outside the office. Full days where you bond as a team and also talk about work stuff. For a simple guide on creating such a day, read the article:
Make sure to do fun stuff together during working hours. Don’t force people to eat dinner together.
It can be simple things, such as a small breakfast picnic outside the office, or bigger activities like Laser Tag, Bowling, or an escape room (all things my team really enjoyed).
Aside from the fun during such activities, they are important because they create shared memories, jokes to laugh at, and opportunities for more personal conversation.
Some people search for workplaces where they can make friends - especially young developers after college.
When you interview people, I suggest clearly stating what the culture looks like, to not set unrealistic expectations. For example, my company (and team) mostly consists of married people with kids, who don’t want to hang out in the evenings. So if someone looks for a place where they’ll go bar-hopping after work with their teammates, I make sure to explain they won’t find it here.
3. Bored → Challenged
So you’ve got an appreciated and connected team. You are 40% of the way there.
Next comes making sure your people are challenged.
The best way I found to do it is to delegate interesting tasks. Writing designs for interesting features, mentoring a new engineer, handling a cross-team effort - all of those tasks are often done by the team leaders, but can be delegated!
When people are responsible for important projects, they will feel less like code-writing parrots, and take more ownership.
In addition, you can just… Ask.
“Do you feel challenged? What do you feel is missing from your work today?”. Often we assume we know what the developers want, instead of having a simple conversation.
4. Stuck → Growing
This one is the hardest in my opinion, and involves career planning.
Even if a developer is challenged in the day-to-day, they can still feel stuck in their role. It can happen at any level - juniors, seniors, and even staff engineers, but I’ve mostly seen it with mid/senior engineers, who just can’t get that next promotion.
It’s YOUR job to support them in getting it. Plan together:
What are the requirements for the promotion?
How far are they from it? Why? Be 100% honest!
What kind of tasks do they need to take to satisfy the requirements?
What other opportunities can you provide?
Sometimes the promotion the developer wants is for a management role - which depends on having an open slot. In that case, help them prepare as much as they can - make them your second-in-command, and let them experience the life of a manager. If they will be patient, something will open up (but never promise!).
5. Apathetic → Passionate
You are almost there. You have a team of valued, connected, and challenged developers, who know what they need to do to get promoted.
The problem?
They don’t really care about their work aside from the technical challenges. The company’s vision doesn’t resonate with them, they don’t care about your customers, nor about the future of the product.
While it’s possible to be passionate solely about tech, I found that when people care about the company/product, they are much more engaged and satisfied.
One of the most critical parts of your job is to connect your team to the business side.
Share with them the success stories you encounter.
Bring senior people to talk with the team.
If possible, ask them to join conversations with customers.
Or any other creative idea.
Ok, now comes the depressing part:
So why will everyone eventually quit?
Because not everything is in your hands.
A company can rarely satisfy all of the above for years. People will get offers you can’t match, or promotion opportunities you don’t have an open vacancy for. There might be layoffs or re-organizations that completely shuffle the cards and destroy teams.
People change. They might become passionate about entrepreneurship, decide to move to a different tech domain or go for full-time PhD studies.
When the time does come, don’t take it personally. Part with them on good terms.
Final words
If I could choose one article to summarize my approach to leading software developers - it would be this one. Well, maybe in addition to my manager’s readme.
I hope you enjoyed it, and if you have any points I missed in that ladder, I’m curious to hear them :)
What I enjoyed reading this week
The biggest-ever global outage: lessons for software engineers by
11 mistakes I made as a solopreneur by
An overnight success, after 8 years by
and
Leading Developers job board
Sometimes, it’s we who decide to leave 😅
So if you are looking for new opportunities, check those out:
And sometimes you should be encouraging your best people to leave before they quit.
This happens when they outgrow the position you have for them and the best thing you can do is help them find more opportunities to grow.
In the short term you lose someone great, in the long term you've built a great relationship and a great advocate.
This is a really insightful piece, and one that any dev can relate to.
I've personally found those 5 reasons to start popping up in folks heads once the org starts pulling back on transparency and/or communication, so little doubts and wonderments creep in.
Folks who've been burned in the past by re-orgs / outsourcing / project cancelations tend to be on the lookout for "writing on the wall", which seems to appear in the void of adequate communication.
Anywho, thanks for the article! Will share it around.
- the folks @ https://whattheportal.com