Skip to content

Instantly share code, notes, and snippets.

@alonsoir
Forked from jordanpoulton/pair_programming_roles
Created September 3, 2020 10:48
Show Gist options
  • Save alonsoir/e06c6658a55faa865da72387426b13c4 to your computer and use it in GitHub Desktop.
Save alonsoir/e06c6658a55faa865da72387426b13c4 to your computer and use it in GitHub Desktop.
Pair Programming Role Definitions - Driver:Navigator
Driver:
-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
Navigator:
-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
Both:
-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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment