Want to hire and retain high-quality developers? Give them stimulating work

Software developers are some of the most in-demand workers on the planet. Not only that, they’re complex creatures with unique demands in terms of how they define job fulfillment. With demand for developers on the rise (the number of jobs in the field is expected to grow by 22% over the next decade), companies are under pressure to do everything they can to attract and retain talent.

First and foremost — above salary — employers must ensure that product teams are made up of developers who feel creatively stimulated and intellectually challenged. Without work that they feel passionate about, high-quality programmers won’t just become bored and potentially seek opportunities elsewhere, the standard of work will inevitably drop. In one survey, 68% of developers said learning new things is the most important element of a job.

The worst thing for a developer to discover about a new job is that they’re the most experienced person in the room and there’s little room for their own growth.

Yet with only 32% of developers feeling “very satisfied” with their jobs, there’s scope for you to position yourself as a company that prioritizes the development of its developers, and attract and retain top talent. So, how exactly can you ensure that your team stays stimulated and creatively engaged?

Allow time for personal projects

78% of developers see coding as a hobby — and the best developers are the ones who have a true passion for software development, in and out of the workplace. This means they often have their own personal passions within the space, be it working with specific languages or platforms, or building certain kinds of applications.

Back in their 2004 IPO letter, Google founders Sergey Brin and Larry Page wrote:

We encourage our employees, in addition to their regular projects, to spend 20% of their time working on what they think will most benefit Google. [This] empowers them to be more creative and innovative. Many of our significant advances have happened in this manner.

At DevSquad, we’ve adopted a similar approach. We have an “open Friday” policy where developers are able to learn and enhance their skills through personal projects. As long as the skills being gained contribute to work we are doing in other areas, the developers can devote that time to whatever they please, whether that’s contributing to open-source projects or building a personal product. In fact, 65% of professional developers on Stack Overflow contribute to open-source projects once a year or more, so it’s likely that this is a keen interest within your development team too.

Not only does this provide a creative outlet for developers, the company also gains from the continuously expanding skillset that comes as a result.

Provide opportunities to learn and teach

One of the most demotivating things for software developers is work that’s either too difficult or too easy. Too easy, and developers get bored; too hard, and morale can dip as a project seems insurmountable. Within our team, we remain hyperaware of the difficulty levels of the project or task at hand and the level of experience of the developers involved.

When we find that a project is not challenging enough for a developer, we task them with training a more junior team member on completing the same tasks. This gives the more experienced programmer a chance to hand off work that is too basic and gain management and training skills in the process. In return, the junior developer gets the opportunity to work on something more challenging while gaining new skills and knowledge.

It’s vital to ensure that developers are in an environment of constant learning in other ways: You should always try to make sure that the team’s experience is varied enough for developers to feel like they can learn from each other, even if there is a hierarchical structure. The worst thing for a developer to discover about a new job is that they’re the most experienced person in the room and there’s little room for their own growth. You can avoid this by allowing people to follow their individual growth path according to their ambitions, which leads to diversity of knowledge, while fostering a culture of peer learning and sharing.

While hiring, you can get candidates to complete a trial project with the rest of your team so they can see firsthand who else they’d be working with and what they could potentially learn.

Cycle projects between team members

Inevitably, there will always be some less-than-desirable work to do within the field of software development. When DevSquad has been faced with projects that are centered around the more mundane tasks of finding and fixing bugs and maintenance work, we avoid situations where this is the entirety of a developer’s workload.

For those who do have to work on such projects, we ensure that this isn’t for too long and that another team member is swapped in to take over after a set amount of time and ease the burden of the duller work. By mixing in the creative projects with more routine ones, you are still able to satisfy the itch of creative “building” work and keep developers stimulated.

In fact, adding in variation is a good idea even when the projects are creative and stimulating, as too much of one thing can get monotonous in any case. Stay aware of this and check in with team members who have been working on the same project for a long time to see if they might need a break to work on something fresh.

Let them work to their own beat, but make sure management is clued in

A certain level of autonomy is vital for developers to excel: If they feel like they are being micromanaged, this will instill a sense of distrust from the top, so it’s vital that they are trusted as experts to solve the problems on their plate.

This means being open to ways of solving problems and building products that you might not have otherwise embraced — just because the path wasn’t how you envisioned it, doesn’t mean it’s not the right way.

However, going too far in the other direction is a risk too. Like any employee, developers need managers that are committed to their growth and development. If their manager has too little understanding of the developer role and what’s possible within their remit, they’re going to feel like their growth options are limited and they don’t have the necessary support.

Fostering an environment of creativity, job satisfaction and future development will require work on the part of leadership to monitor employee engagement and stimulation levels. By holding regular open-forum discussions and 1:1s where team members feel comfortable to express anything that’s holding them back, you can keep a keen eye on those that aren’t feeling fulfilled and rectify the situation.

Ultimately, employers have a responsibility to ensure that their teams find the work meaningful and that it contributes to their overall quality of life. Not only is it the right way to treat your team, but when developers are more stimulated, the standard of their work goes up, along with productivity levels and general morale.