It’s clear to me that if you have to ask someone to pair with you, it’s already too late.
When I talk about Pair Programming, I inevitably hear, “Ohhh, we’re already doing that. Whenever we have a serious problem, we work together to solve it.”
Exactly. You already know how to do it and you already see a benefit in doing it. You have embraced intermittent pairing. Now, think about why you make that choice. Why do you ask someone to help you? What benefits do you expect to get from that other person? I expect you thought of: provide insights and ideas, avoiding blind spots, reducing complexity, validate priorities, provide larger pool of knowledge, or helping to review design/approach.
Now, take a minute to think about what it would be like to have those benefits all the time. Think about the continuous improvements to design. Think about avoiding many of those blind alleys. Think about having an extra brain to ask you, “Is this the most important thing we should be doing, right now?”
Then, think about the downsides of your current practice of intermittent pairing. Would some of them be improved, or eliminated, if you were collaborating all the time? The effort to bring someone up to speed often discourages us from asking for help. Imagine if their head was already in your context. Imagine if they already had some ideas for improving the design before you even started your conversation? Imagine if they were ready to just grab the keyboard and show you?
That’s just some of what you get when you Pair Program.
Just like code reviews, intermittent pairing suffers from a lack of context and ownership. You have to spend time and effort bringing your assistant up to speed. Even then, they are only partially engaged because this is not their assignment. They are only here for a minute and they are worried about losing the context of their own problem.
We see evidence of this in our own behavior. If you are pulled into help, do you find yourself leaving at the first indication of forward progress? That is your project pulling you back. It’s simply more important than theirs. Good luck getting highly effective collaboration in that scenario. And that’s where the magic happens. Pair Programming isn’t just a tool for solving problems—it’s a mindset for continuous collaboration. By embracing it fully, we unlock the potential for seamless teamwork and extraordinary results.
Next time you’re starting a challenging task, consider pairing from the start. See how it transforms your workflow.
Highly effective collaboration moves mountains with seemingly no effort. It’s a beautiful thing.