Pairing tete-a-tete

December 9, 2010 Pivotal Labs

At Pivotal Labs, we spend most of the day pair programming. The typical setup is an Apple iMac with a keyboard and mouse for each developer. We’ve been using the 24″ iMacs for a while, usually with a second 17″ display off to the side. But all our new machines are 27″ iMacs, and those are so big we don’t usually use the second display. The pair sits side-by-side at a desk facing the screen together. Here’s what it looks like:


We have had great success pairing this way at Pivotal. But while it is a good setup in a lot of ways, it falls short ergonomically. First off, both people have to sit off to the side of the display, which can cause leaning, slouching, and twisting to get into a position to both see and type. And it’s also hard to actually look at your partner without craning your neck around. Even though the desk is wide, keyboards and mice take up room, so there can be a lot of jostling and adjustment on the desktop, and chairs and such can collide as well. Those things aren’t terrible, but they do detract from the experience and my spinal fitness.

For a while I’ve been wanting to try and improve the situation. Earlier this year I sketched out a concept for how to set up a better pairing station. This week I’m pairing with Michael Sofaer, and we finally have the space, equipment and opportunity to try it as an experiment. Here’s how it turned out:


You’re doing it wrong!

The breakthrough is having a second display that mirrors the built-in display on the iMac. The second display and both keyboards/mice are all connected to the main iMac, so it’s one Mac system that can be used by two developers in collaboration.

Michael and I are both really loving this setup. It’s a lot more comfortable, we both get a better view of the screen, and it’s great being able to see each other so easily while we are working together. We are seated close enough that it’s easy to hear each other without raising our voices at all. And after a day of working in this arrangement I feel a lot better and my neck doesn’t feel out of whack.

Everyone who sees this setup asks if it’s hard to point at the screen to talk about stuff on it. I was a bit worried about how that would work out, but it turns out that using the cursor works great and it took almost no time to adjust to that. The one thing that feels a bit more difficult is watching for the subtle cues that let you avoid keyboard clashing. Experienced pair programmers will watch their partner’s hands in peripheral vision for hints about when they want to start typing or mousing. That skill takes most people a while to pick up, and I expect it will take more than a day or two for us to adjust to learning how to do that best in the new setup. But I think that being able to see my partner in my front quadrant view will more than compensate, once I learn new cues to watch for.

Equipment notes:

  • 27″ iMac + 27″ Cinema Display (or an iMac in display mode)
  • 6′ display port cable
  • 2 IKEA GALANT desks
  • 2 keyboards and mice
  • 2 gym balls :)

You can see in the photos that the tables are staggered. This is necessary so that the pair is close enough to be able to talk in a normal tone of voice. Sitting all the way across the table would not be intimate enough to work effectively. Our tables are 63″ long and 31.5″ wide. We found that offsetting them by half the width is about perfect.

Here is a sketch I made of a floor arrangement of multiple pairing stations. It’s easier to see the staggering here. You can also see how each pair is sitting closer to each other than they are to people in other pairs. Also notice this layout is biased for right-handed people. Using the opposite symmetry would be pretty crowded for mousing up against the edge of the table.


There is definitely an increased cost to set up tete-a-tete pairing stations. You need an extra monitor of good enough quality it can be someone’s primary display. You need an extra table per row, since the end spots can’t be used. (For us that’s not a problem since that would leave room for PMs to sit nearby.) The biggest issue for our office is that you need a lot more floor space for this arrangement. It probably uses more than twice the floor space of the old arrangement for an equivalent number of pairs.

I’m glad we had a chance to try this experiment, and I already consider it a success in terms of improved ergonomics and having a better view of your partner. Whether we’ll be able to use this setup long-term is a good question, one that I expect depends a lot on how much activity there is in the office. But I’m hoping…

About the Author


Colorized output for Cedar
Colorized output for Cedar

Thanks to Sean Moon and Sam Coward Cedar now has colorized output on the command line: If you'd like to ...

RSpec 2 Gotcha with polymorphic_path
RSpec 2 Gotcha with polymorphic_path

A quick gotcha we ran into when using polymorphic path and rspec2 today. In a controller test we had an as...

SpringOne. Catch all the highlights

Watch now