Why should we promote a pairing culture? ๐ณ
Pairing offers numerous valuable benefits that help enhance team dynamics and professional growth ๐ด:
- Knowledge Exchange and Growth ๐
- Mentoring and reverse-mentoring
- Accelerated skill development ๐น
- Effective knowledge transfer
- Team Development ๐
- Enhanced communication skills
- Stronger collaborative relationships
- Faster onboarding of new members
- Organisational Benefits โ
- Elimination of knowledge silos
- Continuous team up-skilling
- Improved project outcomes through shared expertise
As part of the PaaS team at Xero, when managing core CI/CD tooling, our team frequently encounters diverse customer requests ๐. While balancing these support responsibilities with our planned sprint work, we sometimes face challenging situations, including:
- Attempted solutions that didn’t yield the expected results ๐ค
- Uncertainty in problem-solving approaches or gaps in technical expertise ๐ฅ
In this case, we recommend our team members to spin up a pairing session so that we can work together. When troubleshooting a problem independently for an extended period, it’s common to develop tunnel vision and miss out on alternative solutions ๐. Having a fresh pair of eyes ๐ to examine the situation can provide valuable new perspectives and potentially reveal overlooked solutions that might have been hidden by our focused approach.
How do we promote a pairing culture?
Jira (Atlassian) Setup
In Jira: which is a tool for project management, we utilise the pear icon ๐ to designate pair programming collaborators on tickets! ๐ซ
E.g. <Jira Title> ๐ Will
We’re looking forward to Jira implementing either a dedicated field in the Details section or native support for multiple assignees, which would streamline the process of tracking and documenting pair programming sessions on tickets!
Slack Setup ๐
We have three slack channels setup!
e.g.
#<team_name>-pair-1
#<team_name>-pair-2
#<team_name>-pair-3
Based on our experience, the number of concurrent pairing sessions has never exceeded three, which has proven sufficient for our needs. The optimal number of pairing rooms largely relates with your team size.
If you find yourself requiring more simultaneous pairing sessions, it might indicate that your team has grown beyond the ideal size for effective collaboration. For reference, consider Amazon’s well-known “Two-Pizza Team” principle, which suggests keeping teams small enough to be fed with two pizzas ๐๐.
How to start a pairing session in Slack?
If anyone wants to start up a pairing session, they can start a huddle in any of the above channels!
Before we start the pairing session we send out a message in a pairing channel to book this pairing slack channel in advance:
E.g. Going to start a huddle with Will to work through <Jira Title>!
Even when pairing in-office with an in-person team member, we initiate pairing sessions through Slack as standard practice ๐๐ป. This approach offers two key benefits: it enables remote team members to join in if they are also interested ๐ฆ, and all shared resources: including links and discussions, are kept in dedicated pairing Slack channels for future reference โจ
Maintaining a healthy balance between independent focus work and pair programming is also essential for optimal productivity. When initiating a pairing session for assistance, it’s important to come prepared ๐!
Before seeking collaboration, we should:
- Attempt to solve the problem independently ๐
- Conduct thorough research on the issue ๐
- Develop potential solution approaches ๐
- Identify specific areas where guidance is needed ๐ธ
Remember, pair programming sessions are meant to enhance problem-solving through collaboration and it should serve as a platform for refining ideas and overcoming specific challenges ๐ฏ
To effectively manage problem-solving time and team resources, I recommend establishing a structured approach: set a specific time limit for independent problem-solving before seeking assistance โณ. This prevents prolonged individual struggles and encourages timely collaboration through pair programming sessions with team members who might resolve the issue more efficiently.
Reasons why our team prefers pairing in slack huddles over Google Meets ๐
- Anyone can see that a pairing session is happening in Slack and join in if they are interested. We can also set a topic for the slack huddle so everyone can see what the pairing session is about.
- We can easily invite anyone too! ๐ต
- We have history within our pairing slack channels which we can refer to (e.g. doing a search in a pairing slack channels)
- With Google Meets ๐ฎ, we struggled when we kept losing all the data shared on the Google Meet messages!
- We can also easily tag others in the team in the slack huddleโs thread
- Bonus! We can draw on each otherโs screens and also attach stickers ๐ฌ๐
Alternative Setup โ
For Google Meet enthusiasts, consider adding a permanent Meet link in your Slack channel description ๐. This maintains accessibility while accommodating different preferences ๐.
How are you promoting a pairing culture in your teams? ๐ฐ Please reach out if you have any questions! ๐ฐ