Table of contents

Pair programming

The developers role

Pair programming is an important practice for delivering valuable, high quality software.

When it’s done well, it has a number of benefits:

  • it helps to spread a knowledge of the code and software design around the team
  • it improves the flow of work by reducing work-in-progress. Stories flow faster through the team, with less thrashing.

What is it?

Pairing is a collaborative practice where two people bring their focus and attention to bear together on a problem or task.

How do I learn/get good at it?

Pairing is not easy. It takes practice and sensitivity. It’s an intensely human activity which requires paying a kindly attention to yourself and your pairing partner to bring out the best in each of you.

Junior level

  • Have a clear understanding of the story, be able to explain it to your pair
  • Discuss approaches with pair
  • Use techniques such as ping pong (one person writes the test the other implements) to ensure rotation of roles
  • Collaborate with pair to agree an order for tasks
  • Recognise when to take breaks

Mid level

  • Take responsibility for ensuring your pair remains engaged, slowing down when needed
  • Give feedback to your pair on style
  • Recognise when to take time away from the computer to explain concepts and ideas. This might mean using a whiteboard or some paper and a pen.
  • Draw pair into discussion around design and approach

Senior level

  • Effectively pair with developers of all levels.
  • Recognise the strengths and weaknesses of your pair, and how these relate to your own strengths and weaknesses. Use this knowledge to adapt behaviour appropriately

 Mob programming

Additional resources

This page was last reviewed on 17 January 2019. It needs to be reviewed again on 17 April 2019 .
This page was set to be reviewed before 17 April 2019. This might mean the content is out of date.