Many people believe pair programming has to be a session where coding is the only action. I don’t think so. Pair programming is a session that involves things like knowledge transfer, discussions, debugging, and coding.

I see similarities between this flawed mindset and people thinking that typing faster on a keyboard makes you a more efficient programmer. Creating software is not just typing out code. It also includes things like thinking, collaborating, exploring, and iterating.

I like to treat mob programming like that, too. In a former team, we actually started calling our mob programming sessions “mob sessions” for that reason. They were sessions where we sat down and dealt with the most pressing things (decided at morning standup) independent of whether it was writing code. For example, we reviewed pull requests, wrote documentation, answered people in Slack (as a team), refined tickets, unblocked someone who was stuck solving a bug, ran knowledge-sharing sessions, and had a workshop on how to approach solving a problem or building a new feature. Of course, we also coded, but this was not the only thing we did. We did equal amounts of work in Miro (or physical whiteboard) as we did in VSCode (or IDE of choice.

Another thing we did during our mob sessions was to read difficult/boring material together. It might sound very inefficient, but it wasn’t. We had to read a boring security policy? We read it together. We needed to understand a tricky technical documentation? We read it together. One person read out loud and we often stopped and discussed what it was we read. By doing it together, what we learned was anchored in memory by the comments, analogies and jokes we made as we covered the material.

If we did code, we usually focused on setting up the high-level structure we wanted to solve a technical problem such that the details/blanks could be implemented in parallel by individuals later. Mob and pair programming are power tools that can be used for a lot of things. But they are not hammers that can be used for every type of nail. Sometimes, working on things individually is the better choice.

A side-effect of our mob sessions was also that we were building a team. We had fun and got to know each other. But that’s probably a post for another rainy day.