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.
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 havinga second computer and even a
second person may improve the experience.