Bob On Development

Musings on the craft and business of software development









May 17, 2007

How to Hire Great Developers

Filed under: — bob @ 7:56 pm

In the past couple of days, a couple of great essays have surfaced that take my original riff on the topic of inane interview questions and improve on it.

First up is Worse Than Failure (sorry, I still prefer their old name, “The Daily WTF”), discussing Job Interview 2.0. I don’t know about the author’s assertion that Microsoft was the first to use the technique of asking prospective developers about such things as why manhole covers are round or how to estimate the number of gas stations in the US. But regardless — I’m with him on this one. Who cares why manhole covers are round? Why not look up the number of gas stations on Goog … er, on the web? The basic point, I think, is well taken, and is summed up by the following quote from WTF:

One reader shared with me the story of his brainteaser interview.

During a screening interview, I was asked how I would design a bike fit for someone visually impaired. I responded something to the effect of, “What, like, for blind people?”, and she answered yes.

I thought for a moment and then I responded, “Well.. a blind person riding a bike doesn’t sound like a very safe idea, so I would make the bike stationary, maybe with a fan blowing in the person’s face. He probably wouldn’t even know the difference.”

She was speechless.

Now, granted, he will not get the job. Despite the complete absurdity of the design request, and the complete practicality of his answer, the job will go to a candidate who manages to answer the question by designing an extremely overcomplicated solution for a completely non-existent problem. And that candidate will be the same person who designs their software.

Finally, Imram on Tech has a post making the point that there is a distinction between one’s knowledge of programming arcana and one’s ability to be a good developer. A sample:

There seems to be a popular misconception that if a software developer knows a lot about programming then it follows that they’re a good developer.

Returning to the football analogy, imagine you were back at school picking players for your team. Who gets picked first:

  1. The kids who are athletic and good at football
  2. The kids who are athletic and can make a good run down the pitch, even if they’re football specific skills aren’t that great.
  3. The kids who aren’t athletic but know how to play football
  4. The kids who aren’t athletic and know nothing about football

This is another excellent point. There is a widespread misconception (even stronger in some other countries than here in the US) that memorizing huge quantities of facts is a prerequisite for being a good developer. The truth is that basic ability is the first prerequisite — by some accounts I’ve read, 60% of the population can’t grasp the basics of programming if their life depended on it; some colleges screen applicants for their computer science departments by testing for this.

If you can conceptualize basic variable assignment and flow control, then the next step is to have and hone a great problem solving ability. Decent people skills are part of this. Raw knowledge comes in last, because if you have the ability to perceive, define and solve problems effectively then you have the ability to find knowledge when you need it and the motivation to educate yourself as and when needed.

This isn’t to say that experienced developers won’t have a great deal of knowledge in their heads. But it will be knowledge acquired in response to the problems they’ve already solved and/or are interested in, and their ongoing self-education will be driven by the demands of their current projects and their own curiosity. They will not simply memorize a bunch of stuff in advance. That is what reference materials and Google and a developer’s own corpus of code are for.

Bottom line: the last thing you want on your team is a developer whose mind is cluttered with irrelevant details but has no common sense, or who is prone to favor the most baroque and theoretical path to a solution.

A last point: even if these interview tactics were desirable, asking someone to answer these kinds of questions under the unique and artificial pressures of a job interview, is probably not going to produce accurate results anyway. You could argue that you want the people who are confident and can deliver under pressure, but I’d counter that if your work environment is under-resourced to the extent that it’s a pressure cooker, you’re going to burn out even super-stars. Hello? This is knowledge work, people. You need to provide a relaxed environment conducive to concentration, focus, exploration and continual improvement.

So how should you evaluate developers? My practice has always been to discuss real-world projects and problems we’re facing, and ask candidates how they would approach those problems. I am much more interested in the thought process that goes into analyzing the problem, the kinds of questions they ask, and whether their analysis and solution are valid, than I am in the minute details of how they would mechanically implement their solution. If they can discern what needs to be done, then they can be trained (or can come up to speed on their own) with any tools and practices in our environment that they are not immediately conversant with.

I also look for curiosity. Not the ersatz, abstract curiosity of someone who likes to solve obscure puzzles, but the strong drive to find pragmatic, better ways to accomplish the mundane things most businesses want implemented in software. Incurious people generally make lousy developers. It’s hard to have any fire in your belly for something that bores you. I’m looking for someone who’s actually enjoys continuous improvement — whose greatest pleasure is tweaking code and improving their development approaches to make them better even when not asked to, yet knowing the point of diminishing returns beyond which they should not go.

This brings up a fact which should be painfully obvious: developers should be interviewed by developers, not by managers with no current dev experience or by HR drones. Even more so than in many professions, “it takes one to know one”. This is the kind of stuff that just can’t be evaluated by anyone but an experienced developer.

2 Comments »

  1. I think one of the best ways to determine how good a potential hire might be is to ask them what blogs / tech news sites they read and what forums they participate in.

    If they don’t read any tech news, lets face it, that’s a no hire. Good programmers need to keep up with the current going-ons in the industry.

    I also believe that every programmer has an online trail of questions and answers from past projects that they have worked on. You can evaluate exactly how they go about solving specific problems by viewing the past issues they have looked for help on. It also gives insight into their ability to communicate complex technical problems.

    Bob responds: Agreed, mostly. The “online trail” is very useful for determining the (in)ability of a person to concisely articulate problems and solutions, and can often give clues to their emotional and social maturity as well (although, don’t hold a bad day someone had three years ago against them today; look for overall trends). In general, it’s also true that any good developer will keep abreast of developments … so long as it doesn’t go too far and become an uncritical acceptance of marketing hype, conventional wisdom, and herd thinking.

    Comment by Ryan Smith — May 18, 2007 @ 10:09 am

  2. Not sure I would necessarily consider what someone reads or doesn’t read criteria for hiring, Especially blogs.

    I think blogs have become so popular that you get a lot of people that just like to hear themselves talk. Its kinda like the whole MySpace craze.

    Some blogs are useful no doubt but many are just fluff. I still often find Reading straight from the SDK’s is still a great source of knowledge. My .02$

    Comment by Matt Unks — May 22, 2007 @ 11:17 am

RSS feed for comments on this post. TrackBack URI

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

(required)

(required)


Powered by WordPress

