Last active
September 16, 2024 19:06
-
-
Save jordanpoulton/607a8854673d9f22c696 to your computer and use it in GitHub Desktop.
Pair Programming Role Definitions - Driver:Navigator
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
I like these. I am a fan of pairing. Questions should definitely be on the list!
I have in the past seen good results from giving the right questions that guide the driver. More specific questions, and finally instructions if the driver is not picking up. I think questions might foster imaginative solutions and sometimes the driver may come up with a better solution.
Great for Senior/Junior sessions. I will be referencing your definitions in the future!
Thanks for taking the time to write these out! Great stuff!