I have been pair programming for more than four years. One of the most basic things that you need to do is to find a way to share your screen, keyboard and mouse. The easiest to setup is with two people working on a laptop. It is also the most uncomfortable because you end up sitting in suboptimal positions. Sooner or later your back or your neck gives up and starts hurting.
The next step is to get a monitor with a separate keyboard and mouse and hook it to one laptop. This is better than laptop sharing because each person has one display to look at. The coding half of the pair usually gets the bigger monitor. The other variation is that the person who owns the laptop uses the laptop’s keyboard and screen. I however have a tendency to look at the bigger monitor even if I am typing on my laptop. I don’t know why, but I just can’t settle for a smaller screen when there is a shiny big one right next to me. Surprisingly my back and neck problems like this bad habit very much.
The most expensive setup is to have two monitors, but usually there is a space or money constraint for this setup. I have been using a Mac for a year now. My pair programming configuration is the one monitor setup. Recently my colleague showed me an application that comes with the default install of OSX (at least on Mountain Lion it does). It is aptly named Screen Sharing. It doesn’t show up on Spotlight directly. It is however very easy to find and use it. All you need is the password of the user account on the other machine (which one person in the pair will definitely have). Now we can just sit next to each other and pair program without a monitor and more importantly without straining our necks or backs. My tendency to look at the ‘bigger monitor’ vanishes because the screens are the same size. I don’t have to spend time hooking up a monitor or keyboard either. This is the best configuration for me. I am sure there are ways to do that on Windows as well. It may also work very well for remote pairing (if you can address your partner’s IP/hostname), and provided your connectivity is good enough.