Pair Programming is Just Babysitting: I Code Faster Alone
They tried to make me do pair programming once. Once. I spent the entire session explaining basic concepts while my code sat there, unwritten, judging me.
The Pair Programming Math
1 developer = 1 unit of productivity
2 developers = 2 units of productivity (you'd think)
ACTUAL MATH:
1 developer = 1 unit of productivity
2 developers = 0.3 units of productivity + 3 hours of "let me explain..."
Why Pairing Doesnât Work
| What They Say | What Actually Happens |
|---|---|
| âTwo sets of eyes catch more bugsâ | Two sets of eyes watch Netflix on the second monitor |
| âKnowledge sharingâ | I share knowledge, they forget it |
| âBetter code qualityâ | We argue about semicolons for 2 hours |
| âReduces bus factorâ | The bus seems increasingly appealing |
| âReal-time code reviewâ | Real-time judgment |
The Roles
In pair programming, thereâs supposedly a âdriverâ and a ânavigator.â In reality:
Driver: Does all the work
Navigator: Says "I would have done it differently"
Checks phone
Gets coffee
"Can you scroll up?"
"What does that line do again?"
"Actually, scroll back down"
The Switching Problem
âYou should switch roles every 30 minutes!â
Do you know how long it takes me to get into flow? At least 45 minutes. Every time I switch, I restart from zero. Pair programming is just institutionalized context switching.
The Conversation Overhead
Solo coding:
Brain: "I should refactor this"
Fingers: *refactors it*
Pair programming:
Brain: "I should refactor this"
Mouth: "Hey, I'm thinking we should refactor this"
Them: "Refactor what?"
Mouth: "This function here"
Them: "Which function?"
Mouth: *points*
Them: "Oh, why?"
Mouth: *explains for 15 minutes*
Them: "I don't know, it's fine"
Brain: *screams internally*
As XKCD 1319 Shows
Automation can end up taking more time than manual work. Similarly, âcollaborationâ can take more time than just doing it yourself.
I can write a feature in 2 hours alone. With a pair? 6 hours of âdiscussionâ followed by me writing it in 2 hours while they âtake a quick call.â
The Social Exhaustion
I became a programmer specifically so I wouldnât have to talk to people all day. Now you want me to talk to someone while I work? Thatâs not a job, thatâs a podcast I didnât consent to.
class Introvert:
def __init__(self):
self.social_battery = 100
def pair_program(self, hours):
self.social_battery -= hours * 30
if self.social_battery < 0:
raise BurnoutException("Please leave me alone")
The Dilbert Reality
The Pointy-Haired Boss loves pair programming. Twice the people on one task means twice the headcount justification! Itâs management math.
Meanwhile, Dilbert and Wally âpairâ by sitting next to each other, one coding and one sleeping. Thatâs the only pairing I endorse.
The âLearningâ Excuse
âBut junior developers learn from seniors during pairing!â
They could also learn from:
- Documentation (if we wrote any)
- Code reviews (after Iâve finished)
- Stack Overflow (their natural habitat)
- Suffering alone (builds character)
Senior-Senior Pairing
The only thing worse than pairing with a junior is pairing with another senior:
Developer A: "I'll use a factory pattern here"
Developer B: "Actually, I prefer a builder"
Developer A: "Factory is more flexible"
Developer B: "Builder is more readable"
*3 hours later*
*No code written*
*Both have opened LinkedIn*
The Mob Programming Nightmare
Pair programming wasnât bad enough, so they invented âmob programmingâ â where the entire team works on one computer.
Thatâs not programming. Thatâs a spectator sport where nobody wins.
My Preferred Pairing Setup
Monitor 1: My code
Monitor 2: My other code
Headphones: In
Slack: DND
Door: Closed
"Pair": Imaginary rubber duck
Conclusion
The best code is written in silence, in darkness, at 2 AM, with no one around to suggest a different approach.
Pair programming assumes that collaboration improves outcomes. But you know what also improves outcomes? Being left alone.
The authorâs last pair programming session ended with âcreative differences.â The pair was a mirror.