The burden of hiring software developers

(I wrote this for my personal blog, but it’s obviously an important topic here.)

I've had the unusual opportunity to hire and manage people on and off starting with my first real job after college. I think it's one of the hardest things to do because it's time consuming and expensive to make mistakes. When I first had to assemble a team in a consulting gig (I think it was 2005, for context), I found out it's even harder to hire software developers.

First off, check out my former boss, Jonathan, and the talk he did with another guy about how not to do technical interviewing. The irony to people who have had bad experiences interviewing at Microsoft is not lost on me, but Jonathan gets it. Obviously, since he hired me. :) Go rate up his video!

The problem in hiring starts with the fact that resumes don't mean much. You look for the key word matches for what you're looking for, and from there look at the depth and breadth of the experience. If it doesn't smell like bullshit, you move on to a phone screen. From there you further dismiss the fakers. By the time you bring someone in, I would guess that 90% of the time you can already be pretty sure they would be a good fit, and you can have your choice of candidates provided they like you and your offer.

But it's the screening part that is such a huge burden. The resume part isn't that big of a deal. I can get through a stack of resumes pretty fast and figure out who I want to follow up with. It's the next stage of the screening that takes too damn long and sucks the life out of you.

My typical phone screen is more about the gauging the person's knowledge. I don't ask them to identify acronyms like SOLID or DRY (I can never remember what the former stands for), but I can walk them through questions about language and object-oriented patterns and get a pretty good feel for where they are. But even if you're trying to get a faker off of the phone, these still take a half-hour at least, and that's not counting the overhead in agreeing to a time to talk.

If I bring someone in for real interviews, that's going to take at least three hours, including some time working on a real software problem with, you know a computer. I don't complain about that part, it's the screening process that is a huge burden.

Hiring people, even for something as technical as a software development position, is still largely a problem with human beings. Expectations are set, social contracts have to be followed and of course people have to get along. It just doesn't feel like it should be so inefficient.

First off, job boards are nearly useless. They're just keyword matching devices. The quality of candidates varies by board, but it's still not a great value prop. Staffing agencies add even less value, especially now that it's common for a person sitting in India or China to just roll through a database, making keyword matches, spamming people.

I've been talking with people a lot lately about how to make the discovery and vetting process more efficient. The use cases for smaller to medium sized businesses in particular interest me, since they might not even have someone who is technically proficient enough to make that first critical hire.

I'm open to suggestions. How do you make the discovery and vetting easier? Is there a technical process that could help?


  • Is hiring really that much of a burden? You're hiring someone who will (hopefully) be part of a team for years and add high value to the project / team / company.

    I think cutting the hiring process shorter and thus having less personal contact throughout the process would increase the chance of mis-hiring: hiring someone who meets the spec but won't work with the team. And a mis-hire alone, it's effect on team performance and morale is much more expensive than the whole cost of hiring.

  • Your first incorrect assumption is that someone you hire will be around for years. It happens in some places, but good people on average are reluctant to stick around more than 18 months. Your second assumption is that small and medium companies have the human bandwidth to engage in the time required for the screening. They usually don't.

  • I don't look at resumes. I don't do phone screens. I haven't had to hire a developer for quite a while, but I like this:

    1. Send an email with three questions:

    A. What do you do today? (Unemployed is okay; just explain what personal projects you are working on)

    B. What do you want to be doing?

    C. What has been the biggest contributor to your success to date?

    2. Forward responses as blinded candidates: Candidate A, Candidate B, etc. to the team with the open spot.

    3. Ask them which ones they want to pair with on Skype or TeamViewer.

    4. Ask them which ones should then come in for a face to face interview.

    5. Get feedback from everyone on the team. Score each candidate and re-blind them.

    6. Review the scores with the team.

    7. Make an offer to the leading candidate.

  • Is there a market for a professional services company that would interview you, the hiring manager, get a really good feel for what you are looking for, and then really interview and test and put candidates through their paces before ever meeting you?

    I realize professional recruiting firms are supposed to do this, but you are right. They are just keyword monkeys who spam the heck out of candidates and hiring managers. I loathe them.

  • You might find it advantageous to have the candidate do an online assessment with a company like IKM before you even talk to them.

  • Jeff, I think it would be very difficult to outsource the final decision. I wonder if there is a "guild" or some other pre-qualifying service organization that could help to eliminate the waste of time that so many interviews turn out to be. I don't know the answer.

  • I didn't say anything about outsourcing a final decision. I'm talking about making the screening more efficient.

  • Yes. We're on the same page there. I guess I'm just simply trying to figure out how to fix the currently broken and useless IT recruiter model.

Comments have been disabled for this content.