My last post on Pair Programming detailed the top 3 situations in which to leverage pair programming. In this third article of the pair programming series, we’ll look at common problems with the physical workspace that can hinder the effectiveness of pairing.
Problem #1: The developers can’t sit side by side
Communication issues are bound to occur when the navigator has to sit behind or in diagonal to the driver, making a proper seating arrangement absolutely critical. Having both developers sit next to each other has the added benefit of ensuring equal access to what’s on the screen.
Make sure the desk being used for pairing is wide enough to accomodate two adults side-by-side with sufficient space for a mouse and keyboard for each developer. Try to avoid corner desks since these are especially difficult for two people to work together on.
Having two developers with a mouse and keyboard each lends itself to the most engaging form of Pair Programming; Ping-Pong Pairing. In short, one developer writes a failing test, while the other writes the code to make that test pass. It borrows its roots from TDD and allows for both developers to constantly be typing.
Problem #2: The navigator can’t see the screens on the far side of the driver
It can be difficult to read what’s on the driver’s far screen of a multi-screen setup even with 20/20 vision. Assuming a standard resolution, it’s like trying to read the last lines of an eye exam: it’s doable, but not productive.
When pairing, make the screens duplicate instead of extend the desktop. You’ll lose some screen real estate that might result in more alt-tabbing, but usually in a pairing situation you don’t have that many windows open anyway.
Problem #3: The navigator has to ask for the keyboard and mouse to explain something
When only one person can use the keyboard at a time, it degrades the pairing process. The navigator has to ask to use the keyboard, the driver has to slide over, the navigator does their thing, and then the same steps have to be done in reverse order again. It’s painful and no one really wants to give up control of the keyboard either.
Having an extra keyboard and mouse connected allows the navigator to easily contribute when needed. You’ve also got the added bonus of not spreading germs by way of using the same keyboard.
Problem #4: There isn’t enough space on the desk for both developer’s stuff
A cluttered desk makes for a bad workspace for everyone. There needs to be sufficient space for both developers to comfortably sit with their keyboard, mouse, pen and paper without struggling to fit it all in.
Clean up that mess. Most likely you don’t need half the stuff that’s there. The other option is to have dedicated desks only for pairing, but that means that everything always needs to be configured and ready for any developers to use it.
Problem #5: Hygiene
We’re all guilty of this one at some point. We went out to lunch, had something spicy or oniony, and forgot to respect the workspace we share with our colleagues.
My personal favorite is Listerine Breath Strips. They freshen you up and show respect for the person that you’ll be working with for the next few hours.