I had Damien on my #RemotePairProgramming series and we also discussed about pair programming lessons: what we both learned about this practice. We talk about our pairing session, but also about our experience with pair programming in various situations.
The pain of tools
When doing remote pair programming it’s very important to have it easy to switch between pairs. An IDE or editor that makes this change easy minimizes the friction of switching when doing remote screen sharing.
I used VSCode which has some interesting features: you can follow the other’s cursor, see the tests running in a shared terminal, share servers so that everyone can see result of the work in the browser.
Also you can work in parallel if you don’t want to follow the other person. Maybe for a while both pairs can work in the same time, but on different trivial tasks where pairing would not be very efficient.
Driver | Navigator
The metaphor of driver and navigator comes from driving a car: the driver holds the wheel, while the navigator holds the map and tells the driver where to go. The same is with airplane crew: you have a captain and a second officer, or sometimes even a thirds person who handles navigation.
In complex situation it’s a good idea to pair. Because even though you know very well what you need to do, you might forget a small part of it, just because there are so many things to do. This is the case with airplane pilots and why they need a second officer.
Pairing is beneficial to speed-up the work, to make sure you don’t do silly mistakes that can have great effect.
Pairing for the first time
Often people ask me how come I pair with so many people? I must know them. In fact I don’t know all of them, and even in this case we can pair very easily and nice.
I believe that openness, communication and flexibility are very important when pairing for the first time. Don’t work like you would do on your own, let the others show how they work and you might learn a few tricks. Or you might understand after that your ways are better. But until you don’t try, you might never know.
Pairing is learning and whenever I pair I always learn something new. It might be small tricks, languages, tools, pairing behavior, or many other things.
You can pair-up with someone you don’t know, but you can be very productive. The more shared context you have, it’s easier to do something together.
In my series everyone likes to pair, but don’t believe that this is the real case in a working environment. People who join my series like to pair and often have a lot of pair programming experience. It’s also a self-selecting group.
So when you want to start pairing with people, think that they will be a lot more reluctant.
Pair programming can be annoying, frustrating, and it might generate conflicts. Pairing reveals problems often, problems that already existed in the underground of the work environment, but they come to the surface. So you can discover earlier on these work environment issues with pair-programming .
Take a break
Take a break every 25 minutes. Don’t pair for a whole hour.
If you feel you don’t hear your thoughts, or that you are making silly mistakes, take a break.
Pairing is difficult in the beginning as it is, so take your time to relax so that you can still be productive.
My YouTube channel here