Some thoughts about pair programming

After pair programming pretty often for the last months this is what I think about it:

  • Pair programming improves code quality.

  • Pair programming improves team focus (for example when the guy behind you says “hey is that stuff really necessary for this sprint?”).

  • Surprisingly many developers that are strongly against pair programming actually haven’t tried it, and quickly learn to like it once they do try it.

  • Pair programming is exhaustive and should not be done all day.

  • Pair programming should be done in complex stories only(related with the previous).

  • Shifting pairs frequently is good.

  • Pair programming does improve knowledge spread within the group (Related with the previous too).

  • Some people just aren’t comfortable with pair programming. Don’t throw out an excellent programmer just because he isn’t comfortable with pair programming.

  • Code review is an OK alternative to pair programming.

  • It’s useful that the “navigator” (the guy not using the keyboard) has a computer of his own as well. Not for development, but for doing little spikes when necessary, browsing documentation when the “driver” (the guy at the keyboard) gets stuck, etc.

Please try it before criticizing, I was also reluctant at first. I thought it would be a waste of time until I realized all the advantages.