Josh Branchaud wrote a great thread on Twitter last week about pair programming.
One of the most understated features of pair programming, and a big part of why it is “worth it”, is that you never really get stuck on something for several days, as can happen often when soloing…
Your pair keeps your assumptions in check.
A pair helps you pump the brakes and clarify up front the assumptions about why something is broken or the assumptions about how to implement a feature. This will save a lot of time and discarded work.
our pair keeps your imposter syndrome in check.
No need to “know enough” or have earned asking a question — pairing leads with curiosity, questions, and collaboration.
Josh also goes on to talk about hubris and perfectionism. It’s a good thread, filled with lots of good points. I don’t disagree with him.
I hate pair programming with a passion
I love the idea of getting feedback on my code and having someone ask questions about it. I absolutely hate doing it by coding live with someone else.
I have ADHD. It takes a lot of effort to get myself into a zone. Once I’m there, I’m wildly productive. But if I get interrupted, I lose all of that momentum, and it takes a lot of effort to get it back.
Pair programming? It’s literally constant interruptions and distractions that keep me from ever getting in the zone, let alone maintaining it.
I don’t like it in a mentor/driver seat role either. It’s boring AF. I don’t mean that in an arrogant. I mean that it just literally doesn’t stimulate enough dopamine production to maintain my focus.
So if not pair programming, then what?
I like tight cycles of coding, review, and feedback. Write code, push it up to git, have someone else give you feedback.
I like it even better when it’s framed with specific questions or areas you’re unsure about. I like it best of all when it’s asynchronous.
And if pair programming works well for you, by all means, do it! I know plenty of folks who get a lot of value out of it.
Pair programming doesn’t literally suck, but it does suck for me.