There was a mention in the Java Posse Podcast about how teams should be divided up into pairs. However, there was a mention from the lady on the podcast that: “Pairs should be mixed up [sic]” (an encouragement for diversity)
I understand the benefits of pair programming, but what benefit is there to intentionally mix people up. To me it would seem that it would be better to take a genetic algorithm like approach to find optimal groups to generate pairs.
An example: Let’s say you have a tax developer and a front end developer how would either of these guys benefit from the intentional mixing of peer groups? Why did her assertion go unchallenged? (I got the sense that she was advising that it should go cross groups and development tiers)
This seems to be similar to Joel Spolsky’s concept of diversity. You mix up types of programmers explicitly to get exposed to how other people think and do things.
“Ideal” pairings, I don’t think, truly exist in the long-term: if you’re not constantly growing etc, you’re stagnating. Would you rather be paired and stagnate because you both work the same way, or paired and grow because you think differently because of different foci and backgrounds?
2
As I see it one of the major advantages to pair programming is that different people come at a problem from different points of view, due to their previous experiences. These different points of view can lead to a more creative and better thought out solution. If the same pair always work together I see that their experiences, at least at work, will be similar and so not “mixing up” the pairs would lead to less diverse points of view and less creative solutions.
Pairing also allows for shared experience and training. In your example the two developers might leave with more of an understanding of the field of the other. If nothing else they would be exposed to how each other thought.
Your example is not as over the top as you might think. I had a friend with a zoology degree who was hired out of Uni as a developer for IBM. They saw that the different point of view that he brought to development was worth the over head of spending time improving his development skills.