Driver Navigator Pair Programming
Pair programming consists of two programmers sharing a single workstation (one screen, keyboard and mouse among the pair). The programmer at the keyboard is usually called the “driver”, the other, also actively involved in the programming task but focusing more on overall direction is the “navigator”; it is expected that the programmers swap roles every few minutes or so. DriverNavigator is a rather simple driver update utility which can scans your PC for device drivers which may have updates available. Click once on the Canon 5600F Scanner Driver and then click Uninstall at the top. Follow the on screen prompts to uninstall. Once complete, click once on the Canon MP Navigator EX and click on Uninstall at the top. Follow the on screen prompts to uninstall the MP Navigator EX. When both are uninstalled, please restart your computer.
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 |
commented Mar 15, 2018
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! |