liveBook · Manning

Pomodoro

As explained in "Looks Good to Me"

A pair-programming style that divides work into timed coding intervals separated by breaks, with roles switching between intervals.

Pomodoro is a pair-programming style that divides work into timed intervals. One developer drives while the other navigates; after each interval, they switch roles. section 11.2.2

Use the rhythm as a practical starting point:

  • Code for 25 minutes, then take a 5-minute break. section 11.2.2
  • Switch driver and navigator roles after every interval so both developers participate and review. section 11.2.2
  • After four intervals, take a longer 20-minute break. section 11.2.2
  • Favor Pomodoro for work benefiting from two perspectives, such as critical systems, core libraries, unclear problems, architecture, complex refactors, and experiments. section 11.2.3
  • Avoid forcing pairing across the whole day; preserve individual work time and begin with sessions lasting roughly 30 minutes to an hour. section 11.2.3

A focused pairing cycle

A pair starts a feature with one developer driving and the other navigating. They code for 25 minutes, break for 5 minutes, then switch roles. After four rounds, they take 20 minutes away from the pairing session before deciding whether more collaboration is worthwhile. section 11.2.2 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 Pomodoro with driver-navigator and driving-school pairing styles, including their participation patterns and trade-offs. section 11.2.2

How "Looks Good to Me" covers it

How deep it goes
Defines the timing and roles, then recommends duration limits and task-selection criteria without prescribing detailed implementation technique.
Examples
Uses 25-minute coding intervals, five-minute breaks, four-round cycles, and complex feature or refactoring work as examples.
What it assumes
Assumes familiarity with pair-programming roles while making the timing and switching routine explicit.
What you can do after
Apply via pair programming by scheduling intervals, rotating driver and navigator roles, and selecting work that benefits from collaboration.
How it connects
Connects pair programming with driver-navigator pairing, role rotation, focused work, complex tasks, and individual work time.

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.