Julia Evans

Reports from remote-land: remote pairing works great!

I’ve been working remote for 2 weeks now. The things that have surprised me the most are

  • I’m less lonely and disconnected than I expected (it turns out I’m an extrovert…)
  • how well remote pairing works!

I did a lot of pair programming while at Hacker School and I found it to be a really productive way to work. When I got a remote job (I live in Montreal and work with people mostly in SF), I thought it would be impossible to do pairing, or at the very least it would be a terrible experience.

This is not so! Here’s what I’ve been using:

  • tmate for sharing my terminal (I use vim in the terminal). The other person only needs a ssh client to use tmate.
  • Google Hangouts or Skype for talking, and sometimes for screensharing
  • an internal alias http://go/julia that redirects to a Google hangout to make it extra easy to talk to me
  • a lot of scheduling pairing dates with Google calendar

My experience so far with Google Hangouts / Skype is that neither one is really better, and both of them sometimes don’t work. I tried appear.in once and that didn’t work at all. One person’s sound and video was 2 minutes behind the entire time.

tmate mostly works beautifully. Sometimes it will work perfectly and it’s amazing and sometimes it will freeze for me 5 times in an hour. I’m not sure if it doesn’t like inconsistent internet connections or what. The other problem with tmate is that some people have security concerns with it, so I’m thinking of making an internal tmate that goes through our servers.

I’ve also been using screensharing to remote pair. Screensharing is great because it means you can use any editor you want (not just a terminal editor), you can use more than one window, and nobody needs any special software. Both Skype and Google Hangouts have it and they’re both a little wonky. A lot of people have retina Macbooks and their screen resolution is way higher than mine, so I have to ask them to zoom in a lot. The bigger you make the text, the less you’ll have trouble when the internet connection wavers.

If you’re screensharing, be proactive about asking your partner to zoom in :)

The worst thing about remote pairing is that it’s really disruptive to the flow of the pairing session when your internet connection keeps dropping or if one of your tools freezes, and that never happens with in-person pairing.

As long as the technology works, though, remote pairing has been great! I find that it feels just as productive than in-person pairing, which surprised me a lot. The only thing I wish for is an extra screen so I could see my pairing-partner’s face at the same time.

Are you doing remote pairing? I’d love ideas of how to mitigate any of the problems I’m having :) I’m @bork on Twitter.

Recovering files using /proc (and spying, too!) "Ask if you have questions" isn't enough