Significance

"Individuals and interactions over processes and tools", right? Exactly right. When you're not next to each other, it's impossible to have interactions without tools. Tools have affordances. Affordances influence behavior - you will do more of what is easy in your tool. Whatever your preferred style of work is, if you're remote, you need the best possible tools to support it.

"That which does for you, also does to you."
--Gene Hughson, The Iron Law of Tools

Best-case outcome? You pair smoothly, effectively, and joyfully.

Worst-case outcome? You need a new job. --schmonz

Tool smells

  • if hard to drive, and you want to...

Selection Criteria

  • Self-hosted or internet service?
  • Data lives on own machine or has to be uploaded/synced?
  • Allows everyone to drive, or only the host?
  • Only two people or a mob?
  • Full-screen or terminal-only (or something in between)?
  • Includes audio?
  • Includes text chat?
  • Does your company already have this? Do they mandate this?
  • Same platform or mixed OSes?

Tools

Tool Hosting Data Driver Participants Screen Face Voice Text Platforms Cost
AnyDesk hosted local all mob full {X} {X} {X} Mac,Windows,Linux,iOS,Android free,paid
appear.in
Chrome Remote Desktop hosted local both 2 full {X} {X} {X} Google Chrome free
Floobits hosted hosted both 2 editor {X} Hangouts Hangouts Emacs,Neovim,IntelliJ free,paid
Jitsi Meet hosted local host only mob full (./) (./) {X} Any browser with WebRTC free
join.me
Koding
screen
Screenhero hosted local both 2 full {X} (./) (./) Mac,Windows included with paid Slack
Scrimba hosted ? both ? web IDE {X} (./) ? web ?
TeamViewer
Teletype for Atom
tmux local local all mob terminal {X} {X} {X} Anything with SSH free
tuple
USE Together
Visual Studio Live Share
VNC
VSee
zoom.us

Additional notes:

Screenhero: Two mouse cursors! Requires high bandwidth, low latency. Trivial setup. Traverses firewalls pretty well. Recovers well from VPN and proxy changes. Maybe a bit smoother if the primary driver for the session initiates the call. Definitely smoother experience with similar screen resolutions and OS platforms (think Windows/Command keys).

Floobits: Requires code to be synced to a Floobits server. Shares just the editor window, so it might be very efficient with bandwidth. Since both parties have the same code, each can run tests locally.

Scrimba: currently client-side web stuff only.

SIP/SRTP/ZRTP

  • for voice

OS X Messages

  • schmonz refuses to do family tech support any other way. Don't bother describing it to me, show me
  • Then I can drive
  • When trying this with a coworker over Jabber (Google's), accepting a share-screen request never got back to the inviter

  • voice, video, screen-sharing (maybe not guest-driving though?)

tmate.io

  • Terminal-only
  • can host your own server

Synergy ?

Slack

  • text chat
  • audio

Mumble

  • text chat
  • audio

Skype

  • text chat
  • audio
  • host-only screen sharing (no guest driving)

WebEx

  • text chat
  • audio
  • screen share (request control to interact with host's computer?)

GoToMeeting

LinPhone

  • for audio

Jitsi

  • audio
  • screensharing?

Editors Only (not screen share)

Wemux (group tmux / mobbing)

MotePair (Atom)

Online IDEs and editors

Other Tools

Experience Reports

Code Craftsman Saturdays - October 2013

We did a full day workshop where we experimented with different remote pairing tools and techniques. The single most valuable takeaway was to experiment with the tools you think you want to use locally before trying doing it remotely. This shortens the try-fail loop and frustration associated with a low bandwidth experiment.

Also, always have a fall-back communication channel pre-agreed to; e.g. exchange cell phone numbers. Few things are more frustrating and wasteful than trying various communications channels not knowing the extent of a problem when someone drops off suddenly.

--totherBob