Thursday, February 26, 2009

How Chad Fowler Found Good Programmers in India

In his essay GreatHackers, Paul Graham annoyed the industry with the assertion that Java programmers aren’t as smart as Python programmers. He made a lot of stupid Java programmers mad (did I say that?), causing a lot of them to write counterarguments on their websites. The violent reaction indicates that he touched a nerve. I was in the audience when his essay was first presented, in the form of a speech. For me, it sparked a flashback.

When I was in India weeding through hundreds of candidates for only tens of jobs, the interview team was exhausting itself and running out of time because of a poor interview-to-hire hit rate. Heads hurting and eyes red, we held a late-night meeting to discuss a strategic change in the way we would go through the candidates. We had to either optimize the people (or both). With what little was left of my voice after twelve straight hours of trying to drag answers out of dumbstruck programmers, I argued for adding Smalltalk to the list of keywords our headhunters were using to search their résumé database. But, nobody knows Smalltalk in India, cried the human resources director. That was my point. Nobody knew it, and programming in Smalltalk was a fundamentally different experience than programming in Java. The varying experience would give candidates a different level of expectations, and the dynamic nature of the Smalltalk environment would reshape the way a Java programmer would approach a problem. My hope was that these factors would encourage a level of technical maturity that I hadn’t been seeing from the candidates I’d met so far.

The addition of Smalltalk to the requirements list yielded a candidate pool that was tiny in contrast to our previous list. These people were diamonds in the rough. They really understood object-oriented programming. They were aware that Java isn’t the idealistic panacea it’s sometimes made out to be. Many of them loved to program! Where have you been for the past two weeks? we thought. Unfortunately, our ability to attract these developers for the salaries we were able to pay was limited. They were calling the shots, and most of them chose to stay where they were or to keep looking for a new job. Though we failed to recruit many of them, we learned a valuable recruiting lesson: we were more likely to extend offers to candidates with diverse
(and even unorthodox) experience than to those whose experiences were homogeneous. My explanation is that either the good people seek out diversity, because they love to learn new things, or being forced into alien experiences and environments created more mature, well-rounded software developers. I suspect it’s a little of both, but regardless of why it works, we learned that it works. I still use this technique when looking for developers.
- From Chapter 4 of Chad Fowler's book 'My Job Went to India: 52 Ways to Save Your Job'

Thanks to Pragmmatic Programmer for permission to use an excerpt from the book.

2 comments:

Chrisranjana said...

Absolutely. We hire programmers who have *really* done their final year academic projects. Since most of the candidates hire someone to do their academic projects.

Software Programmers

Phoenix said...

One simple way of shortlisting candidates with java as primary background is to query them about non-java object oriented environments; for example object-oriented programming in C. If the programmer has learnt enough to think beyond the way a particular programming language channelizations ideas, then he is your guy.