---
title: "Pair Programming Explained"
description: "Pair Programming Explained presents pair programming as two people writing, debugging, or exploring code together, while explaining why Shopify uses it for knowledge sharing, collective ownership, learning, quality, and onboarding. It defines terms including problem, solution, driver, navigator, expert, novice, and disengagement, and stresses that the driver handles implementation while the navigator guides broader strategy and spots errors. Guidance covers when to pair, the trade-offs among expert-expert, expert-novice, and novice-novice combinations, and the risks of “watch the master” or disengagement. Suggested practices include switching roles with the Pomodoro Technique, using Strong Style or Digging for Gold, and holding a retrospective to discuss flow, learning, and tension. The article presents pairing as a focused collaborative practice that benefits from shared attention, regular breaks, and deliberate communication rather than an unstructured coding session."
---

# Pair Programming Explained

[Shopify](https://yomu.fyi/company/shopify) · 2023-10-18 · May 9, 2019

**Type:** Explainer

## Summary

Pair Programming Explained presents pair programming as two people writing, debugging, or exploring code together, while explaining why Shopify uses it for knowledge sharing, collective ownership, learning, quality, and onboarding. It defines terms including problem, solution, driver, navigator, expert, novice, and disengagement, and stresses that the driver handles implementation while the navigator guides broader strategy and spots errors. Guidance covers when to pair, the trade-offs among expert-expert, expert-novice, and novice-novice combinations, and the risks of “watch the master” or disengagement. Suggested practices include switching roles with the Pomodoro Technique, using Strong Style or Digging for Gold, and holding a retrospective to discuss flow, learning, and tension. The article presents pairing as a focused collaborative practice that benefits from shared attention, regular breaks, and deliberate communication rather than an unstructured coding session.

## Context

Shopify uses pair programming to share knowledge, create high-quality solutions, support onboarding, and integrate new team members into existing teams. The article aims to help other teams understand and adopt the practice, while addressing the difficulty of entering pairing sessions without preparation.

## Approach / What changed

The article explains pair-programming terminology, distinguishes driver and navigator responsibilities, compares expert-expert, expert-novice, and novice-novice pairings, and offers practical techniques including Pomodoro, Strong Style, Digging for Gold, retrospectives, and communication prompts.

## Takeaways

- The driver focuses on immediate implementation details such as naming, local refactoring, method logic, coding style, and running tests; the navigator sets broader direction, keeps the work on track, and notices errors or refactoring opportunities.
- Expert-novice pairing offers mentorship and questioning of the status quo, while novice-novice pairing can produce substantial learning and novel solutions but may reinforce bad practices or get stuck.
- Pairing is tiring because it requires sustained focus; the article recommends breaks at least every two hours and emphasizes checking that both pairers remain engaged and aligned.

**Tags:** [Mentorship](https://yomu.fyi/topic/mentorship), [Onboarding](https://yomu.fyi/topic/onboarding), [Pair Programming](https://yomu.fyi/topic/pair-programming)

- Source: [Shopify](https://shopify.engineering/pair-programming-explained)
- Source URL: https://shopify.engineering/pair-programming-explained
- Ingested by Yomu: 2026-08-31T01:14:18.337Z

[Read original post](https://shopify.engineering/pair-programming-explained)
