Recently, I’ve been challenged to think more about my pair programming style and how I share the responsibilities of driving and navigating with my pair. Inspired by Marlena Compton’s post different ways to pair.

Using Jenn Schiffer’s online 8-bit art maker, I quickly drew some icons to better represent the various techniques that she proposed to show to my team.

Feel free to use these images for educational purposes and to let me know via Twitter!

Roles

Driver
Driver
Driver
Driver
Navigator
Navigator
Navigator
Navigator

Techniques

Ping Pong

Ping Pong
Ping Pong
The classic Ping Pong technique where one person writes a failing test and then the other tries to implement the minimum necessary code in order to pass the test.

This can also be implemented with non-TDD where one person writes an implementation and the other tries to refactor it into something simpler.

Switch on Tasks

Switch on Task
Switch on Task
Switch on Task
Switch on Task
The pair decide on a set of tasks that need to be accomplished and switch after each task is accomplished. If tasks take longer than anticipated, take breaks or switch who is typing.

Pomodoro

Pomodoro
Pomodoro
Pomodoro
Pomodoro
The dependable study technique, Pomodoro is where a timer is used to signal the switch between pairs and taking breaks. Typically this is 25 minutes of work + a 5 minute break.

Pairmate

Pairmate
Pairmate
A small item like a stuffed animal or tchotchke can be used to signal who is navigating. The navigator holds the item to signal that they are not to touch the keyboard until that item is passed off to the other.

Switch on Google

Switch on Google
Switch on Google
Any time the thought pops into a pair’s head that they would like to research something further like a bug or documentation, the pair should switch to avoid the temptation to research on the side.