Icon for The Pair Programming Model

The Pair Programming Model

The worst way to use AI is as a vending machine. You put in a prompt, you get out a result, you evaluate the result in isolation. This is the delegation model: you know what you want, you tell the machine to produce it, you accept or reject the output. It works for simple tasks. It fails for anything that requires judgment, because judgment is the thing you delegated away.

The best way to use AI -- the way that consistently produces work better than either party could produce alone -- is pair programming.

In pair programming, two people sit at one keyboard. One drives: hands on the keys, writing code, making the immediate tactical decisions. The other navigates: watching the broader structure, catching errors, thinking about implications the driver is too focused to see. The roles swap regularly. The value is not that two people are doing one person's work. The value is that driving and navigating are different cognitive modes, and holding both simultaneously is something humans are bad at.

AI collaboration works the same way, once you stop treating it as delegation.

How the Roles Work

When I am driving -- writing code, drafting prose, working through a technical problem -- Claude navigates. It watches for patterns I am too close to see. It catches logical errors in real time. It suggests alternatives I have not considered. It holds the broader context while I focus on the immediate task. I do not ask it to write the code for me. I write the code while it watches and comments.

When Claude is driving -- generating a first draft, exploring a design space, producing options -- I navigate. I watch for the confident nonsense that language models produce when they are outside their competence. I check the output against my own understanding. I redirect when the direction is wrong. I do not accept the output uncritically. I engage with it as a collaborator whose work I need to evaluate and refine.

The swap is important. If I always drive and the AI always navigates, I get a fancy autocomplete. If the AI always drives and I always evaluate, I get delegation with extra steps. The value comes from fluidity -- from recognizing which mode is appropriate for the current subtask and switching accordingly.

Why It Works Better Than Delegation

Delegation assumes you can specify what you want precisely enough for someone else to produce it. For well-defined tasks, this is true. For creative or complex work, it is almost never true. The specification is part of the work. You discover what you want in the process of making it. Delegation short-circuits that discovery.

Pair programming preserves it. When I am working through a problem with Claude, the solution emerges from the interaction. I start with an incomplete idea. Claude's response reveals aspects I had not considered. My reaction to those aspects refines the direction. Claude adjusts. The result is something neither of us would have produced independently, not because the AI is creative in the way humans are creative, but because the interaction between two different cognitive architectures produces combinations that neither architecture generates alone.

This is not mystical. It is the same reason pair programming works between two humans. Different perspectives catch different things. The navigational view catches what the tactical view misses. The interaction is the product.

The Skill It Requires

Pair programming with AI requires a specific skill that most people have not developed: the ability to maintain your own judgment while genuinely engaging with a collaborator's output. This is harder than it sounds. If you defer too much, you end up rubber-stamping whatever the model produces. If you defer too little, you reduce the AI to a search engine that you argue with. The sweet spot is genuine collaboration -- taking the AI's contributions seriously enough to be influenced by them, while maintaining enough independent judgment to recognize when they are wrong.

This is the same skill that makes human pair programming work, and it is the same skill that most junior developers lack. It is not a prompting technique. It is a collaborative posture. You have to be willing to be surprised by your partner's contribution without being credulous about it.

What Changes

When I switched from delegation to pair programming as my default model for AI collaboration, two things changed. First, the quality of the output improved -- not because the AI got better, but because the interaction generated better specifications, better error-catching, and better refinement than either of us working alone. Second, I learned more. Delegation outsources the work. Pair programming keeps you in the loop, forces you to engage with every decision, and teaches you things about the problem that you would not learn by reading someone else's solution.

The best human-AI work happens when neither party is just following orders. It happens when both are thinking.


Related: When to Stop Listening to the AI, The Art of Pragmatic Prompting, Claude Code Collaboration.