5 pair-programming tips and tricks for coaching a remote team
Remote work is an extra challenge for technical agile coaching. Here are 5 opportunistic remote pair-programming tips and tricks to show a better way of working.
[…] nothing works better than sitting with them and test-driving some feature or reshaping their existing code–helping them get their work done. [Jeff Langr on extremeprogramming@groups.io]
Collaboration is generally a disappointing afterthought in so many applications [Jay Bazuzi in extremeprogramming@groups.io]
Programming in pairs is only 20 years old - the industry still needs time to catch up to us. [Phlip in extremeprogramming@groups.io]
[…] when remote I have a tendency to forget or hesitate to switch driver [Tim Ottinger in extremeprogramming@groups.io]
Whether we wanted it or not, 2020 has thrown us into remote work. This turned out to be a great challenge for many technical agile coaches:
- As firm believers in collaboration, we prefer face to face interaction
- How can we do our job and influence a team if we are not sitting with people?
- Pair programming tools are not yet up to our standards.
Even though I had regularly been working remotely for a few years, 2020 gave me a hard time to adapt:
- COVID lock-downs made my schedule chaotic
- Remote coaching made communication low-fidelity
2020 also forced me into re-discovering new ways of coaching.
Here are 5 pair-programming tips and tricks that will increase your influence when coaching a remote team. Some are simple must-haves to compensate for not being together. Others are new possibilities unlocked by remote pair programming! All are opportunities to show the way of working that is more effective and sustainable.
#1 Turn Cameras On
I remember my first remote talk very well. I had absolutely no clue about how the audience was reacting. Midway through the presentation, I had to pause and ask, “Is anyone here?” to make sure that at least 1 person was listening.
The same thing can happen when you remote pair program. Without the cameras on, we wreck what’s left of non-verbal communication. It becomes too easy to lose attention and to let the driver drive alone.
We should start every pair-programming session by asking our buddy to turn his camera on. The answers can be surprising! Someone once said:
I cannot. I’m still in pyjamas!
The quick-fix was a sweat-shirt :-)
Asking coachees to start their cameras highlights the value of face-to-face communication.
Lesson#1: Teamwork and collaboration remain crucial for remote work
(As a bonus, we also help each other to keep their social skills sharp)
#2 Don’t Get Disturbed
Would you ever start browsing your phone while pair programming with a coachee? I’m sure you would not! It remains valid when coaching a remote team. The lack of social pressure makes the browser a real trap when coaching remotely.
Here are a few tricks in case mere willpower is not enough to keep you away from emails:
- Disable all notifications on your laptop and your phone.
- Close all the apps you don’t need right now.
- You might also configure a different browser for pair programming only. Don’t set up your social media accounts or email on this browser.
- I’ve even read of people creating dedicated accounts exclusive to pair programming.
- At some point, I used a premium version of RescueTime to see how much time I was losing with emails. This motivated me to batch all communication work at the end of the day.
Being at home also comes with its set of distractions. If you don’t have a calm desk, a good pair of headsets is a must-have. I use a Jabra Evolve 75. It does not feature the best noise cancelation out there. Yet my pair buddies thank me for its microphone that filters out surrounding sounds!
Intense pair coaching sessions are a demonstration of the power of energized work.
Lesson#2: Energized teamwork is the most effective way to create value. We must protect this time at all costs.
#3 Stay Focused
The next step after avoiding distraction is remaining focused!
Staying focused for hours of remote pair programming is not a willpower achievement. It’s impossible! If pair programming is already tiring, remote pairing is even more. We need to learn to recognize when we need a break.
As a coach, even if you are paid by the hour, it’s OK to ask for a break. If you don’t, you will not deliver your best.
A good trick is to use a Pomodoro timer to take a break every 25 minutes. As a bonus, you can take this break to switch drivers. There are many online Pomodoro timers available. I remember using marinaratimer.com with a previous team. If you are using Trello, you can also give Pomello a try. You’ll get a log of the time you spend on each task for free.
Taking breaks with your coachee is a way to prove that we stick to a sustainable pace. A pause is also the occasion to discuss non-work-related topics and build relationships.
Lesson#3: A sustainable pace is what makes us effective
#4 Keep Track of the Plan
Here is the Ninety-ninety rule:
The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time. [Tom Cargill, Bell Labs]
My “Aha! Moment” with XP was when I understood how it fixes the Ninety-ninety rule. With the right practices in place, when we reach the end of our TODO list, we are done!
Sharing a TODO list is a powerful way to show the power of XP when pair coaching.
Online shared tools give us persisted and historized TODOs for free! I bought a Coggle license to draw a mind map, but free tools like Google docs or MindMup would do the trick.
My whole coaching […] comes down to showing people tiny steps they can take that make them feel better about what they do, over a good long while. [GeePaw (Mike Hill) on extremeprogramming@groups.io]
As coaches, keeping a TODO list is an opportunity to show how:
- to remain organized
- that XP lets you go through a task with predictability, without an indefinite amount of ‘fix time’ at the end
- to do a bit of refactoring at each step
- to apply YAGNI by putting items in a ‘Parking lot’
Lesson#4: Good practices make programming more organized, predictable, productive, and sustainable.
#5 Use your machine wisely
Here is another opportunity from remote pair coaching: the navigator has a computer!
There are many ways to become a better navigator when remote pairing:
- Run mini spikes, using an online interpreter, like OnlineGDB
- Research APIs on the internet
- Investigate what people think about a design question
There is a risk of getting out of touch with the driver, though! So:
- Keep it short!
- Have a dual-screen to keep the driver in sight
- Don’t drift to the internet (cf #2)
As an XP coach, this is a perfect opportunity to show what embracing change means in practice.
Lesson#5: One way to embrace change is to use your context to run experiments and discover better ways to work.
Bonus: explain ‘Why’ and ‘How’ so it snowballs
As change agents, we want best practices to spread and stick. Except if we sold mob-programming to the team, we cannot be pairing with everyone all the time! When pair-coaching a remote team, we want team members to stick to best practices without us.
Fortunately, these pair programming tips and tricks are easy to copy. Just spend a bit of time to explain:
- Why we use these practices, so coachees will want to apply them
- How to use these practices, so they will know how to apply them
Lesson#6: Anyone can nudge others to try better ways of working.
Summary: What to do next time you do remote pair coaching?
As a coach, your goal is to show a better, more effective, and more sustainable way of working to developers. You can show this better way of working when remote pair coaching by doing the following:
Feel free to print this card and stick it on your screen. Give it a try for a while and share your feedback. If you know other remote pair programming tips and tricks, I’d love to read about them too!
If you want to learn more about remote pairing, these posts might interest you:
- How to deliver remote training with code-katas and randori in pairs
- 5 XP practices that will make your remote team more effective
- Best open source tools for remote pair programming
- 7 Remote pair programming best practices Q&A - Part 1
- 7 Remote pair programming best practices Q&A - Part 2
Leave a comment