Pair programming is one the core tenets of Extreme Programming, commonly referred to as XP.
Extreme Programming is an agile software development process that emphasizes teamwork and simplicity in an effort to streamline productivity and get the best software in the hands of users as quickly as possible.
Pair Programming, or pairing, is a component of XP that involves two programmers sharing a common workstation to increase software quality without sacrificing time it takes to deliver. One programmer, commonly referred to as the “driver” types on the keyboard, while the other—the “observer” or “navigator”—reviews the code as it’s being typed. This process makes it easier to catch errors, and it takes the overall design into consideration during the development process.
But how is pair programming actually done, physically? Pairing is best accomplished in person at a dedicated pairing station, but remote pairing is also possible if the right practices are implemented. If you want to maximize the value your agile software development team gets out of pair programming, consider implementing the following tips to aid your efforts.
Just as code should have shared ownership and teams work best when there are coding standards, the paired programming environment should have shared ownership. The team should take pride on rallying around a setup that works for everyone. While there are countless options for a pair programming setup, the following have been shown to work well and foster a collaborative, productive environment for agile software development:
Want to learn more strategies to boost your team’s productivity? For agile teams, proper use of retrospectives is key to a consistently improving team. Our free guide covers everything you need to know to facilitate your retrospectives like a pro.
Having the above materials and practices in place is a great start, but further action is required for a pairing station to be fully optimized for this type of Extreme Programming. Ideally, this common agile software development environment should be documented in a README and checked into git. This can be done in a variety of ways. Luckily, there are many tools and practices available that can greatly aid to this process.
On the Stride team, we use the following to optimize the pair programming experience:
vim—Programmers could also use Sublime Text or Atom; the point is to standardize.
bashfunctions—Manage our proxies and local passwords in a
.psqlrcand git config aliases
Recesstimer for pomodoros
git-pair—This script from Pivotal allows both people’s names to be on their commits, making it easy to switch pairs without reconfiguring things.
Using these practices, you can be sure your agile software development team won’t fall into the common pitfalls associated with pair programming. By implementing these tips in your pair-programming efforts, your team will not only be able to produce better quality software in a shorter amount of time, but also experience the following benefits:
In the end, remember that what you choose is less important than making a decision and standardizing, as with tabs vs. spaces. Developers like things their special way, but if you’re committed to XP, I can only recommend that you try these best practices and see how it works for your agile software development team.
These Stories On Process