[[!meta title="Remote Pairing"]] # 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](https://genehughson.wordpress.com/2012/11/19/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 [[!table data=""" Tool|Hosting|Data|Driver|Participants|Screen|Face|Voice|Text|Platforms|Cost [AnyDesk](https://anydesk.com/remote-desktop)|hosted|local|all|mob|full|{X}|{X}|{X}|Mac,Windows,Linux,iOS,Android|free,paid [appear.in](https://appear.in) [Chrome Remote Desktop](https://chrome.google.com/webstore/detail/chrome-remote-desktop/gbchcmhmhahfdphkhkmpfmihenigjmpp)|hosted|local|both|2|full|{X}|{X}|{X}|Google Chrome|free [Floobits](https://floobits.com/)|hosted|hosted|both|2|editor|{X}|Hangouts|Hangouts|Emacs,Neovim,IntelliJ|free,paid [Jitsi Meet](https://meet.jit.si)|hosted|local|host only|mob|full|(./)|(./)|{X}|Any browser with WebRTC|free [jitsi](https://jitsi.org/) [join.me](https://www.join.me) [Koding](http://www.koding.com) [screen](https://www.gnu.org/software/screen/) ~~Screenhero~~|hosted|local|both|2|full|{X}|(./)|(./)|Mac,Windows|Slack killed this product in 2019 [Scrimba](https://scrimba.com)|hosted|?|both|?|web IDE|{X}|(./)|?|web|? [TeamViewer](https://www.teamviewer.com/) [Teletype for Atom](https://blog.github.com/2017-11-15-introducing-teletype-for-atom-code-collaboratively-in-real-time/) [tmux](https://github.com/tmux/tmux/wiki)|local|local|all|mob|terminal|{X}|{X}|{X}|Anything with SSH|free [tuple](https://tuple.app) [USE Together](http://www.use-together.com)|hosted,on-premise|local|||| [Visual Studio Live Share](https://code.visualstudio.com/blogs/2017/11/15/live-share) [VNC](https://en.wikipedia.org/wiki/Virtual_Network_Computing) [VSee](https://vsee.com) [zoom.us](https://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).~~ **LiveShare**: VS Code and Visual Studio only, low bandwidth needs (not screen-sharing). Very limited guest coder experience. Up to 30 people. **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](https://tmate.io) - Terminal-only - can host your own server ## [Synergy](https://symless.com/synergy/) ? ## [Slack](https://slack.com) - text chat - audio ## [Mumble](https://www.mumble.info) - text chat - audio ## [Skype](XXX) - text chat - audio - host-only screen sharing (no guest driving) ## [WebEx](XXX) - 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 - [Collaboration Superpowers list](https://www.collaborationsuperpowers.com/tools/) - [Miro](https://miro.com) (formerly RealtimeBoard) # Experience Reports ## [Code Craftsman Saturdays - October 2013](http://codecraftsmansaturdays.blogspot.com/p/update-whoot-our-first-event-is-now.html#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. --[[users/totherBob]] - [Atomic Object's 2013 review of remote-pairing tools](https://spin.atomicobject.com/2013/09/12/remote-pairing-tools/) - [Jeff Langr's list of remote-pairing tools](http://langrsoft.com/2017/03/01/where-are-the-real-agile-tools/) and [one remote-pairing experience](http://langrsoft.com/2011/03/29/abandoning-pairing/) - [GeePawHill muses on best-pairing](https://storify.com/GeePawHill/geepawhill-on-pairing) ([original](https://twitter.com/GeePawHill/status/825478502816178177), [on geepawhill.org](https://www.geepawhill.org/2017/08/15/on-pairing/)) -- how to apply? - [Alistair Cockburn: Colocated and distributed agile are different beasts](http://alistair.cockburn.us/Colocated+and+distributed+agile+are+different+beasts)