We entered pair programming by first implementing Code Inspections. Standards were set. Statistics were maintained. We proved that Code Inspections was valuable for C++ code.
The next step was to physically re-organise the rooms, desks and teams. We did not end up with pairs working on one screen all the time. But only when certain challenges arose. So the pair may be together to discuss the next task, to define the FACE, to discuss the test harness structure, to write the “hard” bits and then to discuss why any test failed.
This ensures that the Pair have exactly the same concept in mind. When separated one tended to work on the test harness and setting up the test cases and one on code. All code was reviewed particularly against standards. Each pair found their own pattern of what to do together and what to do alongside each other.