Tuesday, June 5, 2012

Recruiting Good, Affordable Engineers During A Talent Crunch

You've recruited all of your coder friends, but you still need to fill open positions on your software team. As soon as you look outside your own network of contacts, you're going to quickly learn that every company like yours is struggling to find software engineers that don't suck at a price that doesn't break the bank. You're not in a position to acqui-hire a pre-existing team of developers, hiring Pivotal Labs blows your long-term budget out of the water, and many of the applicants you're finding don't have the skills for which you are asking. Are you just totally screwed? No! It's possible to build a great software team on a budget if you're willing to work within real world constraints.

Here's an incomplete list of things you can try to find a coder on a budget:

  • Focus on a candidate's ability to grow with your needs.

    If you can't find someone who has the skills you need, try finding someone who can learn what you need. Test a candidate's ability to learn a new skill or simply look for a candidate who enjoys picking up new skills for fun. There's a reasonable chance are a candidate who knows 2 or 3 programming languages really well will be conditioned and willing to pick up whatever tools you need them to learn.

  • Ask everyone you meet if they happen to be a software engineer.

    If they are, now you're talking to a potential hire. I recently struck up a conversation with a person walking down the sidewalk in Palo Alto. It turned out he was a software engineer visiting from out of town to attend a conference. I asked if he'd be interested in checking out my client's office and 15 minutes after I met him he was interviewing with the hiring manager.

  • Be less Agile.

    I see a lot of companies become so fixated using Agile processes because they lose sight of the fact that a processes is meant to serve the team, not the other way around. Your end goal is to ship great product. If you find yourself turning away a large number of good engineers because they don't fit into your Agile paradigm, you may be building a monoculture of rules lawyers that lack perspective on alternate points of view. Good software was written by talented people before Agile came along.

  • Lower your expectations.

    Contrary to popular belief, not everyone on your team needs to be a superstar. Some of the work you need done is tedious, time consuming, and not that challenging. There are people who enjoy that type of work. Just remember that even on non-critical tasks, you still need someone who possesses the judgement necessary to do the job well.

  • Put people to work.

    At some point, you'll talk to an engineer that you really want to hire, but you can't quite seeing them being effective. Don't waste time trying to predict the whether someone would work out. Hire the person for 2 days or 2 weeks. Give them a shot of showing what they can do. Be prepared to lose a little money using this technique, not everyone will work out. The one's who do will not only be proven, they'll feel more confident, secure, and wanted in their position when they realize you took the time to actually get to know them.

  • Make more friends.

    Chances are you'll need to hire again in the future. Get out there. Meet people who do what you need and then hire them.

  • Implement a training program.

    It's natural to think that training is expensive and you can't afford it as a company. That's not true. Here's a simple example. Let's say a less experienced engineer costs you $X per year, and a more experienced engineer costs you $X+40K per year. If you plan on retaining them for 2 years, what kind of training program could implement for $80K? I don't know, but you can use it over and over again, and it's probably worth at least exploring as a viable option.

No comments:

Post a Comment