Over the past couple of months I’ve been double a lot of remote pairing for obvious reasons (if you are reading this in the future google “COVID-19”..). I feel like I’ve learnt a lot along the way regarding how to get the most out of remote pairing sessions, both individually and for the pair or team. I wanted to share some of the things to do and things not to do with you.
DO.. remote pair!
I wanted to start off by saying that I’ve found the remote pairing in the main very rewarding and would encourage people to do it. I’ve ended up remote pairing not just on writing code, but peer reviewing design documentation, writing user stories and many other things. It’s a rewarding activity and is a fantastic way to get to know your colleagues better.
DO.. embrace different ways of working
One of the biggest things that I realised early on was that everyone is an individual when it comes to how they code, how they word user stories and how they work in general. Remote pairing gives you the opportunity to see this up close and it should be embraced. There may be many small things that are different to how you work and remote pairing gives you this insight which may help you to understand the person you are pairing with better. It’s very tempting to point out where you believe someone should do something different but I would encourage you not to do this too often. If you genuinely see something they are doing where you think you can help, then by all means talk to them about it, but it’s also important to recognise they might not want to have their ways of working questioned too much. It’s vital to be sensitive to the feelings of the person you are pairing with.
DO.. take turns leading
It can be very tempting to lead the session too much, especially when the subject is something you may have worked on before. A lot more people learn from doing, rather than seeing, so if you are in the position of helping others to learn then allowing them to lead the session will help it sink in easier. This is vital if you are consulting and part of the gig is to help people progress and learn a product that ultimately they will be maintaining in the future. I try to swap the person leading after a set interval as much as possible. Sometimes this feels more disruptive and it’s better to wait for a natural break in the activity, but as long as you are regularly swapping the one in control of the screen, that is the important part.
DONT.. try to take over
This is the one thing I probably still struggle with! When I am pairing with someone I find it hard to not just keep pointing on their screen to direct them where to put the cursor or type something! It can be very demeaning to your partner if you keep doing this because they are not a robot to be controlled, but a real person to bounce ideas off. You have to respect their ability and be sensitive when making suggestions. One of the best things about pairing is having people validate the work as you do it and being able to provide a different viewpoint but when you are the person doing that it’s important to not be too forceful or controlling when putting that viewpoint across!
DONT.. always use a shared IDE
Recently we’ve used shared IDEs on the team via Cloud9 and I’ve used shared IDEs in the part when pairing sat next to someone. They can be very powerful and allow true code collaboration. But they can also lose some of the best bits about pairing as they can split the focus between the pair. When you are pairing through one person’s controls, you have to communicate well with each other and make sure that you talk about the changes you are making, which is a vital part of the learning process. Shared IDEs often don’t encourage that kind of communication and you can end up with two individuals writing code next to each other, rather than together. I do think a shared IDE has its uses, but I think it is best used by people who are experienced already in pairing.
Final thoughts…
I’ve really enjoyed pairing during this lockdown and I feel like I’ve got to know the people I’ve been pairing with more. I’ve always been an advocate of pairing (I even won a flat cap for doing pairing once…) so it’s not hard to convince me to do it. But that isn’t the same for everyone and I’ve done a lot of pairing during recent times with people that haven’t done much of it before and in general they have found it a really useful activity.
I would encourage more people to pair and I hope that we don’t stop doing this when we do eventually end up back in the office.