liveBook · Manning

Driver-navigator style

As explained in "Looks Good to Me"

A pair-programming style in which one participant guides or explains the implementation while the other performs the coding.

The driver–navigator style is a pair-programming pattern for two developers sharing a workstation or collaborative IDE. The driver writes the code; the navigator reviews it in real time, raises edge cases, spots unclear logic, and discusses alternatives. Both should communicate continuously and switch roles often so each person contributes and reviews. section 11.0

Use the style deliberately rather than treating it as a universal team rule:

  • Start with an hour-long session or a small task, then assess whether pairing improves the team’s development process. section 11.2.2
  • Pair developers with comparable skill levels and compatible personalities; otherwise, one person may drive throughout or the navigator may become passive. section 11.2.2
  • Keep sessions short, use a workstation that makes role switching easy, and pair for specific tasks rather than continuously. section 11.3
  • Keep code reviews: pairing catches issues early, but does not create a historical record, broad team context, or an unbiased review. section 11.3

A small-task pairing session

For one sprint task, two developers share an online IDE. One writes the implementation while the other checks the code as it appears, asks about missed edge cases, and challenges vague names or unclear logic. They switch roles during the session, then submit the resulting change for normal code review. section 11.0 section 11.3

Table 11.1 Pair programming pairing styles
Pair style
How it works
Pros
Cons
Driver-navigator
One driver: focuses on writing the actual code
One navigator: focuses on reviewing the code being written in real time
Most common; the pair has equal chances to contribute and review
Uneven personality matches might result in a single driver the entire session; the passive navigator might not review as effectively
Driving school
One navigator: focuses on giving tactical, direct, and detailed instructions to the driver
One driver: follows the navigator’s instructions
Can be useful if the pair has previously discussed a solution about to be implemented
Stronger personality might unintentionally perform this style when paired with a more timid developer
Pomodoro
One driver, one navigator (as in driver–navigator style)
Pair program in 25-min intervals; 20 min coding, 5 min break. Then switch roles
Equal participation time between the pair; naturally breaks down pairing sessions into manageable chunks
Constant switching might be hard for some developers; can be difficult for pairs with different skill levels
Timing might be an anxiety driver (“I only have 5 min left to finish this”)
Tour guide
One driver: focuses on explaining and implementing code
Multiple navigators: passively listen to driver
Useful for onboarding or when new implementation has to be shared with the greater team
Passive listeners can grow bored or “zone out” as they don’t get to participate in actual code writing
Ping-pong
One writes a test; developers switch; currently active developer writes code to pass the test. Writes the next test and then switches; cycle continues
Great with Test-Driven Development; useful for range of skill levels
Constant switching might be hard for some developers; can be difficult for pairs with different skill levels
Tag-team
One driver, one navigator (as in driver–navigator style); switch driver role as the pair sees fit
Casual, free-form; developers decide when to switch
If one favors more control or is more passive, switching may not occur as frequently

Compare driver–navigator with driving school and Pomodoro pairing styles, including their operating patterns, benefits, and risks. section 11.2.2

How "Looks Good to Me" covers it

How deep it goes
Explains roles, communication, switching, team fit, session size, and limitations, but does not prescribe a universal workflow.
Examples
Uses shared workstations, online collaborative IDEs, role switching, edge-case discussion, and small sprint tasks as examples.
What you can do after
Apply it by assigning driver and navigator roles, switching them frequently, limiting sessions, and retaining code review afterward.
How it connects
Connects pair programming with code reviews, remote collaboration, personality matching, and alternative pairing styles.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of "Looks Good to Me". The section links point to the parts of the book it draws on.