On a mailing list the other day, someone was inquiring about pair programming when one of the pair is more senior than the other. He was suggesting that it was inefficient, a waste of time. Pairing proponents pointed out the advantages of pairing in this situation, and indicated that they thought pairing was indeed worthwhile. The questioner found their insistence irritating and concluded that, although he had no experience in pairing, he knew better.
The general argument goes something like this:
Suppose that pair programming between peers is good. Even so, pairing between a very "senior" individual and a very "junior" one is not productive. The junior will slow the senior down, and will not provide much help. While the junior may be learning things, it would be better to just send the junior to a training class and not waste the time of the senior.
Pairing proponents offered several forms of replies, including these:
- Actual experience pairing senior with junior does not often bear out the concern. Pairs report that even extremely junior helpers are in fact helpful.
- The educational benefits to the junior are well worth any additional cost, even if there is some in some cases.
- The real situation is rarely someone who is purely senior paired with someone who is purely junior. Any two people usually each have something they can teach the other. Pairing turns into true collaboration in almost every case.
- The benefits of pairing are reported universally: no experience reports exist where people have done substantial pairing and then decided it wasn't worth while. And there are many reports, and even a few studies, reporting that it is as productive, and often more productive, than solo programming.
The proponents concluded, as they often do, that pair programming shows enough benefit in enough situations to make it worth trying. They recommended that the poster give it a try and find out what really happens, rather than speculate.
Faced with the advice and opinions of people experienced in the area, the questioner concluded:
Yes, entry-level people can point out a few typos or trivial bugs, ask a few surprise questions, but it is not worth tying up an expert's time for a long period.
Well, there you have it. People expert in pair programming report that it works well even when there is a disparity in experience between the members of the pair. And the questioner, without having tried it, concludes otherwise.
Make up your own mind … it seems to be the popular thing to do.