Pair Programming Might Not Work For You,
… but don’t prohibit other people from giving it a try.
I heard the MOST ignorant statement the other day while facilitating a workshop.
“Pair programming is useful when you’re 23. When you turn 24, there is no need for pair programming.”
From the tone of the speaker’s voice, I knew this individual was not interested in dialogue. I also could not let their comment go unanswered and be accepted as a true, so I responded:
“I have had a different experience and I disagree with you.”
Pair programming – probably the most controversial practice to come out of Kent Beck’s Extreme Programming Explained and continues to remain controversial almost 10 years later. The practice has evolved over the years, but it is still essentially two people working together at one keyboard solving a code and design problem. Since I have had such a different experience pair programming, I am not sure why some people have such a knee-jerk hatred for it. Some of the most productive code and the best designs have come out of my pair programming sessions. In my experience pair programming is a practice that allows the sum of two programming minds to exceed the individual parts.
So where does this resistance come from? I think much of it comes down to fear – fear that we are not as good as we think and the other person we are coding with will find that out. As I have heard Ron Jefferies say, “You are not as bad as you think.” Since I am not a zealot, I will be the first to admit pair programming is not for everyone. It is an extremely intense shared design experience. If you are not good at expressing yourself and having your ideas challenged, you will not like pair programming. If you simply work best by thinking in silence and hammering away at the keyboard until the app is done, then pair programming probably will not be for you.
However, just because pair programming might not fit your personal style of writing code, that does not mean no one should be allowed to use it. Let other people try and figure out how to succeed where you might have faltered. There are a lot of ways to write high quality code and for some people, pair programming is their way of doing that. Let us have some variation and see what produces the best code before limiting our options.