Monday, September 05, 2005

Random Pair Programming

One of the problems we ran into with pair programming was deciding who was going to pair up. With only four to six programmers it should have been easy - there aren't that many combinations! But either it would end up the same pairs over and over, or else everyone would sit and look at each other, with no one wanting to make a decision.

Eventually I got fed up and wrote a little function (in Suneido, of course) to pick random pairs. Although technical fixes to people problems often fail, this one seems to work quite well. Everyone seems happy to let the computer decide. Of course, there are groans when it repeats too much, and a temptation to re-run it till it gives "good" results, but overall it's been well accepted.

When the function found it's way out to other Suneido users, one questioned what such a specific function was for and suggested that a generic "shuffle" function would be more generally useful and would still serve the original purpose. True enough, so I replaced RandomPairs with Shuffle. (In the process of searching the web for a decent yet simple shuffle algorithm, I found that it's actually quite an interesting problem.)