Pair programming: How should the pairs be chosen?
- by Jon Seigel
This topic has been covered peripherally in bits and pieces in some of the other pair-programming questions, but I want to (a) consolidate this knowledge into a separate question, and, most importantly, (b) go into much more depth on the subject.
From the perspective of being an effective manager, how should pairs be arranged for pair programming to maximize both the happiness and productivity of the overall team?
Some ideas to get started:
Should two people never be paired (because of personalities, for example)?
How much overlap in skillsets is needed?
How much disconnect in skillsets is too much to overcome? (No two people will overlap 100%, and a disconnect in skills can be very beneficial to both people.)
Should everyone pair with everyone else on a fixed/rotating basis?
Should certain pairs be arranged to accomplish specific tasks?
How important a role does HR play when growing or reorganizing the team?