Does Pair Programming make sense in the AI era?
Perhaps one of the most potent practices XP encourages, and also in my experience the most consistently underrated, is pair programming.
I worry AI will disincline engineers even further from it.
There is an argument to say that working with an AI can isles be a form of pairing.
Without a doubt, LLMs can make for an incredibly effective collaborator, brainstorming partner, and of course code writer.
But this mainly makes sense if we view what software engineers/developers/cultivators do as primarily writing code. As I’ve argued elsewhere, this is (and always has been) the most limited part of what the job entails.
The need for software cultivation
Software is evolving. It remains to be seen whether intelligence has been created artificially through neural networks yet, but there is nothing theoretically that could prevent it from happening.
According to
1, pair programmers:Keep each other on task
Brainstorm refinements to the system
Clarify ideas
Take initiative when their partner is stuck, thus lowering frustration
Hold each other accountable to the team’s practices.
An LLM can certainly do some of these, but only when asked or trained to do so, and only with sufficient context (context sharing being another one of the best benefits of pairing).
But it is the first and last of these which stand out as being something only humans can do effectively - accountability through peers.
The statement ‘this is how we do things’ is a powerful force for shaping human behaviour. No matter how well-trained an LLM, it will never have the influence through positive peer pressure that a fellow human has - biological hardware isn’t easy to override.
So, does pair programming make sense in the AI age?
The answer is not so straightforward.
The end of pair programming as we know it
Pair programming is one of those things that needs to be experienced to be fully appreciated.
Extreme Programming Explained, Kent Beck with Cynthia Andres, 2nd Edition, p.42