By

October 15, 2015

How to Find, Hire, and Retain the Best Developers

Read more interviews with some of the world’s best developers on * or follow us on or follow us on .*

Image

To hire the best developers, you first have to know exactly what you’re looking for. For me, says Evans, “the number one thing that I look for is competency. If you’re not competent then you’re going to be a hindrance to the team.”

Then next is culture fit. “These days, you have to be very careful when you say cultural fit because everybody says you’re only looking for ‘white guys that graduated from your college’.” But Evans explains that this isn’t what he means, “cultural fit does not mean that you look like me, it does not mean that you think like me. What cultural fit means is that I’ve got a team that is currently working together and you’ve got to be able to play a part on that team.” This is paramount for Evans because as he sees it, “building that team culture is so important” as is “keeping the team cohesion”. “I’ve seen great teams make a bad hiring decision and totally destroy the culture of the team and the momentum of the team. Just because they got one person who dragged the whole team down,” cautions Evans.

So once you’ve settled on what exactly it is that you’re looking for, you need to consider how you’re going to find that person. Evans suggests that if that’s finding a developer in the local area, then “the first thing is to get involved in your local community. That means start attending your local developer groups on a regular basis. Go 5 or 6 months to build your relationships before you start doing any real recruiting. Even then, once you start, don’t just walk in and say ‘I’m here, I’m collecting Resumes’, but be the sponsor — buy the pizza and the beer…” It’s important to get this right, because “your local community is where you’re going to find your best resources.”

When it comes to writing a job ad, Evans stresses the need to put yourself in the developer’s position. When a developer is looking for a job, what they want to know is “‘can I afford to take the job? am I qualified for the job? how much does the job pay?’ That’s the important stuff. If you nail those, then you have a good chance of finding the developer that you’re actually looking for.” So, “number one, and I cannot stress this enough”, says Evans, “is put a salary or salary range on the job ad. You’re not limiting yourself… you’re not giving away any secrets because I guarantee that if you’ve already got developers, they’re talking to their buddies and we know how much you’re paying.” Then, it’s equally important to only put the skills that you really need on the ad. The tendency for some is to list everything they can think of, but if Evans sees that then “that’s a red flag immediately. What it tells me is that you don’t understand what you want, so you’re just throwing everything out there”.

Once you’ve got some applications for a position coming in, then you’re going to want to make sure they’re a good fit. Evans explains the approach he takes to make sure the team can work well with a candidate. “I get the entire team that the person’s going to be working within one room and I let the team ask questions until everybody is out of questions”. He does this regardless of the level he’s hiring for — “I don’t care if you’re Junior, Senior, an Architect or whatever, you’re going to get to ask any question you want of this person, as long as it’s a legal question”.

Another key aspect of this approach is that as the team manager, he doesn’t ask any of the questions. “My job is to sit back and see how the team interacts with this person and how this person interacts with the team. If I see a lot of friction, I’m thinking this might not be a good fit.” What’s more, everyone has to agree on who to hire. “It has to be a unanimous vote. I’ve actually had to walk away from candidates because I had one person say ‘I don’t think this person is going to fit well on my team’, and so we said ‘I’m sorry it’s not going to work’, because the team is the one that’s going to have to work with them. I’m just going to have to manage them, that’s the easy part. The team has to work with them on a day to day basis. If that team is not sold on the fact that this person is the person that they want on their team, I’d rather just walk away and find another candidate.”

“The final thing,” Evans says that he looks for, “once I have determined competency, once I know it’s a good cultural fit, is ‘can I afford them?’.” However, unlike in a lot of companies when it comes to salary discussions, Evans is clear about one thing — “I do not negotiate salaries. I ask the person ‘what do you need?’ I expect that person to be honest with me and tell me the number they need.” Then regardless of what that number is, “if it fits within my budget and it’s a reasonable price… then I say okay. I don’t come back with a counter offer. I don’t negotiate this at all because my feeling is… if they’re being honest with me then they’re going to tell me what they need to be happy with this. I don’t mind side projects, but I don’t want people to have to do side projects to make ends meet. Quite honestly, if they’re not being honest with me on their salary needs, I’m probably not going to want them on my team to begin with because they’re not being honest with me, period.”

“For most companies these days, their in-house development team is actually what drives the company,” says Evans. They’re the ones that “build the products that the company sells, or makes it possible for the companies to sell. So, while I’m never an advocate for setting developers up on a pedestal and saying we need to treat them like Demigods, I do think you have to respect the fact that you have to treat them differently. You cannot just say, ‘we have a cookie cutter, this is how we treat people’, Developers have different needs,” Evans says. “If I start a job and they hand me a laptop that has been used by three other people and I have to figure out how to make things work, then that’s a smell test that doesn’t pass. Companies have to understand that you’ve got to invest in good tools for developers.”

But how can you compete for top talent when Google and Facebook are offering top salaries with great perks? Evans suggests that you instead compete on respect. “I understand the mentality of free lunches and dry cleaning and all of this. Those exist so the company can keep the developer’s butt in their seat longer, and they exist for no other reason. It’s just a way to keep that developer on campus, focused on the job, for as long as possible.” Whereas, “if a small company builds a culture of respect, where they respect the developer, they understand that their job is a portion of their life and that their job is not their whole life, then you can attract better developers than companies that have the free lunches, dry cleaning, etc.”

The best way that you can show developers respect is to respect their time, says Evans. “I practice what’s called Servant Leadership. It was not unusual for me, when I was running teams, to first thing in the morning, brew up a huge pot of coffee and walk around to each of my developers around 9 am and refresh their coffee… this was just my way of saying my job is to hire good people and get out of the way and to make sure they have everything they need. My job is to serve them and also be what I call the ‘poop shield’. Any poop that comes in from above, my job is to keep it off my team. If a manager needs a meeting with somebody on my team, I’ll go. I will sit in that meeting,” explains Evans.

Ultimately, Evans says, you just need to “treat developers with respect, and understand that they have lives, and the main point of their lives is not to build you the next ‘Uber for Penguins’. You don’t have to put them on a pedestal, but they aren’t galley slaves either. You hire good people, you treat them with respect, you give them the tools that they need and let them do their job. That is the secret to a happy, productive, and awesome development team.”

Read more interviews with some of the world’s best developers on * or follow us on or follow us on .*