liveBook · Manning

Driver

As explained in "Looks Good to Me"

The pair-programming role responsible for controlling the active development environment and writing or editing code.

In pair programming, the driver controls the shared workstation or collaborative IDE and writes or edits the code. The navigator reviews that code in real time, while both developers communicate and switch roles regularly. section 11.0

A driver works effectively by:

  • Implementing the agreed solution while keeping the navigator involved rather than treating the session as solo coding. section 11.0
  • Accepting real-time feedback about flaws, edge cases, unclear logic, variable names, and alternative solutions. section 11.0
  • Switching roles often and choosing session length, pairing style, and partner skill balance according to team context. section 11.0 section 11.2.2

A healthier pairing pattern

Two developers implement a sorting filter for a Table component, exchange driver and navigator roles, then preserve shared contribution through co-authored commit attribution. By contrast, an experienced developer who keeps the driver role can leave a junior partner passive. section 11.2.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 pairing with driving-school and Pomodoro variants before selecting a style for a task or team. section 11.2.2

How "Looks Good to Me" covers it

How deep it goes
Explains responsibilities, feedback dynamics, role rotation, pairing styles, and skill-balance risks without detailing coding mechanics.
Examples
Uses shared-workstation coding, a Table component sorting-filter commit, co-authored attribution, and contrasting senior–junior pairing outcomes.
What it assumes
Assumes two developers and a shared workstation or collaborative IDE, while establishing the driver–navigator division from the beginning.
What you can do after
Apply pair programming by sharing implementation control, responding to live review, and rotating roles deliberately.
How it connects
Connects pair programming with the navigator role, code review, shared context, role rotation, and collaborative development environments.

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.