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.

Buy Now

Select a DRM-free Format:

In Stock
In Stock
In Stock
Buy the eBook and get these DRM-free formats delivered immediately:
  • epub (for iPhone/iPad, Android, eReaders)
  • mobi (for Kindle)
  • PDF
We can automatically send them to your Dropbox. (You'll need to log in to enable these options.)

About this Book

  • 108 pages
  • Published:
  • Release: P2.0 (2014-01-15)
  • ISBN: 978-1-93778-574-1

Two heads are better than one, but only if they’re working on the same problem. When pairing remotely, this requires a specialized environment that you’ll learn how to create. We’ll use the same open-source tools as the pros to improve collaboration and increase productivity. You’ll learn techniques, patterns, and best practices you can apply to projects of all kinds. These tools are so effective that many co-located programmers use them despite sitting side-by-side—you don’t have to work outside of an office for this book to improve your programming techniques.

We’ll start by creating a secure collaborative editing environment capable of handling the low-bandwidth networks at some coffee shops. Then we’ll share your screen using free open source tools and protocols. We’ll deploy all of this to a server in the cloud so you can access your development environment from anywhere. Then we’ll use one of the most advanced integrated development environments to collaborate, sketch on a virtual whiteboard, and resolve conflicts.

Finally, we’ll talk with programmers at Pivotal Labs, Big Nerd Ranch, and other top-notch distributed development firms to learn how they handle the challenges of remote pairing on a daily basis. With their help and advice, you can be productive from any location on the planet.

What You Need

Many of the examples in this book require an internet connection. You’ll only need one computer for most of the exercises, and you can run them by yourself. But having a second computer and even a second person may improve the experience.

Contents and Extracts

  • Acknowledgments
  • Preface
    • Who Should Read This Book?
    • Why Should You Read This Book?
    • What’s in This Book?
    • What Do You Need to Use This Book?
    • Having a Partner Is Optional
  • Introduction to Pair Programming excerpt
    • Laying the Ground Rules
    • Examining the Evidence
    • Pairing Up
    • Getting Started with Some Basic Tools
    • What’s Next?
  • Collaborating with Text Only
    • Installing tmux
    • Using tmux as a Solo Programmer
    • Sharing a tmux Session excerpt
    • Using tmux for Pairing
    • What’s Next?
  • Using the Cloud to Connect
    • Creating a Reverse Proxy Server
    • Creating the Secure Tunnel
    • What’s Next?
  • Collaborating with Shared Screens
    • Choosing a Screen-Sharing Tool
    • Using VNC for Complete Screen Sharing
    • Using NX for Partial Screen Sharing
    • What’s Next?
  • Building a Pairing Server
    • Initializing the Pairing Server with Vagrant
    • Provisioning with Puppet
    • Using the Server
    • Running the Server in the Cloud
    • What’s Next?
  • Collaborating with an IDE
    • Installing Saros and Eclipse
    • Sharing an Eclipse Project with Saros
    • Whiteboarding with Saros
    • What’s Next?
  • Remote Pairing in the Wild
    • Pairing at Test Double
    • Pairing at Pivotal Labs excerpt
    • Pairing at Big Nerd Ranch
    • Patterns of Pairing
    • Wrapping Up

About the Author

Joe Kutner works exclusively from remote locations as a freelance programmer and consultant. He’s paired remotely on everything from web applications to mobile applications with clients from Indiana to India.

Comments and Reviews

  • I’m convinced that remote pair programming is a big part of the future of software development. People are constantly asking me, “How do I get started with remote pairing?” This book is the answer to that question. It’s short, sweet, and hits on the important tools and techniques without any extraneous fluff. I particularly like that Joe digs into some less common tech, like the Eclipse plug-in and NX.

    —Avdi Grimm Head Chef
  • This book is important. As more and more developers discover the benefits of working remotely, developers and employers alike must be prepared with tools and processes to allow collaboration regardless of physical distance. This short book, more effectively than anything I’ve seen thus far, dispels the myth that pair programming can’t work for distributed teams. It provides a blueprint to doing remote pairing right.

    —Ernie Miller Senior Rubyist Appriss
  • All distributed teams can benefit from this book. Not only is it an extremely useful guide to the nuts and bolts of remote pair programming, but it also explains why remote pairing, and pair programming in general, is so beneficial.

    —Joe Moore Principal Developer Pivotal Labs
  • Remote Pairing does a great job of introducing new technologies, but I found Joe’s examination of real-world pairing to be particularly valuable. The insight in this book helped me identify why some sessions fail or become frustrating, and it provided me with great advice on making future sessions successful and enjoyable.

    —Chad Taylor Developer deciBel Research, Inc.
  • As a developer who pairs remotely every day, I know of no other source that provides such a variety of information to help developers pair remotely. Even with all of my remote-pairing experience I found some new tools and techniques in Remote Pairing.

    —Chris Johnson Software Engineer Getty Images
  • This book is a well-organized and easy-to-read guide for programmers of all kinds. Joe provides excellent instructions for overcoming common problems associated with working remotely. From screen sharing to IDEs, Joe covers all the tools that made it possible for him and me to work together despite living on opposite sides of the world.

    —Vamsi Krishna Jandhyala Java Developer, Pune, India