Pair programming involves having two developers work on the same task in two distinct roles - the Driver and the Navigator. The driver has their hands on the keyboard and is the one who is physically typing out the code and manipulating the code editor. The Navigator is responsible for keeping an eye on the bigger picture and spotting potential pitfalls with ideas before they can happen.
Depending on the style of pair programming, the roles are reversed on a regular basis using either time, milestones or a failing test as the trigger to switch.
As an additional experiment for Serve-OPG, all code written should be as part of a pair. As with TDD, we can evaluate once the project is complete to see the impact this has on the code and the coders.
Tuple has a great pairing checklist that is included below to start things off on the right foot:
[ ] Agree on the high-level goal out loud.
[ ] Break the work into a handful of tasks and prioritize them.
[ ] Decide your driver/navigator swapping strategy.
[ ] Configure git to share credit.
[ ] Eliminate distractions.
[ ] Work.
[ ] Analyze the session with a mini retro.
Full info on each step can be found here along with some recorded pairing sessions.