Hiring the Best Coders
No one really disputes anymore that the best coders are at least 10 times more productive than the…er…not so good ones. Steve McConnell even named his blog 10x Software Development in order to ram home this very point.
So how do you go about hiring the 10x developers who are going to transform your company, make you a small personal fortune and allow you to retire next week?
One solution that I proposed in my post Is C++ The Only Real Language is asking your candidates one simple question: “Can you code in C++?”
If they answer yes then hire them. Otherwise show them the door and delete their CV from your hard drive. Wait! I’m only kidding. I know there are good programmers out there who don’t know C++. Somewhere. Probably.
More seriously Frank Wiles provides some excellent thoughts in his post A Guide to Hiring Programmers: The High Cost of Low Quality. The two pieces of advice I particularly agree with are:
- Focus on hiring good programmers in any language rather than hiring someone who knows a specific language
- Seriously consider offering flexible working conditions to strong candidates (i.e. working from home, part time, family friendly, flexi-time)
Additionally I would like to add three observations of my own on how to recruit the best:
Don’t Wait Until You’re Desperate
There is sometimes a temptation to believe that once you have won some work you can employ an extra developer or two to meet the resource requirement. But guess what, finding and hiring high calibre candidates in a few weeks is practically impossible. To build a strong development team you need to be constantly on the look out for great talent. If you are lucky enough to find some then you need to make sure that you have work for them to do. In his post Avoiding Hiring Mistakes: Be Ready To Break Schemas Pawel Brodzinski makes the point that if you find a “perfect” candidate then you should “find a place” for them on your team (I have to add that Pawel’s whole Avoiding Hiring Mistakes Series is well worth a read).
Coders Should Interview Coders
If you are not a developer then you are the wrong person to identify a strong candidate. Only good coders can identify fellow star geeks. You don’t have to take my word for it. In his essay The 18 Mistakes That Kill Startups Paul Graham spells it out:
“So how do you pick good programmers if you’re not a programmer? I don’t think there’s an answer. I was about to say you’d have to find a good programmer to help you hire people. But if you can’t recognize good programmers, how would you even do that?”
In this situation my advice is to identify one or two developers on your team that get the most done and get them involved in interviews. Note that they may not be the people you like most/make the best conversation/enjoy meetings. But that doesn’t matter: you want the ones that write the best code quickest.
Include a Practical Exercise in the Interview
In schools it is common place when interviewing teaching candidates for them to deliver a lesson to a classroom full of students. This is, of course, an excellent way of assessing their teaching ability. Similarly, for the last technical interview I was involved with, I found some production code that contained a bug for the candidates to fix. Interestingly candidates that seemed weak often surprised us in the practical exercise and were able to talk us through the program logic, ask relevant questions and propose solutions. Conversely a candidate who interviewed well did not necessarily turn out to be technically competent. To save yourself some time it is well worth including some level of techncal questioning as part of your telephone screening of candidates as suggested by Jeff Atwood in Getting the Interview Phone Screen Right.
Want to know what others think about what to look for when you’re hiring? It is one of the questions I have been asking in my series of PM Interviews.
1 comment so far
Leave a reply
[...] I’ve lately been challenged with the task of growing my development staff (if you’re a perl developer, know OOP and are interested in the Nashville area, by the way, contact me). As I do this, I find myself challenged with the age-old task: how do you recognize a truly great programmer? The kind of programmer that will grow with you as your products and business evolves?
While pondering this, I’ve run across a few articles that summarize things very well: [...]