chris clarke
software development that works…or something
Pair Programming Patterns
May 10, 2007 on 10:47 pm | In Pair Programming, eXtreme Programming | No CommentsI’m trying to introduce more Pair Programming at the moment - so I’ve been trying to make it a fun thing to do. One of the ways I’ve been doing this is making use of the Ping Pong Pattern which has been working quite well. However, there are situations when this pattern doesn’t fit such as when debugging, refactoring, looking for something in the code or when their are big tasks which are hard to divide up. When not using the Ping Pong Pattern, I find its easy for one pair to dominate, get bored, silently think ‘OMG WTF is he doing?!!!’, or fall asleep.
So I’m going to just make some patterns up and list some ones I found which might be fun for those new to Pair Programming and stop me falling asleep:
One Line Each - Each programmer takes it in turns to write one line of code. This can be done in silence as a kind of game, or normally to continuously discuss each programmers intentions.
Two Keyboards and Two Mice - Both programmers can interact at any time - the idea is to stop one programmer dominating / hogging (via Steve Freeman).
Chess Clocks - Sam Newman describes it much better than I could.
Pair Poker - Each programmer gets a limited number of cards at the start of the day, they can choose to play a card at anytime and gain immediate control of the keyboard.
Different Roles - Each programmer takes on a different role, possible combinations:
- Refactorer / Programmer : One programmer cannot do anything but refactor, the other can do anything.
- Tester / Implementer : One programmer cannot do anything but write tests, the other cannot do anything but make tests change from red to green.
- Navigator / Programmer : One programmer can only move between classes, the other can do anything but move between classes.
- Adder / Remover : One programmer can only add code, the other can only remove code.
Roles can be switched every hour or just when one get’s bored.
Thinking of a fun thing to do whilst debugging, looking through logs, or looking through code was a lot harder.
Backseat Driver - To keep both programmers attention, one drives and cannot do anything without being directed by the other.
Driver Buckaroo - The driving programmer has to give up the keyboard every time some event happens (e.g. build breaks, someone swears, you get an email, the project manager cracks the whip, someone checks in, someone stands up).
Promiscuous Pairing - Basically pairs rotate more often. (I’ve tried this with a rotation every 90 minutes — it was fun but tiring.)
Pair Programming Patterns
May 10, 2007 on 10:47 pm | In Pair Programming, eXtreme Programming | No CommentsI’m trying to introduce more Pair Programming at the moment - so I’ve been trying to make it a fun thing to do. One of the ways I’ve been doing this is making use of the Ping Pong Pattern which has been working quite well. However, there are situations when this pattern doesn’t fit such as when debugging, refactoring, looking for something in the code or when their are big tasks which are hard to divide up. When not using the Ping Pong Pattern, I find its easy for one pair to dominate, get bored, silently think ‘OMG WTF is he doing?!!!’, or fall asleep.
So I’m going to just make some patterns up and list some ones I found which might be fun for those new to Pair Programming and stop me falling asleep:
One Line Each - Each programmer takes it in turns to write one line of code. This can be done in silence as a kind of game, or normally to continuously discuss each programmers intentions.
Two Keyboards and Two Mice - Both programmers can interact at any time - the idea is to stop one programmer dominating / hogging (via Steve Freeman).
Chess Clocks - Sam Newman describes it much better than I could.
Pair Poker - Each programmer gets a limited number of cards at the start of the day, they can choose to play a card at anytime and gain immediate control of the keyboard.
Different Roles - Each programmer takes on a different role, possible combinations:
- Refactorer / Programmer : One programmer cannot do anything but refactor, the other can do anything.
- Tester / Implementer : One programmer cannot do anything but write tests, the other cannot do anything but make tests change from red to green.
- Navigator / Programmer : One programmer can only move between classes, the other can do anything but move between classes.
- Adder / Remover : One programmer can only add code, the other can only remove code.
Roles can be switched every hour or just when one get’s bored.
Thinking of a fun thing to do whilst debugging, looking through logs, or looking through code was a lot harder.
Backseat Driver - To keep both programmers attention, one drives and cannot do anything without being directed by the other.
Driver Buckaroo - The driving programmer has to give up the keyboard every time some event happens (e.g. build breaks, someone swears, you get an email, the project manager cracks the whip, someone checks in, someone stands up).
Promiscuous Pairing - Basically pairs rotate more often. (I’ve tried this with a rotation every 90 minutes — it was fun but tiring.)
Powered by Cheese.
RSS Entries Feed.
RSS Comments Feed
^Top^