When Does It Make Sense to Use Pair Programming?
Extreme programming (XP) (and its associated use of pair programming (PP)) is not widely used as a software development methodology. Although pair programming can greatly improve efficiency (the increased cost associated with PP (about 15%) is believed to be offset 15-fold by savings in reduced defects), it can be difficult and risky for organizations to adopt pair programming as their main development practice.
However, you can realize benefits by occasionally “borrowing” this technique and using it judiciously, no matter what software development methodology you follow.
Our Take
Rather than adopting full XP/PP, the power of pair programming can be used strategically on an as-needed basis to achieve specific outcomes. These include:
- Debugging a difficult/persistent problem
- Knowledge sharing (reduce "islands of knowledge" or create “cross-system competence”)
- Onboarding a new developer
- Coaching/mentoring a young developer
- Designing and building particularly important/complex part(s) of a system
Judicious use of PP can significantly improve your delivery efficiency without subjecting you to the challenges and risks associated with full XP adoption. And with the increasing availability of good collaboration tools (like Visual Studio Live Share, Teletype for Atom, CodePen, and Codeanywhere) pair programmers no long need to be seated next to each other to be effective.
You should consider using a pair programming approach with your development team the next time you need to achieve outcomes like the ones listed above.