Companies are fighting to keep hold of software developers at a time when many tech workers are considering changing employers.
Developers are mostly keen to move on for more money, new challenges or for more flexible-working options. But now a survey has come up with another reason why your engineers might want to quit – their fellow developers' terrible code.
Software engineers have long struggled with 'technical debt' created by past coding practices that might have been clever but also were undocumented and exotic. At a high level, technical debt is the price paid by supporting legacy systems rather than overhauling them or implementing a better, new system.
SEE: Programming languages: Python is on the verge of another big step forward
The term can span everything from a major IT implementation, such as a core banking system that requires a decade of bug fixes, to the choice of programming language to build backend systems. In the latter case, subsequent language updates can require today's developers to rewrite old code written by long-gone developers who wrote under different conditions and who might not have documented what they did and why they did it. That's a big problem for companies that have millions of lines of code written in a language.
Stepsize, a firm that focuses on technical debt by tracking development issues in major code editors such as VS Code, conducted a fairly small survey of 200 software engineers to find out why they leave their jobs. The company said that 51% of engineers in its survey have considered leaving or left a job because of technical debt.
Of that group who feel irked by technical debt issues, some 20% said that type of debt is the main reason they left a company.
The results should be taken in context: the company's key selling point is trying to solve technical debt challenges that organizations face, but at the same time, technical debt could be one area worthy of attention considering how hard it is to hire and retain software engineers.
"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," says Alex Omeyer, CEO of Stepsize.
Technical debt, or 'code quality and codebase health', was the fourth most important issue cited by respondents. Salary still trumped it, with 82% citing it as one of the "most important factors" when interviewing for a new role. The survey allowed respondents to choose several primary factors.
"Technical challenges and growth opportunities" was the second priority, with 75% choosing it as the one of the most important factors.
SEE: Remote working jobs row shows how much tech has changed
Some 68% of respondents said remote work was the most important actor, while 62% put said 'code quality and codebase health' was one of those prime factors.
Code needs to be understood by future employees. It also needs to be clean and consistent and testable, notes Stepsize, since this affects how well a codebase can be maintained in the future.
"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," said Shamma Pathan, senior software engineer at LinkedIn, in a statement.