Thursday, November 09, 2006

Pair programming and exotic Ideas

Pair programming is a wonderful practice that incredibly increases productivity and quality of code. Some of the reasons according to my experience are:
  • Complex problems get solved faster, sometimes 8 times faster
  • Solutions are more elegant, making code more extensible
  • Code is written in a clearer way enhancing maintainability
  • Relationships with other programmers are improved, yielding a smoother-going team with less team member conflicts
  • Knowledge is transferred between team members making them produce faster and better in the long run
However, one thing that I learned from Tyler yesterday is that pair programming does not necessarily suit exploring exotic ideas that require significant pondering. It would be more time-economic for the pair programmers to do the simplest thing that solves their problem, and then later explore the exotic idea on their own time. On a subsequent pairing session they can share their findings, discuss the idea, and potentially apply an improved solution to the problem.

Benefits are:
  • The programmers will have a "good-enough" solution for the problem to meet their deadline
  • It is preferred to do deep pondering solo and in silence to avoid distractions and the pressure of having another person waiting for you to speak
  • Once the exotic idea is pondered enough, the programmers will have a much more productive conversation about it
  • If the exotic idea did not prove practical, the programmers can still fall back to the existing "good-enough" solution

No comments: