Pair programming is a disciplined approach to writing software. It assigns specific roles and responsibilities to each pair member, defines strategies to switch positions, and promotes breaks to avoid pairs exhausting themselves.
Pair programming is about shortening the feedback loop when writing code. It is easier to change software as we write it. To validate our ideas, we can discuss design choices in real time with an unbiased peer. If we have an extra person reviewing while we write code, we reduce the feedback loop to a few seconds. And the faster the feedback, the faster we converge on a quality-rich solution. Lean thinking applied!