The Art of Project Management: Expert advice from experienced project managers in Silicon Valley, and around the world

Remote Pair Programming

I’ve been enamored of remote pair programming since briefly leading development at Socialtext, where no three developers were in the same locale. Socialtext was committed to agile approaches including pair programming (but not including colocation, I might note!). Being distributed, remote pairing was the way forward.

Pair programming is controversial in being possibly the most difficult agile engineering practice to inculcate into development teams – we’ve heard of programmers quitting companies rather than signing on. But there’s also plenty of evidence that it’s well worth doing: Mike Cohn, in Succeeding with Agile, says, “if you’re in a hurry this is the time you need pair programming the most… Although most studies show a slight increase in the total number of person-hours used when pairing, this is offset by a decrease in the total duration of the effort. That is, while pairing takes more person-hours, fewer hours pass on the clock…. Pair programming has also been shown to improve quality…. Additionally, pair programming facilitates knowledge transfer and is an ideal way to bring new developers up to speed on the application. It is also an effective practice for working in uncharted territory or solving difficult problems in known parts of the system.”

photo: Proximate Pair Programming

Proximate Pair Programming

In our book, Managing the Unmanageable: Rules, Tools, and Insights for Managing Software People and Teams, we note a less obvious use of the technique. We share David Vydra‘s interviewing rule of thumb,”Pair programming for half an hour during an interview will save everyone’s time.”

And as for pairing remotely, we also share the pleasure I saw programmers at Socialtext experience transitioning from physical to virtual pairing. (pp. 133-4)

While proximal pairs typically share a single screen and often a single keyboard and single monitor, virtual pairs each sit square to their own monitor, keyboard and mouse, sharing a virtual single screen. For screen sharing, developers at Socialtext typically used a version of VNC (e.g., Chicken or RealVNC).

As a co-chair of the Emerging Technology SIG of nonprofit tech organization SVForum, I’ve recently been looking at collaboration tools of various kinds, led there in part by the amazing advances in sharing Web research that Vivek Agarwal at Surfmark is doing. (Vivek is speaking at the Emerging Tech SIG on Thurs, June 13, 2013, in SF.) That led me to consider that screen sharing in general might have taken a leap forward.

I didn’t find anything startling, when I went looking for an update on remote pairing tools, but David Vydra, who seems to know and have worked with not only all the cool tools but all the cool kids, pointed me to a wonderful resource, Joe Moore’s blog, which is focused on remote pairing tools. Not surprisingly, Joe is part of Rob Mee’s Pivotal Labs, known for its XP engineer practices.

A lot of great stuff, including updates on tmux, Google Hangouts and MadEye, SublimeText 2, solving Skype challenges, and more. In his two-year-ago assessment of remote pairing technology, Moore concluded, “using Apple’s built in Screen (aka SSA) combined with Skype has proved to be the best remote paring technology combination.”

For those who are distributed – or just working from home – remote pairing is alive and well.


About the Author

Ron Lichty has been transforming chaos to clarity and making software development “hum” for most of his 20-plus years managing software development and product organizations. Ron co-authored 2012's highly regarded Addison-Wesley title, Managing the Unmanageable: Rules, Tools, and Insights for Managing Software People and Teams ( ), his co-author Pixar/Broderbund/Gracenote CTO Mickey Mantle. With over 70 years of combined experience, these two software industry veterans crafted a book designed to help any software manager be more successful. Having spent their careers developing software, leading software development projects, and managing programmers and teams, they distilled their experience into a book that every beginning programming manager would get value from, both to read and to pull from their bookshelves for reference. It's a book that is also helping executives who struggle sponsoring projects dependent upon software success – CEOs, COOs, CTOs, and others – to understand the craft of software development and the intricacies of how to manage software people and teams to deliver software projects successfully. Ron has repeatedly been brought in as a “VPE of Fix-It” to coach and mentor programming managers at all levels and to solve problems like painfully slow product development, past-due estimates with no delivery in sight, challenges arising from geographically dispersed teams, scalability stymied by sluggish data integration, productivity bridled by uncertainty, an "order-taking mentality" from teams that should be eagerly proactive, and teams unable to break out of research and move on to development and delivery. Ron untangles organizational knots, creates roadmaps everyone can follow, builds communications with other parts of the organization, coaches and trains organizations in agile and scrum, and gets teams productive and focused on delivery, quality and customers. Chaos to clarity.
Creative Commons License
Note: This work and all associated comments are licensed under a Creative Commons Attribution-Noncommercial 3.0 United States License.

One Response to “Remote Pair Programming”

  1. We use Pair Proframming for the last step of our interview process and it has worked really well. We give people three tasks to work on and as much as the quality of the code, it tells us a lot about the dev including how well she might fit culturally. The whole thing takes well over 1.5 hours but its well with it.

Leave a Reply