<< Home Overview Approach Services Clients About Us Contact Us
Articles

Benefits of Pair Programming
by Paul Hodgetts, Agile Logic Founder & CEO

I've worked with a number of teams that have a heavy resistance to pair programming. The resistence is typically justified using the argument that it seems like a waste of resources to have two people work on one task. I'm not one to dictate what practices a team should adopt (although I'm not afraid to share my somewhat strong opinions ;-), but I suggest considering these potential benefits of pair programming before deciding not to adopt it:
  • Multiple sources of problem solving input avoids most instances of getting stuck.
  • Multiple sources of problem solving input provides more solutions from which to choose.
  • Partner can add element of parallelism (e.g., look up API method while pair compiles code).
  • Partner continuously reviews work products for correctness, conformance to standards, etc.
  • Partner continuously reviews process for conformance.
  • Continuous review increases odds of catching mistakes, misunderstandings early.
  • Continuous review reduces odds of lengthy pursuits of incorrect or inappropriate solutions.
  • Allows sources of specialty knowledge to rotate and be available to more situations.
  • Cross-training occurs at an accelerated rate (proportional to frequency of pair rotation).
  • Mentoring occurs at an accelerated rate (proportional to distribution of pair partners).
  • Decreases risk that individual developer mistakes will damage significant parts of the system.
  • Reduces dependencies of specific individuals to parts of the system or technologies.
  • Increased overall involvement enables higher degree of team self-management.
  • Increases social interaction, camaraderie among team members.
  • Common goals of pairs facilitates team building.
  • Common successes shared by pairs increases team accomplishment.
  • Increased sharing of responsibilities facilitates team culture evolution.
  • Partner provides motivation to stay continuously engaged.
  • Natural "competition" encourages higher performance levels.
  • Partner provides sanity check for knowing when to take breaks or stop for the day.
  • Reduces the need for expensive development workstations by half.