Even in today's economy, tech companies regularly complain that they can't find enough qualified candidates to fill software development positions. You might expect them to loosen their requirements and provide more training as a result, but actually the opposite seems to be true: Screening procedures are getting tighter. The latest trend is to subject interviewees to elaborate quizzes designed to assess their coding and problem-solving abilities.
The company best known for this is Google. Past applicants tell tales of a head-spinning battery of coding problems, riddles, and brain teasers, many of which seem only tangential to the task of software development. Other large companies have similar practices -- Facebook and Microsoft being two examples.
[ Speaking of quizzes, see if you can pass InfoWorld's programming IQ test, round 1, and programming IQ test, round 2. | Get software development news and insights from InfoWorld's Developer World newsletter. ]
Are these kinds of tests the right way to hire developers for your business? Maybe. You'll need to assess an applicant's skill in one way or another, but it's also possible to take the whole interview-testing concept too far. Here are a few thoughts to keep in mind when crafting your test questions, to avoid slamming the door on candidates unnecessarily.
1. Recognize that tests are artificial scenarios
What's more, not everyone performs equally well at tests, and candidates are often under a lot of stress during job interviews in general. Don't assume you can gauge candidates' personality and working style based solely on their test performance.
2. Don't set the bar too high
True, some amount of software development involves crafting elegant new functional units and designing novel algorithms. But a good portion of it is devoted to considerably more menial tasks, such as debugging, refactoring, and code maintenance. Before you craft an interview exam that would put Bell Labs engineers to shame, ask yourself whether a candidate with a doctorate in computer science would really feel fulfilled working on the tasks your position actually requires.
Also, don't overlook the value of hiring candidates with less experience and training them to work in your company's style. Not everyone who takes an interview exam should have to score an A to pass.
3. Stick to the job at hand
For example, if you're mostly a Java shop, it makes some sense to ask candidates to provide code samples in Java. But don't give candidates a problem in Lisp just to throw them a curveball. Likewise, unless you're working on embedded systems, it doesn't make much sense to grill candidates on which compiler options will produce the smallest object files. If the questions focus on trivia rather than your actual work environment, your test will have as much real-world value as a pub quiz, and you'll end up excluding candidates essentially for no reason.
4. Don't neglect the human element
That's why you should put equal focus on ascertaining candidates' working styles as on their coding skills. Be honest about your organization's workflows, deadlines, and pressures. Ask candidates how they prefer to work and be managed, and encourage them to ask questions about your company and how it operates. Even a candidate who performs exceptionally on programming quizzes might be a bad fit for the position, so always counterbalance test results with less formal interviews.
5. Don't let HR be a barrier
Even worse, many HR departments are now using automated systems as the first phase of the hiring process. Before they can submit a résumé, candidates are asked to answer a series of questions on an online form; for example, "How many years of experience do you have with .Net?" Answers that don't fit the predefined profile for a position can effectively blackball a candidate.
These kind of pass-or-fail quizzes are the worst kind of interview exams, and they should be discouraged. Instead, managers responsible for hiring developers should accept that they will need to take a more hands-on role in screening applicants, as time-consuming as that can be.
6. Employment is a two-way street
This article, "Tough tests flunk good programmer job candidates," originally appeared at InfoWorld.com. Read more of Neil McAllister's Fatal Exception blog and follow the latest news in programming at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.