Skip to content

Instantly share code, notes, and snippets.

Last active November 19, 2019 04:49
What would you like to do?
Pair Programming Roles


  • Write the code according to the navigator's specification
  • Listen intently to the navigators instructions
  • Ask questions wherever there is a lack of clarity
  • Offer alternative solutions if you disagree with the navigator
  • Where there is disagreement, defer to the navigator. If their idea fails, get to failure quickly and move on
  • Make sure code is clean
  • Own the computer / keyboard
  • Ignore larger issues and focus on the task at hand
  • Trust the navigator - ultimately the navigator has the final say in what is written
  • You are writing the code


  • Dictates the code that is to be written - the 'what'
  • Clearly communicates what code to write
  • Explains 'why' they have chosen the particular solution to this problem
  • Check for syntax / type errors as the Driver drives
  • Be the safety net for the driver
  • Make sure that the driver sticks to the small task at hand
  • Outline and note down high level tasks / issues
  • Ongoing code review
  • Pay attention
  • Wait until the task is complete to bring up design / refactoring issues


  • Actively take part in programming
  • Aim for optimal flow - avoid trying to be 'right'
  • Embrace your role
  • Intervene if your pair is quiet
  • Know when to give up / steal keyboard
  • Communicate, communicate, COMMUNICATE!
  • Sync up frequently to make sure you are on the same page
  • Don't hog the keyboard
  • High-five every time a test passes
  • Follow best practices for TDD
  • Swap roles frequently

Manually forked from jordanpoulton/pair_programming_roles

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment