From the book’s page on Prag Prog:
You’ve heard about pair programming’s benefits: fewer bugs, improved skills, and faster delivery. But what happens when you want to pair with someone in another city, country, or even hemisphere? With the right tools, you won’t have to relocate to refactor. In this book, you’ll learn techniques used by the most productive remote programmers in the industry to pair with anyone on the globe on any kind of project. You’ll use collaborative editors, screen sharing, secure networking, and virtualization to create a remote pairing environment that feels as if your partner is sitting right next to you.
I am very impressed with the level of detail and research in the book. The majority of the book describes the technical nuts-and-bolts of remote pairing in different scenarios, focusing on remote pairing on open source projects; I think he does an extremely good job.
Author Joe Kutner conducted a lengthy interview with me, and I tried to convey my remote pairing experiences as accurately as possible. I also had the privilege of reviewing an advanced copy of the book. I’m flattered to be featured in the excerpt along with Jay Haynes of Big Nerd Ranch.
I’m most encouraged by the book’s promotion of pair programming in general. Thank you everyone who has ever paired with me, both remotely and in person. I tried to distill the best of our experiences and patterns in my small contribution to Kutner’s book.
Required disclaimer: all opinions expressed in the Kutner’s book are my own and do not represent those of Pivotal Labs, Go Pivotal, EMC, etc. etc.
When you launch tmate — a fork of tmux — a secure connection is made to a tmate.io server (the site has details on how super-secure and anti man-in-the-middle this is), a tmux session started, and an ssh URL is displayed. Have your pair ssh to that address and boom: they’re pairing on your machine. Pretty slick. You can even set up your own tmate servers.
Hello @thesarahshepherd! Thank you for asking your question. The short answer is no, I have not used any Microsoft screen or code sharing solutions in a very long time. But, I acknowledge that this is a gap in my expertise and I’m excited to see that VS Anywhere is making solutions that support RPP.
I have watched a couple of your videos, including Remote pair programming with VS Anywhere and am encouraged by the what appears to be a pretty slick tool. I do have a suggestion: allow both parties to edit code without an explicit hand-off — that is, allow full editing ability for both parties at all times. The video describes and demonstrates a very narrow definition of RPP and pair programming in general: the navigator and the driver, with a very explicit (and software-enforced) switching of roles. In reality, pair programming is a much more fluid collaboration, with both parties diving into the code as needed; remote pair programming should be the same. Any hinderance to the back-and-forth flow of coding should be eliminated. Supporting a presentation-only mode does make sense, but less so for actual RPP.
I’m sure you’ve heard the phrase “It takes two to tango”. The tango is a fluid dance of two skilled people, moving together. The tango is not one person dancing, while their partner watches them dance on television, shouting suggestions.
@thesarahshepherd delivers! I turns out that VS Anywhere works as I hoped, allowing two collaborators to seamlessly alternate who is coding. This is demonstrated here: http://www.youtube.com/watch?v=f7epkbVuEYc. I would recommend that this kind of interaction be the focus of your remote pair programming video.
Just look at all the #pairwithme hashtags on Twitter!
This video was taken at the Agile2012 conference in Dallas, TX. August 15, 2012.
Description: Remote pair programming is surprisingly simple and inexpensive to implement, but it’s not just about bleeding-edge technology — a good attitude is just as important as good technology. Joe will walk you through how your distributed team can successfully implement remote pair programming, allowing you to realize the same benefits as in-person pairing and address some of the challenges of distributed development. Joe will discuss the important personal and interpersonal skills needed for remote pairing as well as the technology.
Distributed agile teams need not forgo the valuable discipline of pair programming. Thanks to ubiquitous high speed internet service, major advances in online collaboration technologies, and the need to source talent wherever they might be, remote pair programming is becoming more common.
Hi Rob! Try these: http://www.amazon.com/Sennheiser-PC-310-Gaming-Headset/dp/B007UIX1QU/ref=sr_1_4?ie=UTF8&qid=1378314269&sr=8-4&keywords=sennheiser+headset and http://www.amazon.com/Sennheiser-PC-151-Noise-Canceling-Microphone/dp/B000NOR89Y/ref=sr_1_2?ie=UTF8&qid=1378314269&sr=8-2&keywords=sennheiser+headset
If you are working Mac-to-Mac you can try iChat/Messages, which has screen sharing built in and can work really well.
Some handy hints on getting your Tmux + Vim setup right on OSX.