Signius
Back to essays

Judgment / October 8, 2026 / 6 min read

Live Pair Programming Is a Knowledge Problem, Not a Productivity Problem

Most discussions about live pair programming miss the point entirely. They treat the question as one of productivity-does putting two developers on one...

Most discussions about live pair programming miss the point entirely. They treat the question as one of productivity-does putting two developers on one screen produce more finished work than leaving each to his own keyboard? That is the wrong question. The more important question, and the one almost nobody asks, is what mandatory pair programming does to the knowledge that makes good software possible in the first place.

When I say live pair programming, I mean the practice of two developers working in real time on the same screen: one types, the other watches, comments, and navigates. The practice has passionate advocates. They point to fewer obvious bugs, faster onboarding for junior developers, and a culture of shared ownership. Some of those benefits are real. But the way live pair programming is sold to engineering leaders is almost always wrong. It is sold as a productivity lever. The truth is that it is a knowledge problem-and when it stops being a voluntary tool and becomes a managerial mandate, it collides directly with the most important economic insight of the last century.

The wrong debate

Most arguments about live pair programming are arguments about throughput. Does two people on one keyboard produce more finished work than two people on two keyboards? Does pair programming reduce defects enough to justify the labor cost? Does it shorten onboarding? Those are legitimate questions, but they are the kind of questions a central planner asks. They assume that productivity is a quantity that can be measured from above and optimized by rearranging the pieces.

Friedrich Hayek's great insight in "The Use of Knowledge in Society" was that the most important knowledge for making decisions never exists in concentrated form. It is dispersed. It is incomplete. It is often contradictory. And it lives in the minds of individual people who are closest to the work. A software developer's understanding of a legacy codebase, a subtle concurrency bug, a fragile deployment pipeline, or an awkward abstraction is exactly that kind of knowledge. Some of it can be written down. Much of it cannot. It is tacit, built through hours of trial, error, and experience. No manager, however intelligent or well-intentioned, can hold it all in his head.

When a manager mandates live pair programming across a team, he is acting as a central planner. He is declaring that he knows when two minds should be yoked together, for how long, and on what tasks. He does not. The senior engineer who needs ninety minutes of uninterrupted concentration to solve a gnarly bug may find that a forced pair session stretches that ninety minutes into a full afternoon of explanation, negotiation, and distraction. The junior developer who would learn more by reading code, writing small experiments, and asking questions on his own schedule may find himself tethered to a senior who does the real work while he watches. The result is not more knowledge. It is less. The very tacit knowledge that makes an excellent developer excellent is drowned in the noise of required collaboration.

The seen and the unseen

Thomas Sowell taught us to judge policies by their incentives and results, not by their stated intentions. The intention behind mandatory live pair programming is usually good: improve quality, share knowledge, build team cohesion. But the actual incentive is different. When every piece of work is produced by a pair, individual effort becomes less visible and individual accountability becomes less clear. Who owns the mistake? Who earns the credit? The answer is no one-and that is exactly the point.

This is the logic of collectivism applied to the workplace. Dissolve the individual into the unit, and you dissolve responsibility itself. A developer who knows his name is on the work is more careful, more invested, and more likely to speak up when something is wrong. A developer whose work is always the product of a pair has every incentive to free-ride, to defer to the stronger personality, and to let someone else carry the weight. That is not a moral failing. It is human nature responding to the incentives a mandate creates.

Henry Hazlitt's one lesson-judge a policy by its effects on all groups over the long run, not just the visible short-run benefit-applies with force. The visible benefit of live pair programming is the bug caught in real time. The unseen costs are the deep work never started, the individual initiative discouraged, the resentment of strong developers who feel watched, and the slow erosion of the very skills that made the team productive in the first place. Those costs are real, even if they don't show up on a sprint board.

Voluntary pairing is spontaneous order

None of this is an argument against pairing when two developers freely choose to work together. When a senior engineer asks a colleague to sit with him on a hard problem because she has knowledge he lacks, that is spontaneous order at its finest. When a junior developer asks a senior to walk through a tricky section of code, that is the voluntary exchange of knowledge through the price system of professional respect and shared curiosity. The key is that it is voluntary. The moment it becomes a mandate, it ceases to be collaboration and becomes compulsion.

Hayek's broader lesson was not that coordination is bad. It was that the best coordination emerges from the bottom up, from individuals acting on their own knowledge and choosing their own forms of cooperation. The same principle that makes free markets work makes software teams work. A team that trusts its developers to decide when to pair, when to work alone, and when to ask for help will always outperform a team whose manager believes he can plan every interaction from above.

The collectivist temptation

The live pair programming debate is not really about software. It is about a recurring temptation that runs through modern institutions: the belief that a central authority can plan human cooperation better than the humans themselves. The same impulse that wants to mandate pair programming is the impulse that wants to plan economies, manage speech, and redistribute outcomes. The answer is always the same. Dispersed knowledge cannot be centralized. Individual merit cannot be collectivized without destroying the very thing that makes it valuable.

I have seen this play out on real teams. A well-meaning engineering director reads a book about agile practices and decides that all complex work must be paired. Within a month, the best engineers are frustrated, the junior engineers are passive, and the team's velocity is no better than before-but the director has a new process to report to his boss. The blame never falls on the mandate. It falls on the engineers, who are told they are resisting change or not team players. The real problem was that the director tried to plan knowledge from the top down instead of trusting the people who actually have it.

What is at stake

At the bottom of this is a question about the kind of work we respect. Mandatory live pair programming sends a message: your individual judgment is not trusted. Your solitary concentration is not valued. Your knowledge is not yours to apply as you see fit. It tells the best people on your team that they are interchangeable parts in a process, not owners of a craft.

The alternative is not chaos. It is a culture of voluntary collaboration, individual accountability, and earned trust. It is a team where a developer can say, "I need a second set of eyes on this," and another can say, "I need two hours alone with this problem." It is a team where merit is measured by results, not by how many hours you spend sitting next to someone else. That is not a software strategy. It is a philosophy of human action-and it is the only one that respects the dispersed knowledge that makes great work possible.

Live pair programming, freely chosen, is a tool. Mandated from above, it is a small tyranny. And the reason most managers don't see that is the same reason central planners don't: they can see the pair talking, but they cannot see the deep thought that never happened, the responsibility that was never taken, or the knowledge that was never allowed to grow. That is the unseen cost. It is the knowledge problem in one codebase. And it is exactly what Hayek warned us about.