Augmentin Avandamet Rhinocort Elavil Gasex Glucotrol XL Zelnorm Vermox Penis Growth Oil Nymphomax Adalat Prograf Geriforte Medithin Avalide Lariam Viagra Erexor Sarafem Confido Himplasia Arimidex Fosamax ActoPlus Met Mentat Cardizem Hytrin Cafergot Lasuna Mycelex G Hyzaar Buy Pro Erex Buy Lincocin Buy Viramune Buy Micardis Buy Nymphomax Buy Omnicef Buy Effexor Buy Accutane Buy Levothroid Buy Cialis Jelly Buy Femcare Buy Amoxil Buy Aleve Buy Cephalexin Buy Lotrisone Buy Acticin Buy Touch Up Kit Buy Metabo UltraMax Buy Orgasm Enhancer Buy Penis Growth Pack Buy Levlen Buy Styplon Buy Aceon Cheap Loxitane Cheap Differin Cheap Geriforte Cheap Dramamine Cheap Sinequan Cheap Hoodia Cheap Nolvadex Cheap Womens Intimacy Enhancer Cheap Medithin Cheap Female Sexual Tonic Cheap Purinethol Cheap Inderal Cheap Flomax Cheap Orgasm Enhancer Cheap Zimulti Cheap Erexor Cheap Avandamet Cheap Ceftin Cheap Buspar Cheap ZMA Power Cheap Wellbutrin SR Cheap Hoodia Gordonii HG p57 Cheap Singulair Cheap Avandia Cheap Soma Credit reporting system For low credit scores Commercial credit report Understanding credit score Credit report and Florida free credit report Chase credit card status 3 credit reporting agencies Beacon credit score Federal credit reporting act To credit reporting agencies Fix your credit report On line credit card applications Credit card offers Card credit reward travel Credit score formula Credit reports from all Credit free instant report Annual report credit Order credit reports Instant personal credit report Credit beacon score Juniper credit card application Free instant credit reports Airline credit card miles National credit card debt Vue prepaid credit card Credit card debt calculator Chase credit card complaints Is credit score Elan credit card services Balance transfer credit cards Fix my credit score Credit card machines uk Check credit report fix Credit scores of Credit report uk Balance transfers credit cards Average credit score Increasing credit scores Is my credit score Business credit report Redit card pros cons Acceptable credit score Credit card business industrial Credit reports for Fast credit score increase Credit card debt facts On line credit report Free credit reporting Order credit report Chase credit card application Credit reporting act litigation Credit report consumer Clean up credit report Affect your credit score Credit report annual Credit report online Chase redit card Getting a credit score Credit card debt history Credit score after bankruptcy Credit scores meaning Stop credit card offer Ranked credit card offers Mobile credit card processing Linkpoint credit card machine Credit card applications in Credit report disputes Student credit card debt Credit reporting columbia house Credit report service Cheap credit card uk 0 credit card offer Credit report agencies Credit report score understanding Credit cards 0 apr Anual credit report Application aspen card credit Credit score higher Credit card debt management Citibank credit card offers Great credit card offer Free business credit reports Introductory offer credit card Money bank credit card Interpreting credit scores Get credit reports Free credit report Credit card apply online Credit score services Interest credit card offers Credit card debt eliminate Equifax credit reporting Instant credit card offer Credit card consolidation loans Bad credit score Credit card application uk Credit rating score scale Free credit score Experian credit report Credit report.com Article credit card debt Consolidation credit card debt Credit card consolidation uk Stopping credit card offer Read my credit report Obtain a credit report Mint credit card deal Raise my credit score Experian credit report uk Reports credit cards Hurt my credit score Discover credit card offer Good credit rating score Of my credit report Repairing credit score Credit reporting codes Credit reports on Hsbc credit card Credit card application online Repair my credit report Apr credit card offers Credit card debt advice Credit scores by Compare credit card offers Prepaid credit card companies Credit card debt laws Unlimited credit reports Annual credit report request Get my credit report Aarp chase credit card Card consolidation credit debt Credit report companies About credit scores Card credit debt free Transunion credit score Free credit card report Application card citi credit Corporate credit card application Credit scores work Consumer credit reports Credit scores mortgage Freecredit report Credit reporting service Credit card application with Credit scores and Personal credit report canada Credit report identity theft Free anual credit report Improving credit score Credit score uk My annual credit report Landlord credit report Credit score rates With a credit score Credit report government The credit reporting Up credit reports Instant credit reports Fre credit report Visa card bad credit Fair credit reporting act Freecreditreports Credit report repair service Free online credit report To increase credit score Bank one credit card American credit card debt Credit fix repair report Stop credit card debt Instant credit reports uk Low credit scores Colorado free credit report Free transunion credit report Of credit score Company credit report Credit reports with Personal credit score repair Credit scores only Obtain free credit score Cic credit report Eliminate credit card debt Free yearly credit reports The best credit score Credit report canada Wamu secured credit card Uk credit card debt Hsbc rs credit card Check credit report equifax Providian credit card company Secured credit or card Canada credit report Online Femcare Lipitor Muscle Pain Hydrocodone No Prescription Online Furosemide Online Inderal Online Maximum Lipotropics Online Viagra Soft Tabs Online Rythmol SR Levitra Actress Online Avalide Online Lynoral Online Neurontin Online Cardura Online Valtrex Online Fosamax Online Ditropan Online Diamox Online MetaboSafe Online Anafranil Online Viramune Online Advair Diskus Online Pro Erex Online Medrol Online Levaquin Online Echinacea Online Betnovate Online Prevacid Online Male Enhancement Oil Online Vasodilan Online Glucotrol XL Lorazepam Online Cymbalta Online Endep Online Confido Online Keftab Online Depakote Lortab Online Prozac Online Methox 400 Online Anabol AMP Online Tribulus Lipitor Side Affects Online Bentyl Online Dramamine Online Geodon Xanax Addiction Vicodine Online Indocin Online Trimox Online Shoot Carisoprodol 350 Mg Vicodin Hp Online Colostrum 800 Tramadol Cod Zoloft Withdrawal Online Cardizem Online Hangover Helper Online Isoptin Online Nolvadex Online Amaryl Online Penisole Cialis Dosage Phentermine No Prescription Vicodin Lorazepam Overdose Online Liponexol Online Sumycin Online Evecare Online Differin Online Urispas Online Biaxin Online Antabuse Online Ventolin Online Styplon Carisoprodol Soma Online Sustiva Online Prinivil Online Casodex Online Vermox Diazepam Online Cafergot Online Detrol Online Melatonin Zoloft Side Effects Online Trandate Online Reglan Xanax Dosage Lorazepam Addiction Online Avapro Adipex P Didrex Diet Pills Cialis.Com Ultram Online Calcium Carbonate Online Zyloprim Online Desyrel Online Ponstel Viagra Side Effects Xanax Withdrawal Viagra Alternatives Online GABA (HGH Booster) Online Probalan Viagra Dosage Online Orgasm Enhancer Hydrocodone Apap Online Flexisyn Adipex No Prescription Xanax Abuse Viagra Online Tofranil Propecia Generic Phentermine Online Online Mentat Online Zanaflex Online Noxide Online Loxitane Online Lukol Levitra Drug Online Extendaquin Alprazolam No Prescription Online Hyzaar Online Pletal Online Zovirax Online Cialis Soft Tabs Online Relafen Online Quibron T Online Paxil Online Rocaltrol Online Coreg Online Mevacor Carisoprodol Online Maxaquin Online Tenormin Online Remeron Online Evegen Online Claritin Ativan Drug Online QuickBust Diazepam Dosage Tramadol Hcl Online Cystone Online Nymphomax