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

Let us know how we can contact you.

Thank you!

We'll respond shortly.

  • Blog Navigation
Pairing tete-a-tete

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…

  • Davis W. Frank

    I can confirm that this setup is less awkward for high-fives when your tests go green.

  • WT

    Genius. I would pay for the second monitor myself if we had this at my office.

  • @dwfrank, you read my mind. the first thing i thought about when i saw this is the sweet sweet high fives.

  • I like this a lot!

    Couldn’t you zigzag and just have two developers per desk and an empty back side? Not saying it’s better, but it’s possible, no?

    Here’s a terrible Skitch rendition of what I mean:


  • Excuse my knowledge of the IKEA catalogue, but there are also half width GALANT desks that could be used on the ‘ends’ of that setup.

    Just a thought.

  • To avoid having an extra monitor, if you’re the “second” you could use your own computer (even your notebook if the res is good enough) with full screen screen sharing. The only disadvantage is a little lag, but for coding and on a fast network it’d be fine.

  • siraf

    Hey Pete and Mike, you should be aware that the use of yoga balls as office chairs is probably an [ergonomic mistake](

    I really dig the setup though. Kudos on the vocal considerations.

  • siraf

    Sorry Josh, for some reason I read “Pete”.

  • Josh Susser

    @Matt: That zig-zag layout would be more compact, but I expect it would be unusable since you’d be sitting closer to someone you weren’t pairing with than you were to your partner. It would probably be too distracting and too hard to hear your partner over the crosstalk. The stairstep layout puts a wall of displays between you and the guy sharing your table who isn’t in your pair, so it’s going to be a lot better soundwise.

    @siraf: that’s interesting about the gym balls. Since I’ve been doing yoga for over 20 years I can sit perched on top of the ball in a position that supports my spine well, and I think doing yoga regularly will mitigate the other issues about spinal compression. I can’t really speak to other people’s spinal issues, but thanks for the information.

    It’s neat hearing other people’s ideas for alternate hardware setups. There’s probably a few different hardware configurations that would work well for this physical layout. What I’m more interested in is finding the best physical arrangement for ergonomics and pair communication. So far, this is the best I’ve seen.

  • I like your idea!

    Looking at the sketch, I started to wonder, would it be too noisy environment to work, having many pairs working next to each other?

  • Sean Moon

    The ends of the table can be used for a ‘corner pair’ setup. It’s pretty good in terms of sound and isolation, but unfortunately has the same equipment requirements as your new setup.

    May not be as good as sitting across from your pair, as I’ve never tried it. Looks great though.

  • Jens

    Smorgas Borgas!

  • Andrew Cantino

    Good post Josh! See also my post about dual-computer pairing with Teleport:

  • No twist + face2face + high5 friendly. That’s great! I might try this setup in the next few days.

  • femi

    quick guys all seem to use imacs…Do you encourage devs to take work home on laptops? if so, would it be better for them to work off laptops?

  • Josh Susser

    femi: Part of our dev process is pairing all the time, and also working at a sustainable pace. We work regular hours in the office and almost never take our work home with us. That said, it’s not hard to clone your git repo to your home computer and work there if you really have to. No need to be carrying a laptop around if you don’t want to.

  • Pingback: 126 RR Remote Pair Programming with Sam Livingston-Gray()

  • Chris Adams

    Awesome idea. One more thought, the setup would take up less space if the desks involved could be set up at an angle, so the row as a whole is straight, even though individual desks are angled.

    Then you can experiment with this setup without disturbing surrounding rows of desks.

    Nice, always a fan of a high five friendly pairing setup and out of the box thinking!

Share This