At Atomic, we do a lot of pairing, even on WFH days and with remote teammates and clients. My favorite remote pairing aid is the screen share drawing tool in most modern conferencing software, including Zoom and Slack Huddle (but sadly not Google Meet!). It’s so beneficial that I miss it during in-person pairing sessions.
Pro: Demonstrating Engagement
Pairing remotely often means one person will be “driving” (typing) while the other watches the screen share. Depending on the pairing dynamic, as the observer (or “navigator“), you can become distracted or lose the thread while your partner executes their ideas. And, as the driver, it’s difficult to know whether your partner is with you or totally lost. So when I’m in the observation seat, I like to stay alert and participate by drawing on the driver’s screen share.
Con: Frustrating Your Partner
The goal is to facilitate collaboration when only one person has their hands on the keyboard. I’m not talking about flowers, butterflies, or the Cool S that many of us learned in middle school. We’re looking for helpful assists, like pointing out a typo character. It can be distracting or annoying when lines appear on your screen as you’re carrying out a task. Further, too many suggestions can feel like micromanagement. Be sure to check in with your partner to find a balance that works well for both of you.
Pro: Lightweight and quick
The primary tool for screen share drawing is the Pen, which generally comes in two flavors: regular and vanishing. I prefer to use the Vanishing Pen because I can slash a quick line or make a little dot without worrying about cleaning up after myself. Being able to underline a line of code or point to the column where they would need to start typing has been a game changer.
Con: Cumbersome
Screenshare drawing works best when the content is static. Often I’ll find myself attempting to draw on a line of code that moves out of place as the driver scrolls through the file. In that case, communicating a location relative to a static value like a line number or function name can be quicker and more meaningful. That said, it’s sometimes difficult to come up with those signposts on the spot. That’s especially true if they’re doing a lot of scrolling and I’m not familiar with the file, so asking them to pause may be necessary either way.
I’ll also say that these tools are far from perfect. For example, in Zoom, Annotation mode is not scoped to the screen share. If you want to use your cursor normally for anything else on your computer (like looking at your copy of the code base or some documentation) you must exit Annotation mode manually. Otherwise, you will just be drawing on your own screen. It also defaults to the regular Pen. So, when I return to Annotation mode, I end up drawing, waiting for it to disappear, realizing it won’t, hitting the trash can, and switching back to the Vanishing Pen. Very annoying.
Pro: Explaining Your Point Visually
Another trick I like to use is to draw a diagram of the concept I’m trying to explain. This usually works best when you don’t need a detailed diagram. You want a visual that can be drawn within three to five seconds, like a symbolic flow chart, a visual of nested components or supersets, a Venn diagram, etc. Sometimes I’m struggling to explain the relationship between a few things and need something to point to. I’ll try to find a blank or unused corner of the screen and scribble a little doodle, and then I can explain my point more clearly.
Con: Cluttering the Screen
For that to be effective, you’ll likely need to use the regular Pen, so you can complete your drawing and refer to it without it disappearing. However, drawing an overly complicated diagram or forgetting to erase it when you’re done can lead to visual clutter and overwhelm. If your simplified drawing isn’t cutting it, it might be time to switch to a whiteboard, which most conferencing programs offer too.
Pro: Typing Exactly What You Mean
Sometimes a spoken line of code can be hard to follow. This is when I whip out the Text tool, which is unfortunately only available in Zoom. Again, I’ll find a little corner of the screen and type out the code I’m suggesting. You could send over the line in the Chat functionality, but I like that it appears right on screen. It’s easier to indicate where you want the line to go, versus opening up the Chat window (though that would offer an opportunity for the driver to copy and paste what I sent).
Con: Delaying Feedback
In my ideal screen share annotating scenario, this text would appear to the driver as I type. Unfortunately, I have to manually send the text over by clicking outside of the textbox, at which point it is no longer editable. This can kill the momentum of the session. It requires clear communication with your pair, who won’t know what you’re working on unless you explicitly tell them you’re sending over a line of code.
Pro/Con: Slowing the Process
To those who aren’t yet used to it, screen share drawing can throw a wrench in the process. When the tools are unfamiliar or a little clumsy, it can take you out of the execution flow.
But really, is that such a bad thing? The whole point of pair programming is to get two heads working through a problem to find creative and efficient ways to solve it. For that to be successful, both minds need to be equally engaged and in a collaborative flow. Slowing down the process and facilitating conversation can lead to a deeper dive into the nuances and a feeling of joint ownership over the result. The next time you’re playing the passenger in a remote pair programming session, fire up the Annotation tool and see how that invigorates the process.