Four Kinds of Pair Programming

June 02, 2011 at 12:16 AM | Uncategorized | View Comments

In thinking about the pair programming that I've done, I realized that I can separate all of my past partners (all 6-8 of them) into four categories:

  • Equally skilled
  • Less skilled
  • Much less skilled
  • Skilled in a different domain

Of these, I have found the “less skilled” partners to be the most frustrating. Not because of their personality[0], but because during the sessions I've felt like there is a mutual understanding of the goal, but I would just be able to get there more quickly (for example, because I'm more experienced with the libraries or environment). I haven't felt this way with the “much less skilled” partners because I believe there is a mutual understanding that the session more akin to a tutorial… So, in my mind, the goal becomes “teach my partner” instead of “solve a problem”.

The times I've paired with an “equally skilled” partner do not stand out in my memory, so I assume they went okay.

My favourite pairing experience was when a friend and I had to figure out the inner workings of some example C code for a micro controller. My friend knew a lot about micro controllers, I knew a lot about C, and together we were able to reverse engineer the hideous example code much more quickly than either of us alone could have. It was a lot of fun.

[0]: as I write this, I don't have any specific people in mind, just memories of my experience.