Recently, we have surveyed 200+ Software Engineers from different industries to learn how codebase health impacts Engineering hiring and retention.
In this article, I’ll share some of the key stats from the survey, why investing in a codebase is crucial for businesses, and questions you can ask on the interview as an Engineer to learn about the company’s codebase health. You can download the full report here.
Here is what we found out:
Today, hiring and retaining developers is one of the biggest challenges for tech companies. And while recruiters, hiring managers, and leaders are focusing on attracting new tech talent, they might be ignoring one of the biggest reasons they are losing them in the first place — codebase health.
More than half of the Engineers (51%) have left a company or considered leaving a company due to large amounts of technical debt, and 20% of Engineers say that technical debt is the primary reason for them to leave the company.
As discovered in The State of Technical Debt 2021 Report, technical debt has a huge impact on developer team morale, causing frustration and hindering innovation.
Given how much it costs to hire new engineers, companies need to keep their staff turnover as low as possible. And the best way to do that is to carefully manage technical debt to maintain a healthy codebase.
Salary, technical challenges, and remote work opportunities are the 3 most important factors that Engineers pay attention to during their interview process.
Compensation and workplace flexibility is at the top of the list for engineers when they’re looking for a new job. But 62% admit that they also consider code quality as an important factor.
Code health or code quality refers to the characteristics of the code, such as clean, consistent, easy to understand, testable. Engineers often feel pressure to sacrifice code quality to meet deadlines and ship features fast which leads to frustration and decreases team morale.
"Code quality definition is very unique for each engineering team and product. However, every engineer wants to write code that is scalable, performant, reliable, and most of all easy to maintain for future engineers,” says Shamma Pathan, Senior Software Engineer at LinkedIn.
Unlike salary and remote work opportunities, understanding the state of the codebase and software development practices can be challenging.
Engineers suggest asking the following questions during the interview process:
• What are the complexity metrics, defect metrics, and coding standards of the codebase? What does the workflow before deployment look like? • Do all projects for each tech stack have consistent and identical CI/CD pipelines? • How is refactoring built into your development process? What does the code review process look like? • Do you dedicate time to fixing technical debt? • How do you balance building new functionality and resolving technical debt? • How much time does the team spend on refactoring? • What processes are set up to ensure the company uses all the modern/latest stack?
When it comes to the job itself, 82% of Engineers admit that lack of proper development practices plays a crucial role in their job satisfaction.
“The mess slows developers down and sometimes even prevents them from doing their actual job. Technical debt can make it difficult to be proud of the work you’re doing, as a lot of time is lost dealing with annoying obstacles,” says Maarten Dalmijn is the head of product at Rodeo.
The right way to fight technical debt is to talk about codebase-related issues across the whole company so that everyone can understand why it’s vital to manage it carefully.