Why Pair Programming is Important
Industry trends aside, pairing in the context of DBC is important because it's a great way for students to beging getting to know each other. Given how much there is to learn about any of the subjects we're studying, there's a good chance that one member of a pair will have discovered details about a topic that the other doesn't know, and vice versa. Pairing is a great way to expose and share techniques, knowledge and insight.
Just like we'll all have different technical knowledge, we'll also have differing intuition a points of view about how to move through solving any given problem. Pairing allows us to practice thinking out loud, communicating clearly, and negotiating if and when the need arises.
Pairing can also be a great way to get and give support and encouragement.
Driver vs. Navigator
The driver takes directions from the navigator and is the one actually running the keyboard. It's important for a driver to stay mindful and not "check out" so they can double check what the navigator is doing.
The navigator provides direction to the driver about what code should go where. It's good to be specific. Mindfulness is important here too. Double check what the driver is doing.
Members of a pair should always feel free to put the formal driver / navigator relationship on pause if it's needed to collaborate on solving a problem, developing a strategy for how to proceed, etc..
Pair Reflection
Andrew and I worked on this project is two sessions. First with our DBC lead, and then later in the week on our own. We both felt like it went well, that we learned from each other and worked well. We actually decided to not follow the rules and ditched using stypi in favor of screen sharing. That way we could collaborate in balsamiq, and trade driving / navigating by switching who was showing their screen. (This was actually a nice way to provide a natural limitation around drive/navigate. With no access to the other's keyboard, the nav had to rely on verbal instructions.) We used stypi as a magic pipe to copy/paste code back and forth quickly, then we'd move it into Sublime. Overall, a very positive experience!