Pair Programming: Fatigue
“Uncomfortable pairing causes neither to make the best technical decisions at the time.” –unknown
Social interactions hit people differently; while some thrive in them, others are drained by them. Empathy for your partner’s emotional well-being and the maturity to express yourself when you feel drained will go a long way. There is nothing wrong with the taxation of pairing. Make sure, though, you are taking breaks along the way and giving each other a safe forum to speak up when the pairing session has run its course.
Often, just taking an unscheduled break early and then switching the Driver Navigator roles will go a long way. However, some participants may be struggling in other ways, and they continue to surface. It is essential to both talk through the interactions to improve your pairing and be empathic enough not to become overbearing to your pairing partner. If things continue and slight improvement between the two happens, it may just be a judgment call to not pair together for a while and let the two explore pair programming with others for a time. While we benefit from good pairing, we suffer hits to productivity and happiness with continuously bad sessions.
Look Out For; Drifting Apart
“These distractions might come across as direspectful to your pair, and they distract you from the task you are working on.” – On Pair Programming
While everyday distractions happen, it is noteworthy to identify a difference between normal levels and someone who is not engaged in a given pairing session. If you find yourself or another overly passive or distracted, feel free to address it and consider whether a break would help or if another time entirely would be a good time to pair.
Let your pair know if you feel you don’t understand something or feel disengaged, pressured, or pushed prematurely into a solution.
Look Out For; Confused Participants
Confusion happens when we have misunderstandings about the problems we are trying to solve. Any time you have a participant in a pairing with a high level of confusion, the pairing session will suffer.
Usually, when programming alone and you run into confusion about the path you are taking, you generally slow down, do some investigation, potentially seek outside help, and eventually get back on track. With a pairing session, you want to perform the same tasks but make sure both participants are along for the process and get to the same understanding before continuing.
If you find one of the participants confused more than the other, motivate them to drive more, talk through the problem with you, and help them get past the roadblocks that are getting in their way. Once everyone is back in sync, go back to regular role switching cadences.
Look Out For; Conflicted Teammates
“Personality differences are more disruptive to productivity than in solo programming.” – Pair Programming: What’s in it for me?
An impasse between two travelers at a fork in the road is a tough challenge to overcome. One can simply concede to the other, one could force their way, the two could sit and wait for the environment to change and decide for them, or they continue to try to reconcile their differences in understanding.
At some point, you will find yourself just not agreeing with the direction the solution is going for the problem the pairing is trying to solve. Whatever decision the two of you go is not as important as staying as open-minded as you can be empathic towards your partner.
Before you start down a path, make sure you have talked through the pros and cons of both directions and do any light research needed to support the potential issues either is bringing up. If the pair can not make a judgment call still, seeking outside advice from another team member can be helpful too. Though, it is essential to understand that it is a very human thing for either/both of the participants to become emotionally attached to their idea. If you find yourself in this kind of standoff, take a step back, take a deep breath, and truly consider their perspective.
Don’t sweat it if you find this happening every once in a while with a pair, do your best to be respectful and ask that they do the same, and it will almost always work itself out. A pattern with any given pair should leave the participants with some self-reflection. Leaving all involved with considering whether they should take a break from pairing with each other for a while.
Look Out For; Impatience
“When the navigator sees the driver do something “wrong” and wants to comment, wait at least 5 seconds before you say something - the driver might already have it in mind, then you are needlessly interrupting their flow.” – On Pair Programming
First and foremost, remember that people work at different speeds. Pairing with another is not about pushing through something as quickly as possible. It is about navigating a complex problem with two brains instead of one. If you feel that your patients are being worn thin, consider a forced pause before you point something out or push someone in a direction. We do not want to create a dynamic where we interrupt each other or come in strong when someone is not doing things the way we want them to.
Allow your partner to do things their way, and expect them to respect your way when driving. While it is one thing to have subtle differences in style or approach, it is another to have completely different belief systems. As long as the differences are slight, try not to sweat it.
If you notice these feelings popping up, strongly consider applying an “X second rule” before engaging with your pair. Start at 5 seconds and let that climb 5 seconds each time it occurs in a pairing session. If the duration continues to rise and you find yourself at a delay of 60 seconds or, so you might have to talk with your partner and do some self-reflection.
After all of that, if you still find yourself unhappy with your pair and are struggling with impatience, it would not hurt to consider taking a break from pairing with them for a bit.
Look Out For; Micro-Management Mode
“It doesn’t leave room for the other person to think and is a frustrating experience” – On Pair Programming
No joke, watch out for micro-management. It can singularly tear down many strongly built relationships and leave you with long-term damage. If you find yourself in these kinds of interactions, you need to address them early on. A pairing session is about sharing cognitive ability to solve complex issues in better ways than one would alone. When participants take control and dictate every minor detail of the process, they bypass the entire process while putting the other “in their place.”
Each participant needs to want to hear from their partner. They have to want to explore all ideas brought between them. Together a shared judgment call needs to be found. For whatever reason, if a participant finds themselves not wanting or accepting these concepts, pairing is most likely not for them.
It is a fine line to walk between sharing knowledge and managing another. When you have something to share with another, ask yourself if it would interrupt the flow in progress or improve the moment. If it does not improve the immediate situation, there is nothing wrong with letting someone work through their task and then approach it afterward.
An ask. “I have a shortcut for that thing you ran into earlier. Do you want to see it?” will sit better than an interruption to fix the way someone clicks their mouse an extra time or two while they are accomplishing a task.
Everyone’s approach is different, but if you have not thought of it before, it is worth mentioning that overly correcting someone can be a challenge for those who receive the corrections. Sometimes it is good to drop knowledge on another and then let them digest it over time. If you find that there has been much sharing throughout a session, actively slow down and start asking if they want more advice as it pops up.
Like many other fatigues, watch out for the symptoms, find ways to reset yourself and build patience, allow your pair to explore, be comfortable talking through pain points with your partner, try not to sweat the small stuff, and try your best not to split hairs.