Change Driver Role Frequently And Regularly

You are PairProgramming and having PairMismatch problem. What can you do? ChangeDriverRoleFrequentlyAndRegularly.


When there is a big gap between the skill levels of the two pairs, the pair session usually leads to a one-way lecture, where no one is taking any benefits from it -- no one learns anything.

Bring an alarm clock(see also SandglassProgramming) and set a fixed time, say 3 mins, and switch the driver role whenever the alarm rings. The key points of this activity is its frequency and regularity. Switching the keyboard at every 10 or so mins won't work. Shouting "Wait a min, I'm gonna finish this very soon!" at the switching time and not passing the keyboard won't work, either. At short intervals, no matter what you are doing, stop and switch the role.

If it doesn't work quite well, try adjusting the switching term -- shorten or lengthen. If it works quite well, try adjusting the term, too; you will gradually improve your pair programming skills.

Try this and you will be really surprised at the result.

One amazing story from a friend of mine:

He'd been a Java developer more than 7 years and knew pretty much of OOP, Refactoring, TDD and all the good stuffs. Nearby his place in the office, there was a young guy who only knew PHP. He didn't know those "good stuffs" and didn't understand OOP although it was possible -- somewhat awkwardly -- to do OOP in PHP.

My friend proposed the PHP guy to do PairProgramming with him. These two men were doing different projects and my friend's was a Java project. I guess the PHP guy might have kindly refused to do so, but anyhow the two got together to pair program. I once told my friend about SandglassProgramming and ChangeDriverRoleFrequentlyAndRegularly. He thought this was the time to experiment with those.

The Java guy would drive for five minutes (I don't remember the exact time but it was more or less 5 mins) and pass over the keyboard to the PHP guy. He didn't know anything about Java syntax. At first, he just stared into the monitor for the five minutes and then passed the keyboard back to the Java guy. It was like so for a couple of time and then the PHP guy started to something. He typed in a semicolon at the end of the statement that the Java guy couldn't finish at the switching time. Type in a semicolon for five minutes.

After one month they started to do this strange thing (remember, this PairProgramming was not their regular job so they did it in their spare time), the PHP guy was teaching another programmer Java and OOP, of course with this practice.

--JuneKim


EditText of this page (last edited February 1, 2006) or FindPage with title or text search