Attracting and Keeping Developers

A friend of mine has been working in managing developer teams. He wrote to me recently to ask how do you attract and keep developers?

Whilst I haven’t worked in a management role myself, I’ve worked in technology companies of different shapes and sizes. I’ve seen some approaches work, and some approaches fail miserably.

Firstly, technology is best viewed as a creative discipline. This is explored in the excellent book Peopleware: Productive Projects and Teams.

With this in mind, what attracts developers? Developers want to create. The best workplace is one where the team is empowered and able to explore building the best solutions for the company.

You can usually spot companies that have taken this to heart. Good positive indicators include:

  1. Can developers get their hands dirty with code on the first day? Some companies take this so seriously that developers are shown how to commit code before showing them the bathroom!

  2. Is there a developer team blog? I’ve never met a developer team that didn’t tackle interesting technical problems. Blog posts show solutions that have been explored. They are a time investment, but I suspect that the BBC attracts more front-end developers with one blog post on browser testing than many job adverts.

  3. Does that team have a presence on GitHub? Virtually every developer team will be using open source software in some capacity, and finding bugs in software is a fact of life. Good developers send bugfixes back. Developers will sometimes write little reusable libraries or tools, and everyone benefits if they have the freedom to release these back to the community.

  4. Are the developers given some discretionary time to make things better? Google gives its developers 20% time to work on anything they want that’s vaguely work related. Some companies have ‘hackdays’ where the developer team stops normal work and focus on building a specific prototype or feature.

Companies giving off these signals find it much easier to attract people. What makes them stay?

  1. Working with smart, friendly people. I’ve worked at companies where every code change was reviewed by teammates before being merged and deploy. This was a policy we chose, rather than management requesting it. It meant that we knew what each other were working on, we could share knowledge, and it increased camaraderie.

  2. Smooth deploy process. Etsy sometimes deploy 50 times a day! I’ve never reached that quite that deploy rate, but when it’s very smooth it’s very satisfying to work with. Developers can see their changes on the live site, which is satisfying and motivating.

  3. Team culture. Great teams have internal mailing lists, an internal chat room (typically IRC or HipChat) and an internal wiki. These contribute to a shared identity, a shared culture, and a shared knowledgebase. Developers are more reluctant to leave companies when they feel part of it.

  4. Acceptable pay. Whilst I believe the previous issues are often more important, staff will leave if there is a significant pay difference.

A team that’s inspired, empowered and free to experiment with solving problems to the best of their ability. That’s what technology is about.

Recent Posts

Difftastic, the Fantastic Diff

The Siren Song of Little Languages

How High Are Your Tests?

Helpful: One Year On

The Emacs Guru Guide to Key Bindings