Wednesday, December 14, 2011

Why Pair Program?

Pair programming is one of the agile engineering practices that developers give me the most pushback on (probably second only to TDD). Here are some of the reasons I give for why we pair program:

  • progress (driver) and research (navigator) instead of progress or research (solo dev)
  • may avoid the need for code reviews, which can be contentious
  • second set of eyes, catches silly mistakes
  • less thrashing between QA and dev and back
  • less time wasted down rabbit holes, as navigators offer perspective
  • less time wasted on non-work distractions
  • keep each other honest on practices like code quality, TDD, checkins
  • reduces a team's bus factor, a significant business risk for IT projects

I'd like to write more about some of these, but I'm not sure when I'll get to it.