Pair Programming

Increasing the knowledge sharing and communication between team members

What is it?

  • An agile practice where two team members work together on one workstation (one keyboard and mouse) to implement a feature.

Why use it?

  • Enable knowledge sharing between team members.
  • Increased quality of work as it is reviewed and improved simultaneously.
  • Building of trust between team members.

It is not for:

  • Teaching domain
  • Mentorship
  • Showing code
  • Getting confirmation
  • Finding bugs

How to do it?

  • The team member behind the keyboard and mouse is the driver. The driver is focused on performing the actual work.
  • The other team member is the navigator or observer. The navigator is focused on the strategic outcome of the work being performed.
  • The navigator reviews the work being performed by the driver as it is done.
  • While reviewing, the navigator keeps in mind the end goal and ensures the current task is working towards it.
  • Switch the roles often, for example every 15 minutes, for the team members to experience the different aspects of the work.

Tips for remote pairing

  • Both pair and mob can be applicable to programming and also other kind of documents
  • Easy to apply if the team can use the same tools for documents and whiteboard
  • We activate our cameras all the time
  • A very simple way of a continuous open video conference with Video/Audio to be in the same room.
  • Video Conferencing based pairing and mobbing is possible with BlueJeans using breakout sessions feature as described in the instructions.
  • For documentation at the beginning it can be very useful to allow the team to go through a diverging phase, adding all ideas on an empty document, then you can move to a converging phase where the structure of the document is agreed and the work divided among the team
  • If the team needs to distribute the workload to create the documentation, for the converging phase you can also track who is in charge of which part, and this is also easier to keep track of the status
  • For a documentation mob, everyone can initially type in a document simultaneously, which is different to a programming mob that has only 1 person at the keyboard
  • Should rotate role for leading the sessions to increase the team engagement with less passive behaviours and reduce tiredness on a single person acting as lead
  • One facilitator shares the primary screen, showing the tool to allow everyone to understand where is the focus
  • If the tool you are using allows you to see where are the people in the room, it is very helpful to be focused on the same topic
  • Short rotation periods keep everyone concentrated and every opinion in the mix
  • It’s ok to have periods of silence where people are thinking and working. Someone doesn’t need to be talking throughout the session.

Further Information

https://en.wikipedia.org/wiki/Pair_programming

https://medium.com/@springdo/the-last-unicorn-developer-pairing-and-mobbing-c2caaa29b54

https://speakerdeck.com/lemiorhan/unwritten-manual-for-pair-programming

0%