Originally posted September 12, 2016 on cocktailmonkey.blog
Pair programming: people hate it, people love it. Once in a while I see a pair get stuck in a version of pair programming chicken: neither person wants to be the first to blink. But remember, everyone eventually needs to pee, even if they’re working in a pair!
These are some simple practices you can try to make the most out of your pair session:
Before you Begin, Talk:
- Talk with your partner about what style of pair programming you’ll use. Will you use Driver / Navigator, Ping Pong Pairing, or Llewellyn’s Strong-style Pairing?
- If you are using Driver / Navigator, how often will you swap roles?
- How long do you want your pair session to last?
- How often will you take breaks? Will you work in a pomodoro?
- Does one of you have to run off for a half hour right in the middle of your session? What will the other person do when that happens?
In the Middle, Talk:
- If your partner is doing something that isn’t working for you, stop and have a quick chat about it. Did she get distracted by her cell phone? Is he tapping his fingers in Morse code on the desk?
- If you find your energy or concentration is flagging, stop and take a break. Move around, grab a snack, answer some email, and come back when you can focus again.
- If your session has been going great, but you find that the next thing set of tasks aren’t ones you feel need to be paired on, talk about it and figure out how to proceed. Do you go do parallel tasks, then come back together after? What’s best for your situation?
- If you find that for whatever reason, the session isn’t working, and you can’t fix it, then stop it. Swap partners and start a different session, or grab something you can work on solo.
At the End, Talk:
- Take 5 minutes at the end of each session to debrief with your pair partner. Consider these things:
- Technical topics: Did you take a left turn somewhere you should have gone right, or did you fall into a rabbit hole? How could you recognize that earlier next time?
- Interpersonal issues: Did you sense tension or anger during the session? What was that about? Where you angry at your pair partner, at the code, or something else? What was really going on?
- Communication issues: Did you both understand each other, or were you talking across each other? Did one person do all of the talking? How could you communicate better in the next session?
- Physical issues: Did you go too long without a break? Did one of you get distracted or bored? Did you swap roles often enough? What would you change for the next session with this person?
Above all, remember that if you are pairing, you are doing so to get some value out of the practice. You likely want things like higher quality code, shared knowledge, the combining of each person’s skills to create something greater than you could do separately. Sometimes you’ll pair to help onboard a new team member, or quickly learn a new part of the product. Whatever your reasons, if you are not getting the value you want, figure out why.

Leave a comment