I’ve been pairing for over a decade. I’ve witnessed and tried all kinds of things shoulder-to-shoulder with all kinds of pairing partners. Through the years I’ve witnessed a single consistent misfire while pairing. We don’t understand our roles. As professional problem solvers we gravitate towards actively solving the problem at hand.
Similarly, my daughter just got her driver’s permit and I have to admit that on several occasions I wanted a second steering wheel and brake. This isn’t to say that she’s a bad driver, rather that I like to be in control. Unfortunately you cannot have two drivers in a single vehicle. Wheels can only go in a single direction. Like a car with two navigators, a keyboard can only have a single typist.
In the absence of a second keyboard, way too many developers try to create a voice-activated-keyboard by dictating their thoughts to their pair. This is highly inefficient and counterproductive. If we wanted a single mind and set of hands driving we could just not pair at all. So if you don’t have the keyboard and you can’t play the voice-activated-keyboard game, then what are you supposed to do?
I recently heard a person describe a pair as a “pair marriage”. If this description is accurate then way too many developers are on the verge of divorce. I recently paired with a team member that admitted that he secretly hated his job because of his frustrations with pairing. When I modeled a healthier navigator role he was re-energized. He was finally able to enter a deep train of thought when his navigator gave him space to think and create. Previously his pairs were so focused on co-writing code that it was nearly impossible for him to focus on solving problems. It makes sense that as engineers we want to write code. Nevertheless, sacrificing our personal desires temporarily to focus on the big picture increases your pairs ability to enter a flow state. As navigators we allow the driver to offload their tangents, ideas and insights on us so they can completely focus on the problem at hand. Regular swapping allows each member of a pair to enter “the weeds” while the navigator keeps their focus on the “big picture”. Checkout my article Pair Programming 101 to refocus your navigation approach today.