4 Pair Programming Navigation Tips
2 min read
I’ve done a lot of pairing over the last few years, and I’ve made notes on what has worked well, and what hasn’t. Often, I’ve found it harder to navigate than drive. But, I’ve gotten a lot better with practice.
Here are a few things I keep in mind to be an efficient and pleasant navigator.
1. Be specific, and avoid vague language
Ambiguity is enemy #1 when pairing. You want a clear and direct line of communication with no room for misunderstandings. This can be difficult since what’s trivial to you may not be trivial to the driver. The context your thoughts are operating in is likely to be different from your driver as well. Use clear language to bridge these barriers.
Here are a few practical examples of using specific and direct language:
- “Can we check the yarn output in terminal” instead of “What’s the output?”
- “It’s on line 40” instead of “It’s right there, go down more”
- “Can we go back to the StackOverflow tab on chrome?” instead of “Can we look at that thread again?”
- “Can we look up the python docs for list comprehension” instead of“Let’s google it”
- If you’re screen sharing, use the highlighting tool to point out things that are hard to describe.
All this reduces cognitive overhead for the driver. They will need to spend less time trying to understand and clarify what you’re saying.
Being vague is something I still struggle with. I strive to correct myself when I catch myself using ambiguous language. But, on more than one occasion we’ve had to pause to clarify what I’m saying to get back on the same page.
2. Use ‘we’ instead of ‘you’
Pairing is a team effort. Strive to use “we” instead of using ‘you’ in your conversations.
- “Did we save the user provider file?” instead of “Did you save?”
- “We didn’t recompile” instead of “You didn’t recompile”
This may seem minor, but it helps cultivate an us versus the problemenvironment, rather than a me vs you attitude.
3. Avoid micromanaging
Be cognizant of becoming a micromanaging navigator. This can take the form of phrases like:
- “Type console.log here to print”
- “Create a variable called ‘username’”
- “Press cmd+v to paste it there”
This leads to a frustrating experience for the driver. Give them room to think and problem solve as well instead of spelling everything out for them.
If you are pairing with someone that has never coded in the language before, or is new on your project, it might be necessary to say word by word what to type. But, in this case it might be worth it for you to switch roles as navigator/driver until they’re a bit more comfortable with your codebase.
4. Take breaks
If you are pairing for long periods, it can be exhausting. Having to discuss and justify every line of code can be tiring. Knowledge gaps can exacerbate this effect. Take frequent breaks when you pair. Set a timer, or try the Pomodoro technique together. If you’re feeling tired or frustrated, suggest taking a break or switching roles for a while.
Most of these sound like common sense, but it’s surprising how often we fall into habits like micromanaging and using vague language. Next time you pair, try to incorporate one or two of the above to see the difference.
Happy shipping!