Close
Glad You're Ready. Let's Get Started!

Let us know how we can contact you.

Thank you!

We'll respond shortly.

LABS
Pair Programming Matrix

(Update 07/17/2012: Added link to Pair Programming Matrix Google Doc)

(Update 08/06/2015: Fixed the Pair Programming Matrix Google Doc Link)

At Pivotal Labs we consider ourselves to be expert pair programmers, but sometimes even we need help. We identified (thanks to a retrospective) that we were being very unbalanced in our pairings: some developers seemed to pair with each other often while rarely paring with others. We wanted a lightweight means of enforcing balanced pairing. That’s when someone remembered the pairing matrix.

Pair Programming Matrix

A blog post titled “Pair Programming Matrix” inspired us to try our own pairing matrix. It’s a grid with a cell intersecting each pair of developers. Here’s a photo from the original article:

We thought we would give it a try, only using a Google Spreadsheet with some fancy conditional formatting instead of a whiteboard

Upshot

Overall the pairing matrix serves it purpose: it helps us have much more balanced pairings. We’ve been using it for several months and will likely continue using it so long as it seems useful.

It strikes me that a pairing matrix would be a good way for team new to pair programming to add a bit of helpful structure. I would hesitate to add this structure if it’s unneeded: “if it ain’t broke, don’t fix it.”

Pros

  • Exposes “holes” and “hot spots” when developers are not pairing together or pairing too often
  • Easy to use, reset
  • Can be a simple way for teams new to pairing to get started

Cons

  • Time off skews the matrix
  • Does not work well when team structure fluctuates often
  • Becomes unwieldily with larger teams

Examples

Here are some screenshots of pairing matrices at different stages. Team structures changed and thus the featured developers were not always the same, but you get the idea.

Early in the process. We already have a hot spot!

Pairings are starting to even out.

Over time we were much more balanced.

Eventually we needed to reset.

Too big!! We abandoned this and made the team smaller.

Make Your Own Matrix

By popular demand, I have made a blank, read-only copy of our pairing matrix, complete with conditional formatting. Feel free to duplicate it and modify the copy. Please post your own modifications and optimizations in the comments.

Link: Pair Programming Matrix Google Doc

Comments
  1. Hugo Barauna says:

    Could you share the spreadahwet with us, so we can see the conditional formatting?

  2. Joe Moore says:

    Hugo — Here you go! I’ve also updated the post with a link to a read only, duplicatable copy of the pairing matrix. Enjoy!

    [https://docs.google.com/spreadsheet/ccc?key=0AkuIWCNse5R5dFVHR1ZHZTF6VmdlUzhJa1NGbGRzOEE](https://docs.google.com/spreadsheet/ccc?key=0AkuIWCNse5R5dFVHR1ZHZTF6VmdlUzhJa1NGbGRzOEE)

  3. Ryan says:

    Why do you strive to equalize pairing? People will determine on their own with whom they are most efficient. Why break up productive pairs?

Post a Comment

Your Information (Name required. Email address will not be displayed with comment.)

* Copy This Password *

* Type Or Paste Password Here *