We're quite passionate about pairing in Black Pepper. Two heads really are better than one, in almost all cases. This practice involves two people working together at the same computer, and in all our experience this proves to be as or more productive than two people working separately.From a development perspective it may be slower to type on only one keyboard per pair, but the actual typing element or mouse movement involved in modern programming is by no means continuous. More importantly, the practice of pairing significantly reduces the number of bugs introduced and requires less time spent in misunderstanding others' work.
The benefits are fairly clear:
- Two people can immediately share information
- The practice lends itself to continuous architecture and design
- Two pairs of eyes can often catch bugs before they are born
- Pairing promotes continuous learning from each other (bad habits can be quashed early, and after all everyone knows something you don't)
- This approach fosters better communications, team working and social interaction. Work is "fun" once more!
However, pairing can be a difficult practice to get right. John E. has already highlighted some of the possible pitfalls and anti-patterns in his earlier post. One tool we use to get the rhythm of pairing right is a simple kitchen timer, set for say 25 minutes to remind the pair to switch on a regular basis. This approach stops one member of the pair "hogging the keyboard" while the other takes a back seat, and just ensures that both team members take an active role in the task at hand.
So a while ago, I bought a stack of tomato-shaped kitchen timers (there's plenty available at Amazon or I'm sure you can google your own supplier) to help mark the passage of time. Of course, this wasn't an arbitrary selection of kitchen-based timer: The tomato timers are an artifact of the Pomodoro school of time management, pioneered by Francesco Cirillo in the late 1980s, of which there's a wealth of information available here. The Pomodoro Technique reminds us that as humans we can be extraordinarily bad at keeping track of time or allocating definitive units of measurement to the things we do. By breaking down our days into chunks (as measured on a kitchen timer shaped like a "pomodoro", which is Italian for tomato) we can get better at being focused on the individual task at hand, and become better at estimating how long things are going to take based on our experience of timing ourselves over many pomodoro cycles.
Our friends at Wikipedia summarise the technique as follows:
- Decide on the task to be done
- Set the pomodoro (timer) to 25 minutes
- Work on the task until the timer rings; record with an x
- Take a short break (3-5 minutes)
- Every four "pomodori" take a longer break (15–30 minutes)
I'm still undecided if the whole Pomodoro technique in it's raw form is just an elaborate management consulting joke - you don't actually need a kitchen timer to mark the passage of time, and many people are already comfortable in measuring time in more traditional hours and minutes instead of a tomato-based unit of measure - but the base message is important. Better time management leads to more efficiency and control, and from an agile software development perspective that's two good things.
So although I'd noticed some of the team using the pomodoro timers for pairing, I hadn't appreciated quite how they had been taken to heart until our most recent Code Camp. As a company, we regularly take some time out to exercise our brains, and our most recent version involved solving some mathematical / logic puzzles from the excellent Project Euler site. These Code Camps can provide a welcome distraction from day to day project delivery, and provide a great opportunity to mix up teams a little, and even do some cross-functional pairing with developers working with those in non-technical positions to solve a computer-based problem (thanks for your patience, Martin!). What I hadn't appreciated was the noise of a dozen clockwork tomatoes going off simultaneously can be heard across all three floors of the building and sounds incredibly like a fire alarm!
With thanks to George Clooney for the inspiration for the title of this post.