Software developers are leaving their jobs. This should come as no surprise.
When engineers are forced to work longer hours and their requests for better pay or more flexibility go unheeded, they either quietly quit or start looking for new opportunities. Some even go the other way with ‘OE’ (overemployment), where they decide to work multiple jobs on the DL to reach financial freedom.
It appears that many developers are willing to take this risk as they're optimistic about the tech sector and feel confident in their ability to secure a new role, despite big tech layoffs making headline news this past year.
In this blog post, we’ll explore why developers leave their companies and provide actionable strategies to mitigate attrition risks.
10 Reasons Why Software Developers Quit Their Jobs
Limited Growth Opportunities
Just like the software they build, software engineers themselves also require continuous development and improvement.
Because tech is changing rapidly, developers are forced to learn new things to remain ahead of the curve. In a survey conducted by Stack Overflow, developers rated “opportunities for professional development” as the most important factor when assessing potential jobs.
If engineering managers fail to provide growth opportunities, engineers could take it as a sign of a lack of interest in them as coders as much as people.
As an engineering manager, you should strive to implement clear career development paths, and mentorship programs, and foster a culture of learning.
Burnout is real. The demanding nature of building technology inevitably leads to a work-life imbalance. I’ve seen the toughest developers with years of experience end up emotionally and mentally exhausted. Such moments should force engineering managers to ask what they’re doing to allow this to happen. Too much stress? Tight deadlines? Long hours?
According to the UN, burnout can manifest in exhaustion, lack of motivation, emotional detachment, and cynicism toward one's job. All this may lead to a drop in efficiency and ultimately result in your best coders quitting. A study conducted by Haystack revealed that COVID-19 heightened the risk of burnout in engineering, with 83% of engineers experiencing burnout.
Engineering managers need to get on board and prioritize a work-life balance by encouraging reasonable working hours, offering flexible schedules, and promoting a supportive team culture that values wellbeing.
Lack of Recognition and Appreciation
It’s not humanly possible to work cognitively demanding jobs without being told that you’re doing a good job. Over time, if engineering managers do little to show gratitude, then developers lose morale and their interest in the project goes down.
Make a conscious effort to provide regular feedback through 1:1 meetings, acknowledge achievements publicly, and create a culture of appreciation within your team. I’ve written a great deal on rewarding your developers if you’d like more insights.
Challenging Team Dynamics and Collaboration
Unhealthy team dynamics and poor collaboration can lead to dissatisfaction and frustration among software engineers.
As an engineering manager, it’s important to foster an environment of open communication, encourage teamwork, and address conflicts as they arise to create a positive and productive (and normal) work environment.
I remember one project in my earlier years as an individual contributor where the importance of team dynamics and collaboration became crystal clear. We had to develop a complex solution within a tight deadline. In the beginning, each contributor focused solely on their assigned tasks, working in isolation.
But as the project progressed and we started creating code separately, we encountered unforeseen challenges and technical roadblocks when it came to knowledge sharing and integrating the feature.
It became evident that working on separate tasks without keeping each other informed would result in an unsuccessful project. Recognizing the importance of team dynamics, we were forced to embrace collaboration wholeheartedly.
Poor Company Culture
Poor company culture in software engineering can have serious consequences for developers, the project, and the company.
While a poor company culture usually arises from bad policies, toxic behaviors, or management styles, the result is developer dissatisfaction and quiet quitting – or quitting outright.
A report from breatheHR has found that bad company culture costs the UK economy £23.6 billion per year. As many as a third of British employees quit their jobs due to bad workplace culture.
Here are some other examples of poor company culture:
- Lack of communication and transparency
- Constant finger-pointing and scapegoating
- Hostile, ego-driven work environment
- Micromanagement and lack of autonomy
- Favoritism or unfair treatment
- Lack of work-life balance
- High turnover rates and low employee morale
- Absence of recognition and appreciation
- Limited opportunities for growth and development
- Discrimination or lack of diversity and inclusion
- Resistance to change and innovation
- Unhealthy competition among employees
- Absence of trust and collaboration
- Inadequate support for employee wellbeing and mental health
To improve company culture, engineering managers can do several things such as encouraging open communication and collaboration. Other strategies could involve personalizing rewards, professional development, or sending a public #kudos on Slack to a teammate who went above and beyond.
Using employee feedback or pulse surveys can help engineering managers find out what works and how they could evolve dinosaur-aged company policies to be more modern and inclusive.
More and more software engineers want to use their skills for a good cause. They’re thinking beyond engineering and are driven by a desire to make a social impact while working on challenging projects with the frameworks and tools that they love. When engineers perceive their job as lacking fulfillment, they seek other opportunities that provide greater challenges and more intellectual stimulation.
Provide opportunities for them to contribute meaningfully and tackle innovative assignments. Empower engineers with autonomy, ownership, and the chance to work on projects aligned with their interests and skills.
At our agency, we have something called Investment Time, where engineers could invest a few hours a week on a side project using whatever tools or programming language they like.
Low Compensation and Benefits
Competitive compensation and comprehensive benefits packages play a vital role in attracting and retaining top engineering talent.
In fact, according to a Best Practices Report, 44 percent believe insufficient pay increases are what make companies lose their best engineers.
Let that sink in for a moment, but not for too long because you need to conduct regular salary reviews to ensure your engineers are compensated fairly.
Also, pay your engineers based on their added value to the company, not just what the market says you should pay them. By offering great benefits and perks you show your commitment to your developers’ happiness and wellbeing.
Misalignment With Company Vision and Values
Software engineers are more likely to stay with a company that shares their vision and values.
According to recent research by Qualtrics, employees who perceive alignment between their personal values and their company's mission, vision, and values are significantly more inclined to recommend their employer as a great workplace (70% vs. 25%).
These employees are also more likely to experience a sense of personal accomplishment from their work (72% vs. 29%) and exhibit lower intentions of leaving their current employer (33% vs. 44%).
To achieve alignment of values, create a strong sense of purpose by clearly communicating the company's mission.
In my experience, I’ve also tried to lead by example, where I modeled the desired values and behaviors myself. I’ve also engaged my developers in the past to help define our company's vision and values. This worked out well for us because by getting everybody to contribute we managed to foster a sense of ownership and commitment, as they felt their voices were heard and valued.
The Burden of Technical Debt
Who wants to be tasked with paying down the interest with bad code written by other developers? That’s exactly what happens with technical debt, and believe it or not, it can influence a software engineer’s decision to leave his or her company.
Dealing with technical debt takes away valuable time from engineers, preventing them from working on new projects with the tools they love using. It also hinders career growth.
Moreover, constant maintenance and bug fixing can be demoralizing and limits exposure to new technologies and learning opportunities.
By allocating the right resources for refactoring, promoting good development practices, and inspiring a desire for technical excellence, engineering managers are sure to keep their best engineers satisfied and on the payroll.
Great developers join companies but leave their bosses. In fact, 75% of people who quit do so because of a difficult manager. Even if their developers are placed on pedestals by their colleagues or are paid handsomely, a toxic boss can make anybody throw in the towel, especially when opportunities abound in other companies.
What’s more, nearly one-third of American employees report that they feel underappreciated by their bosses, and 44% say that they've been verbally or even physically abused by a superior at some point in their careers.
Here’s where many engineering managers could really make a difference and lead with empathy and emotional intelligence. They could practice fairness and consistency while encouraging a work-life balance and supporting their developers’ professional growth. By implementing these practices and many others, managers can create a positive work environment and contribute to a healthier organizational culture.
Understanding why software engineers leave companies is the first step toward preventing attrition. As an engineering manager, it's your responsibility to create an environment that supports the growth, wellbeing, and fulfillment of your software engineering team.
By addressing growth opportunities, work-life balance, recognition, team dynamics, impactful projects, compensation, and alignment with company vision, you can build a culture that attracts and retains top talent, ensuring the long-term success of your company, organization, or software agency 🏌️