I find that the fact that I rarely get stuck for long and the mistakes I make tend to get caught more quickly makes pairing vastly more productive in practice.
The productivity isnt directly in the speed of code output but the compounded effect over time of it being higher quality - meaning vastly less time doing post hoc debugging, bugfixing, reworking code, etc. It is invisible over the space of one or two tickets, visible over weeks and overwhelming over months.
At one company my pairing team routinely (and quietly) worked 9-3:30pm or 4pm while the surrounding nonpairing teams worked overtime and still delivered way less. If you can nail it it really is almost unreasonably effective.
My thinking isn’t logical and it doesn’t use language internally. It’s difficult to explain but, due to mental disability I’m using my visual memory to do all of my information processing.
Let’s say it is not easy to describe a picture in words if things get complex.
Funny enough, the two guys who pushed for it never did any pairing.
The CEO put the kibosh on it when he noticed the staff was not only unproductive but also massively unhappy.
But when I do with someone faster and that actually likes to discuss the implications, philosophy behind what we're doing it's amazing
It does a massive disservice to everybody involved, especially juniors who are never given the chance to prove themselves.