Skip to main content

Pair Programming

Two developers working together on the same code.

Also Known As

Related

Addresses / Mitigates

Attendant Risks

  • Coordination Risk: Requires coordination around time, place, activity and skills.
  • Schedule Risk: Can slow down individual productivity, impacting overall schedule.
  • Agency Risk: Staff might not like working in this arrangement.

Used By

  • Extreme Programming: XP encourages two developers working together at one workstation, which improves code quality and facilitates knowledge sharing.
  • Lean Software Development: Lean encourages collaboration through cross-functional teams.

Description

"Pair programming is an agile software development technique in which two programmers work together at one workstation. One, the driver, writes code while the other, the observer or navigator, reviews each line of code as it is typed in. The two programmers switch roles frequently." - Pair programming, Wikipedia

Pair Programming involves two developers working together on the same code. One developer writes the code while the other reviews each line in real-time, providing instant feedback and suggestions. This practice not only improves code quality but also facilitates knowledge sharing and collaboration between team members.

Variations

Pairing StyleDescriptionReference
Driver-NavigatorOne developer writes code (driver) while the other reviews and guides (navigator).Pair Programming, Wikipedia
Ping-Pong PairingDevelopers alternate writing tests and implementation code in a TDD style.Ping Pong Pair Programming
Mob ProgrammingThe entire team works together on a single task at one computer.Mob Programming, Wikipedia

See also: Crisis Mode

Used By

Extreme Programming

Extreme Programming

An Agile software development methodology that emphasizes customer satisfaction, teamwork, and frequent delivery of small, functional software increments.

Why: XP encourages two developers working together at one workstation, which improves code quality and facilitates knowledge sharing.

Uses:
  • Collective Code Ownership
Lean Software Development

Lean Software Development

An Agile software development methodology that emphasizes eliminating waste, building quality in, creating knowledge, deferring commitment, delivering fast, respecting people, and optimizing the whole.

Why: Lean encourages collaboration through cross-functional teams.

Uses:
  • Cross-Functional Teams