Adam Pohorecki

Test first, ask questions later

PPPPP talk at KRUG

| Comments

On the 9th of July this year I gave a talk about Ping-Pong Pomodoro Pair Programming on KRUG.

Ping-Pong Pomodoro Pair-Programming

I always wanted to do pair programming, but every time I tried, I failed to get much benefit out of it and I walked away tired and frustrated. I didn’t really know what I was doing wrong. Every time I raised questions at conferences about how to succeed at pair programming I didn’t get any good answers.

The problem is that pair programming is not that easy to get right. If you want to be successful doing it, you need to be at least twice as performant (for some definition of performance) as a single person. You also need to avoid burnout that comes with working harder than you would by yourself.


Thankfully I kept trying and at one point when programming with Rudy we started doing Pomodoro Technique in addition to pair programming.

Pomodoro is a personal productivity technique that says you should concentrate on a single task for 25 minutes and than take a 5 minute break afterwards, with a longer, 20 minute break every 4 pomodoros.

It turned out that by using Pomodoro we not only got all the advantages of that technique (focus, work rythm, daily planning) but also we avoided the burnout that has followed pair programming for me before.


Once we realized that frequent switching during coding keeps us both fully concentrated, we also added Ping-Pong pair switching technique to the mix.

Ping-pong is a natural extension of TDD to pair programming. You switch at the keyboard for every part of the red-green-refactor cycle, with the first person writing a failing test, the second making it pass and the first person refactoring.

In traditional pair programming you switch at the keyboard every couple of minutes, but what I’ve found is that it is very easy for one person to keep typing for much longer than that. What I’ve also found is that after being away from the keyboard for about ten minutes your mind starts to drift away and you lose your focus on the code being written. With ping-pong we make sure that both of us are fully engaged and focused on the code that we are writing.

The Presentation

If you want to learn more about PPPPP, I recommend that you check out the full presentation below: