Better Together: Using Pair Programming to Build Inclusion
I had always thought I would be able to pick up my career where I left off, once I returned from maternity leave. My employer has a great flexible workplace policy, so I did not think there would be a problem. But when I started back part time, working three days a week, I faced a lot of unexpected challenges.
The first challenge — I didn’t get the chance to work on higher priority, challenging tasks. Because I was part time, every time I picked up a card, I worried that I would take too long to finish it. If the card takes a week for my teammates to complete, then it probably takes me two. I worried about making them wait for me to come back and continue the task. As a result, I tended to pick up BAU (Business as Usual), tech debt, or other low priority tasks.
Soon, I became increasingly disengaged with my team. Because I was doing BAU alone, I had no idea what was going on in the rest of the team. When they talked about new features or discussed some problem they were facing, I could not join in. When I needed help with my work, I was afraid to ask because my task was low priority and they all seemed very busy.
When I started talking about this with colleagues who had been part time before, I found this was not uncommon. They had the same frustrations and disengagement. One of them even said he had lowered his career development expectations. But even thinking about that upset me.
This must sound like I work in an awful team, but that is not the case. I work with fantastic people who are open and approachable. They were trying their best to be supportive. But they didn’t understand what it was like, or how they could help me.
Then, I had a chat with an engineering lead, and she suggested pair programming as a possible solution. If the team was pairing, she explained, it meant work could continue in my absence, and I would be able to work on those exciting tasks. It would also help build stronger friendships and hopefully make me feel part of the team again. Her enthusiasm for this pair programming practice inspired me to take the idea to my team.
Though my team were hesitant and had some concerns, they agreed to experiment when they heard the reasons why this was important to me. We started slowly and had mini retrospectives at our standup once a week. This helped us to adjust our practices and make sure everyone was comfortable. Now, after only six weeks, the whole team are pairing, and it’s become a core part of how we work.
How pair programming has helped me
I can work on more challenging tasks without worrying about timelines and blocking other people’s work now. On day 1, I start on a task with someone pairing with me. On day 2 when I am away, that person can continue working on that task while I am absent. When I come back on day 3, with a few minutes to catch up on what happened yesterday, I can continue to work on that task.
I’ve found it’s a great way to share knowledge and learn. During pairing, I learned how people think and their way of doing things. By understanding that, I learned what to do, what not to do, plus, better ways of doing things.
There is always a lot of discussion.
We talk about designing solutions and alternative ways of approaching a problem. I have picked up keyboard shortcuts, git commands and even tips about searching online for answers.
Because of those conversations, I have become really engaged with the rest of the team. I have many topics to discuss with them and I am excited to come to work again.
It’s not just me that finds it useful
New comers to the team also benefit from this experience. Pair programming helps them get onboard fast and also helps them become familiar with our codebase, tools and team practices.
I asked some of our senior developers if they found it useful, and they have all said yes. Sometimes they just get used to their way of doing things and don’t challenge themselves. By having another person working alongside and asking questions, it helped them to rethink their approach and be more conscious about the decisions they make. Not to mention the improvement in their coaching and mentoring skills.
It’s not just helping people to grow, it’s helping them to be productive.
I have a colleague in another team, a very productive developer, who was about to go on a month-long holiday. The week before she left, she told me she had picked up a low-priority task, so she wouldn’t block the release. I suggested she try pair programming. So she did. She worked on an important piece of work for that last week. Then the person who paired with her continued to deliver the rest after she went on leave. This helped the team to keep their focus on the right priorities.
I could go on and on! I hope you consider using this practice to improve collaboration and inclusion in your team. And I look forward to hearing about your pair programming journey.