Remote Pair Programming: Take One
I've had a growing interest in remote pair programming for a while now. It combines the power of continuously collaborating on crafting each line of code with the amazing benefits of having a distributed team.
At work we have one member of the development team who, starting today, will be working remotely full-time. We've been doing a lot of pair programming lately, and have found it valuable enough to have the whole team continue to do this. In order to make that happen, we did our first test run at remote pair programming today.
I was pretty excited to start the day off, but it quickly turned into mild frustration. It took us over an hour to set everything up. We had to pay for our screen hero accounts, since they started charging recently. Once we got screenhero up, it was good, but we decided we wanted to set up an iPad with video chat so we could also see each other. Unfortunately it was a hassle to create a new apple account to set up the company's iPad.
Once we got everything up and running, I then ran into a few unexpected issues. First, talking to someone through the computer seemed to break some sort of social norm, and felt rude to my colleagues. I scrounged around, found headphones, and the problem (even if it was just in my head) went away. Relatedly, I could hear a lot of background audio coming from my colleague's end. I think we're going to need to add some microphones to our headsets, because it's very distracting.
Next up there wasn't actually a good place to put the iPad. My remote colleague has a dedicated stand that places the iPad in the perfect place to get a three-quarter view. I ended up putting the ipad in between my keyboard and my monitor stand, giving a rather unflattering and unhelpful (for reading facial expressions) upward view of my face. I heard that we may have ordered an iPad stand to fix this in the future, so hopefully this will be resolved soon.
Finally we had major internet issues. Both screenhero and FaceTime kept either lagging or cutting out completely. This made collaborating very difficult, since I literally couldn't see what was happening on my colleague's screen. I ran an internet speed test on my end, and everything was fine, as was the connection on the other end. Perhaps this was an issue with our wifi, or with screenhero's or apple's networks. This is the most concerning of all the issues, especially since I don't know what was slowing things down.
Overall day one was slow and frustrating, but most of that was totally expected. I'm pretty optimistic that over time our team can learn how to master this practice, and incorporate it into our culture.