We are all Emacs users, and we share tmux sessions on Vagrant VMs over SSH. (It's like GNU Screen, but a lot more convenient for sharing.) We usually stick with the same pair for about a week and rotate among our 10-man team, though each person has areas they're more proficient in. We use Skype for VoIP (though Mumble works better in some cases) and IRC for chat.
I haven't done much in-person pairing, but I think the main difference is not having to share a keyboard. Each person can use a system they're comfortable with; no fuss about dvorak vs qwerty, Kinesis vs Natural 4000, standing desk vs sitting, or Ubuntu vs Macosecks. It does mean you need to use auditory cues to indicate who is in control of a given session. The biggest drawback is probably that you can't share a web browser over SSH, but since we are doing backend coding it doesn't affect us.
For me it's been a huge win. We do also have week-long meetings a few times a year to bring the whole team together in-person to promote the team's cohesion. But working from home is great; as long as I'm able to switch things up occasionally by working from a coffee shop a couple times a week, I'm happy.
That sounds like a really great setup. I'm going to have to try this out one day. I've never really considered the specific benefits remote pairing would have over in-person pairing...generally the only things considered are the downsides.
Obviously, some of the things you mentioned with in-person pairing can be alleviated. At my current client, our setup includes multiple keyboards and mice. A friend of mine uses his own keyboard with a hardware switch to go between dvorak and qwerty.
You mention not being able to share a browser which makes me think of the times where it would have been convenient to look something up for a moment while my pair experimented (two pronged problem solving approach... :).
Also, what kind of pairing patterns do you use in this setup? Ping Pong TDD, driver/navigator, etc... ?
> You mention not being able to share a browser which makes me think of the times where it would have been convenient to look something up for a moment while my pair experimented (two pronged problem solving approach... :).
Definitely. Occasionally we'll read docs in w3m, but often it's good to go async on looking up some boring details.
What we do is probably more driver/navigator since whomever is hosting usually has better latency. The remote guy can still get around just fine, but it's just barely noticeable enough to give an edge to the host. Since we work in a language that makes it easy to do strict FP, (Clojure) test-first is not as important as it would be in an imperative language, though we do have pretty good coverage.
I haven't done much in-person pairing, but I think the main difference is not having to share a keyboard. Each person can use a system they're comfortable with; no fuss about dvorak vs qwerty, Kinesis vs Natural 4000, standing desk vs sitting, or Ubuntu vs Macosecks. It does mean you need to use auditory cues to indicate who is in control of a given session. The biggest drawback is probably that you can't share a web browser over SSH, but since we are doing backend coding it doesn't affect us.
For me it's been a huge win. We do also have week-long meetings a few times a year to bring the whole team together in-person to promote the team's cohesion. But working from home is great; as long as I'm able to switch things up occasionally by working from a coffee shop a couple times a week, I'm happy.