For a happier team, give robotic tasks to robots
Gartner has estimated that by 2021, demand for application development will grow five times faster than tech teams can deliver, and the digital skills shortage is projected to result in 4 million vacant roles by 2030. With fierce competition for the best talent, it’s crucial for businesses to be able to attract and retain top technical talent to build a happy workforce with low turnover.
Our recent developer survey gave developers a chance to tell us the factors that impact their job satisfaction. Having realistic targets (87% agree) and the right tools (92% agree) came out on top. Contrary to popular belief, to increase their job satisfaction, developers are also eager to introduce automation for the repetitive tasks they don’t enjoy such as unit testing. In fact, 66% of those surveyed believe unit test setup is mundane.
Achievable targets lead to satisfied developers
Survey findings also suggested that manager expectations tend to be slightly higher than developers can deliver. In the companies our respondents work at, for example, the average target for code coverage by unit tests is 63%, but almost half (48%) of surveyed developers reported that they have found it difficult to achieve these coverage targets. 42% of the developers we surveyed agreed that they have skipped writing unit tests in order to speed up new feature development.
As the developers we surveyed agreed that having realistic targets is important to their job satisfaction, ensuring they have the right tools to reach these targets is critical to maintaining their job satisfaction. So if management’s expectations are going to stay high—as they should—what supporting tools do developers need in order to achieve their targets? According to the research, the answer appears to be increased automation, with 86% of respondents agreeing that the availability of automation for repetitive tasks is a factor in their job satisfaction.
Which tasks should be automated?
Automation is frequently discussed as a key tenet of DevOps, but how and where to effectively introduce automation tools isn’t always clear in practice. Some development tasks are a better fit for automation than others. Does a task follow a set of rules? Does it need to be done often? Is it important to the quality or security of your software product? If the answer to all of these questions is “Yes,” then it’s probably worth automating.
Also important, however, is how teams feel about doing it manually: Do developers dislike this task? Will they do it if they don’t have to? When developers don’t want to find time to work on a task, there is an even greater reason to find out how to take it off their plates. In this way, automation humanises people by removing robotic work.
The stages of the software delivery lifecycle that are well suited for automation include deploying new releases, finding bugs, and testing—both creating tests and running them. Writing unit tests, for example, takes up 20% of a developer’s time, according to our survey. Unit tests are often repetitive and uninteresting to write, but they are an important part of catching unintentional changes in code that can lead to bugs. Still, 39% of developers wish they didn’t have to write unit tests at all. This is one area that can be automated for the benefit of everyone.
Automation benefits for code quality
Not only does introducing automation address a core cause of workplace dissatisfaction, but it also improves the speed of software development and the quality of the final result. 40% of the developers surveyed chose manual processes as a top factor contributing to poor software quality, likely because people are prone to making mistakes on repetitive tasks that they aren’t intrinsically motivated to do.
The organisations that attract and retain top talent by providing the support and tooling their teams require will also be the ones that produce quality software for their customers. Take care of your people and success will follow.
Written by Mathew Lodge, CEO of Diffblue