Mark Needham

Thoughts on Software Development

Pair Programming: In interviews

with 8 comments

I came across a couple of quite interesting blog posts recently which described some approaches to interviewing which suggest a more empirical approach to interviewing whereby the interview is treated more like an audition for the person being interviewed.

I like this idea and it’s something that we do when recruiting developers in a pair programming interview.

The general idea is that we pair with the candidate as they go through a coding problem. It’s perhaps a little different from a normal pairing session in that the interviewee is more than likely driving for the majority of the session.

Sometimes we might also have another interviewer observing the pairing session and giving input where necessary.

While many people may not have specifically pair programmed before nearly everyone has worked with someone else at one computer on a problem so I haven’t ever found that a candidate finds it too much of a leap because they’re used to working alone.

One of the really cool things about a pair programming interview is that it’s much closer to what a real situation on a project would be like which I think helps you to gain a more accurate picture of the skill level and potential of the interviewee.

As an interviewer you get the chance to see how quickly the interviewee will pick up new ideas, to an extent how well they work with other people and first hand experience of their level of expertise when it comes to coding.

From my experience of other types of interviews it can be quite difficult to tell exactly how much knowledge someone has in a specific topic but in a pair programming you can just see for yourself so it works out quite well in that sense.

It’s certainly not fool proof and I quite like the way that Hash Rocket have taken this idea to the next level and get people to come there and pair program with them for a week before they get hired.

This seems like the next logical step and I guess if you have the ability to do this and candidates are prepared to give up their time then it’s a really useful approach.

As Knut Haugen points out, the interview process is as much an opportunity for the employee to work out if they actually want to work for the potential employer and I think having the opportunity to pair with some of the people who work there is a great chance to assess this.

Dave Nicolette suggests that the pairing part of the interview process is considered the only meaningful part of the interview process in the team he’s coaching and while I’m not I’d go that far I do think it’s a very valuable approach and one I’d recommend even if you don’t pair program all the time on your team.

Be Sociable, Share!

Written by Mark Needham

February 25th, 2010 at 8:03 am

Posted in Pair Programming

Tagged with

  • Derek Hammer

    Coming from the other perspective, I can tell you that pairing with someone (Brian Guthrie) was a refreshing, fun and relaxed part of the interview. I really enjoyed it.

    Another benefit is that is creates a bond between the two programmers that are paired (at least, it did in my case). I was able to share something common (a love of programming) between me and someone that I would potentially work for. I knew that if I needed to talk about something I was concerned about with coming on board at ThoughtWorks, I could talk to Brian.

    As the interviewee, I felt more connected to the places where I paired (I also interviewed at 8th Light and they did an all day pairing session) than to the the places where I didn’t. When I was interviewing for these companies, I didn’t know anyone personally. When I left ThoughtWorks’ and 8th Light’s offices, respectively, I felt connected to at least one person.

  • Pingback: Markus Tamm » Blog Archive » Links 26.02.2010

  • http://www.jrkincaid.com Josh

    I would out and out reject a job where they would want me to pair for week before I was hired. Why not just have a probationary period instead?

  • Mark Wilden

    I agree with Josh. A week of my time is worth thousands of dollars. Is a job at Hashrocket worth such a risky investment?

    Plus, it doesn’t scale. Imagine applying for eight such jobs.

  • http://www.markhneedham.com Mark Needham

    I guess the type of person who works at Hash Rocket would consider it a fair trade off to give up their time to do the week long pairing interview but you are right it wouldn’t scale if you were interviewing for multiple jobs.

  • Mark Wilden

    I should also say that I wouldn’t consider a job that *didn’t* make pairing part of the interview process. It’s a terrific way for each party to evaluate the other.

    I don’t like to pair program as a rule, however: http://mwilden.blogspot.com/2009/11/why-i-dont-like-pair-programming-and.html

  • Pingback: Interviewing styles tell the company/team « Updates from a continuous developer

  • http://www.rajiv.com/ Rajiv Pant

    p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Calibri}
    p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Calibri; min-height: 17.0px}
    p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Calibri; color: #1a00ee}
    span.s1 {text-decoration: underline}

    Here is a related article I wrote back in 2007. Since then I’ve continued to experience that ‘working interviews’ are often more effective than traditional question and answer interviews:

    Interviewing By Putting To Work

    http://www.rajiv.com/blog/2007/04/17/working-interview/