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 ather 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. 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-tch 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.
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.