The Rabbit Hole
04. Pair Programming
In this great episode, we discuss the concepts and uses of pair programming, remote programming, and mob programming. Don’t worry if you’re unfamiliar with any of those terms; we’ll talk about them in more depth in the episode, and explore what is (and isn’t) cool about each one.
Just to give you a short preview to help you decide whether to tune into this episode (hint: you should!), let’s take a moment to define what we’re talking about, at least for our main focus of the episode. Pair programming is when you have two programmers working on the same task, usually at the same workstation.
This offers an incredible array of benefits compared to typical, solo work. For example, if you’re in a pair programming setup, there’s no way you’re going to be checking your email, phone, and social media while you’re working. That means you’ll be more focused; in fact, one of our panelists points out that pairing can lead to being tired (in a good way) because you’ve been so productive. Pair programming also offers great motivation to be your best, because you don’t want to let your team down by not giving 100%.
Tune in to hear more about pair programming and its benefits and potential pitfalls, and to learn about remote programming and mob programming too!
In This Episode:
[00:52] - We hear a basic definition of pair programming.
[02:02] - What were the panelists’ first experiences with pair programming?
[03:39] - Pair programming can be incredibly valuable in that it doesn’t allow you to get distracted or lose focus the way you might if you were working by yourself.
[05:50] - We learn about the use of chess timers in pair programming. We then hear how pair programming can be valuable when you’re learning a new language.
[08:12] - Have the panelists seen Livecoding.tv?
[10:35] - The panelists move on to talking about remote programming, initially emphasizing the importance of a strong, fast internet connection.
[12:32] - If you’re pairing with someone remotely, the person who is sharing is (almost) always the bottleneck.
[13:26] - What kind of editors do the panelists usually use on their projects? They mention, for example, Screenhero, AtomPair and Floobits.
[16:47] - The problem with all of these editor plugins is that they don’t tackle the shared browser bit.
[18:46] - One of the panelists brings up an issue that happened to him in pair programming but not remote programming.
[20:02] - The panelists discuss Dvorak in more detail, explaining what it is and why it’s a good choice for people with wrist injuries, for example.
[20:55] - We hear the story of how one of the panelists inadvertently introduced a coworker to pair programming. They then talk about various modes of pair programming, particularly “evil mode.”
[27:20] - We move on to mob programming, with the panelists sharing their experiences with it. The consensus is that it’s fun because it’s so collaborative.
[30:45] - Mob programming can often be with some subset of the team instead of the entire team. Even if it’s with only three people, though, it can be helpful in breaking ties.
[34:01] - Have any of the panelists had any particularly good pairing experiences?
[39:00] - We switch to the other side of pair programming now: challenges and bad experiences working in a pair (including a story of overwhelming body odor).
[43:05] - Another resource that people should check out is the RailsConf 2014 video “I’ve Pair Programmed for 27,000 Hours. Ask Me Anything!”
Links and Resources: