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.
- 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
- 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
- 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
- Using mob programming to solve a problem
- Our top 12 mob programming tips and thoughts
- Experimenting with mob programming to rebuild the GOV.UK Verify frontend
- Pair programming anti-patterns blog, video 7m48s - from Thoughtworks