Leveled Engagement: A New Mob Programming Pattern

Mob Programming can be an excellent way for teams to create high quality code and also facilitate for collaboration of teams. Mob Programming is done with the driver-navigator model. The Navigator dictates for the Driver what to type and the Driver executes the actions specified by the Navigator. In short, it’s much like going on a road trip with friend where you work together to arrive at the destination. However, keep in mind when mobbing the role rotates based on a timer.

The key difference between mobbing and pairing is that it is more than 2 people. Although this may seem like a minor distinction it is not. The addition of an individual shifts the social dynamic of the interaction between team members. Group dynamics makes it easier to bring up issues related to how the group is doing, since it is not targeted an individual. With that being said psychological safety plays a crucial role in Mob Programming working effectively.

When a pair becomes a Mob, a new role emerges: the Observer. Contrary to what some may think, the Observer is not an idle role. The Observer can contribute ideas to the Navigator and think through the problem space while looking at the screen. This may or may not happen frequently depending on what people infer is authentically being authorized for the people in the Observer role, under what kind of circumstances, and how the Navigator is performing and inviting such Observer contributions into the mix. However, what happens when you add another person and create a Mob of 4? That would lead to 1 Driver, 1 Navigator and 2 Observers. The current standard for how rotation works is that you drive -> navigate -> observe -> observe and a full rotation is complete.

Let’s say the time between rotation is 10 minutes. Given a mob of 4 people this could lead to being in the Observer role for 20 minutes.  Let’s call this situation the passive-zone. The passive-zone could lead to lower engagement from the Observer, since it’s harder to be engaged in a situation where you are not directly contributing for a long duration. It could also be somewhat frustrating for an Observer who may default to self-editing or forgoing offering comments, to avoid disrupting the communications from the Driver.  This could be remedied by having shorter rotation times. Having a 5-minute rotation effectively reduces the passive-zone in half, however newer teams may not be comfortable rotating so quickly.

An alternative fix to the passive-zone I propose is what I would like to call leveled-mobbing. By switching the rotation order to driver->observer->navigator->observer. The passive-zone is effectively eliminated and the level of engaging of the group is more leveled throughout the rotations.

In my experience mobbing for about 3 months I have not seen or heard of anyone trying leveled mobbing. I believe this could help mobs become more engaged and have a better experience mobbing. I would be interested to hear from anyone that has experimented with similar ideas or would like to experiment with this idea with me; so I’m offering this invitation and proposal: Let’s give it a test-drive!  If you feel inclined to opt-in to such an experiment, feel free to contact me.

Written by: Gerard

Contact: gerard@needlehop.com

Leave a Reply

Your email address will not be published. Required fields are marked *