---
title: Face to Face pairing
url: https://www.grahambrooks.com/post/2010-02-28-face-to-face-pairing/
date: 2010-02-28T00:00:00+00:00
author: Graham Brooks
tags:
- Agile
---

# Face to Face pairing

Since joining [ThoughtWorks](http://www.thoughtworks.com) in 2004 I
have enjoyed
[Pair Programming](http://www.extremeprogramming.org/rules/pair.html)
and my programming skills have improved significantly. Working on a
problem with someone else full time is one of those practices that is
difficult to convince people off until they have actually tried
it. <cite><a href="http://collaboration.csc.ncsu.edu/laurie/">Laurie
Williams</a> at NCSU</cite> has done some pretty interesting research
into the effectiveness of of pair programming, which is well worth a
read.

There are various different styles of pair programming <a
href="http://en.wikipedia.org/wiki/Pair_programming">WikiPedia</a>
talks about remote and ping-pong paring where people sit side by side
using the same screen, keyboard and mouse. Work is typically split
along test/application boundaries where one pair writes a test and the
other then implements the code to support the test. Control switches
back and forth between each of the pairs. The are many variations on
this including the use of two keyboards and mice. Pairing in this way
with a laptop is often quite difficult unless a separate keyboard and
mouse are used.

## Yesterday

Yesterday and colleague and I needed to work on a document. Nothing
particularly unusual about that but we were also bot h in the same
office, which for me is unusual at the moment. We both had laptops but
the office did not really lend itself to side by side pairing. Laptops
don't really lend themselves to effective pairing. The screen and
keyboard layout encourage the user to sit directly in front of the
screen to work. For the pair not actively typing that means looking at
the screen from the side &ndash; and almost over their colleagues
shoulder &ndash; which is far from ideal.

![Face to Face]({{ site.url }}/images/Face-To-Face.jpg)

Thinking about this problem I remembered reading an article about face
to face or <a
href="http://www.exampler.com/blog/2008/12/10/screen-pairing/"> screen
pairing</a>. Screen sharing software is available for most operating
systems these days and for OS X users the facility is natively
available in the Sharing System preferences. </p>

Setup was a snip we positioned ourselves on a section of the desk that
stuck out into the room with the laptops placed back to back. Each of
us had an unencumbered view of the shared screen and working on a
local network meant that there was imperceptible latency between one
person typing a character and the other seeing the result. </p>

## What went well

Communication was easy and unencumbered. I found talking face to face
to be a lot easier easier than turning to talk to someone next to me
and eye contact was easy to establish.

Switching control back and forth did not require moving keyboard our
mouse making the transition more immediate and helped improve the flow
of work. Each of us worked with the hardware we were familiar with and
although we were both using MacBook Pros there are nuances in keyboard
feel and trackpad set up that might take someone a few moments to get
used when they are driving.

Often when I am pairing I find the need to draw diagrams or make notes
to follow up on later. Sitting side by side it is easier to doodle a
quick diagram to elaborate and idea with person sitting next to
you. Working face to face one or both would need to move to a more
convenient location.

Face to face pairing might be a very similar experience if applied to
remote pairing. I could imagine setting up a couple of monitors one on
top of the other at each location. The upper monitor showing the
remote pair. In this configuration it is then easy to quickly context
switch to talk about the problem at hand. I suspect that looking up is
a lot less work than looking to one side or switching
applications.
