I don’t think a year passes that I’m not referred to Joel Spolsky’s seminal essay on developer interviewing – “The Guerrilla Guide to Interviewing (version 3.0)“. I read version 1.0 of his essay a long time ago, but it’s a good re-read. If you haven’t read it yet, go read it right now. It’s a great guide to interviewing software developers.
In his blog post, Joel says there only two things you want to from a software developer candidate:
In principle, it’s simple. You’re looking for people who are
- Smart, and
- Get things done.
That’s it. That’s all you’re looking for.
Joel is probably simplifying to clarify his essay. There are a few more things to you might want to add to his list:
- Decent hygiene
- Good communication skills
- Normal level of neurosis (we’re all a little neurotic in our own ways)
But the biggest addition to the list, the third thing I always consider along with “smart and gets things done”, is:
#3. Not a Jerk
First of all, let’s define what a jerk is. You don’t want to work with a jerk, but you also don’t want a spineless wimp on your team who won’t speak up when he or she has a great idea, and won’t voice concerns when someone else has a bad idea. Everybody has opinions, and you’re not always going to be in agreement. Someone that has different opinions from you and chooses to defend them is not a jerk.
So, a jerk is NOT:
- Someone who disagrees with you.
- Someone who is validly confident (maybe even kind of cocky) in their abilities.
- Someone who is having a bad day or a temporary break in judgement or maturity.
A jerk IS:
- Someone who makes a pattern of treating someone less powerful or his peers hurtfully or disrespectfully.
- Someone who can’t be bothered to consider someone else’s ideas.
- Someone who is not a team player.
- Someone who takes credit for other people’s ideas.
Steve McConnell has a great essay on dealing with problem programmers, but the best thing you can do is keep them from getting on your team in the first place.
So, how can you tell if your candidate is a jerk? Like most interviewees, a jerky candidate is probably at their most agreeable and charming during the interview. Asking them in the interview “if you were a flower, what kind of flower would you be”, and hoping they don’t say “thorny rose” might not cut it. Here are a couple of ways to expose a hidden jerk:
Take him out to lunch. Use this time to create a more relaxed environment and watch how he treats the wait staff. I once had lunch with a candidate who ordered a veggie burger, then chided the waiter who forgetfully asked how he wanted his burger cooked. That, and other comments he made, led us to drop him from consideration.
Have your most junior developer interview her. If your candidate will be filling a senior position, see how she interacts with junior members of the staff. If she treats the junior developer with aloofness, disregard, contempt, sneers, or noogies it’s a no-go.
Check the candidate’s references. Sure, most candidates will give you references that they’re pretty sure will speak well of them, but a particularly jerky candidate may have such a big ego they assume the reference will have nothing bad to say about them, or they may have burned so many bridges they don’t have anyone to speak well of them. When talking to the candidate’s references, keep an ear open for weasel words or damning praise like “really great guy for your team, if you can find a special place for him”.
Use your network discretely to find out more about your candidate. This is tricky because the candidate may not want her employer aware that she’s looking for a new job, and you don’t want to be the jerk by letting her employer know she’s interviewing. Don’t approach one of the candidates current co-workers unless you know the co-worker well enough to be sure they will be discrete. Even better, you may know people who used to work with the candidate, but no longer do, and they can let you know what she’s like to work with without putting her at risk.
Ask the candidate to describe a mentorship experience. If he or she speaks negatively about the experience, you may have a candidate who would be a jerk to junior members of the team.
Don’t some jerks do really great things?
“Well,” you might say, “What about someone like Steve Jobs? By many accounts he was often a jerk, but his business acumen and ability to drive a team to create great products is unquestioned. Wouldn’t you like to hire someone like that?”
First, understand that being a jerk and being a great employee are not correlated. Steve Job’s unfortunate tendency to treat others badly was most likely not a contributor to his business success. There are many other successful tech CEOs and founders who have no record of being jerks.
In fact, it’s usually the opposite. I’ve worked with some very smart and hard working individuals who were often asses to other people, and despite their talents have not had stellar careers. I attribute much of that to the fact that they’ve made many enemies along the way, and burnt many bridges.
Second, if you feel compelled to hire someone who is probably a jerk because you think he or she can do brilliant things, consider potential risks to the business. In his book The No Asshole Rule: Building a Civilized Workplace and Surviving One That Isn’t, Robert Sutton lists many risks of having a high-functioning asshole on your team, which include:
- Lawsuits from mistreated employees
- Top people leaving to work with someone who treats them with respect
- Lower morale and lower performance from those left behind
Yes, some jerks do have great skills, but you’ll need to carefully decide whether those skills are worth the risks to your team and your organization.
Great Candidate, Great Employee
The best candidates will be smart and get things done, and they’ll be good team members who have “strong opinions weakly held“. That is, they’ll be willing to defend their opinions, and at the same time consider the arguments of other team members, and change their opinions based on the facts. They’ll be good mentors for junior members of the team, and they’ll make your organization a place where other great candidates will want to work.