Mobbing for Everything?
Tags: collaboration, mobbing, codequality, learning
Published: 2019-10-16 03:03:09

Quiet concentration, lone wolf, lone genius, "get out of my way so I figure this out" is overrated.  Mobbing is better.  Almost always.  Almost for everything.

## Formal Mobbing in a Nutshell

The general setup for a successful mobbing venue is **one big screen**, **one keyboard+mouse**, and enough room for **everyone to sit comfortably**, and *sometimes physically rotate from chair to chair*.  A timer signals when people should rotate roles.  Over the course of a session, everyone has been in every role.  There can be any number of people participating.

* One person navigates
* One person types
* Everyone else back-seat drives

The navigator has the last word on what the typist will do.  The typist is **NOT** supposed to think or problem solve; they get commands on what to key in.  Commands to the typist can be as detailed or vague as works best with that typist and group to get the work done.

Sounds horrible.  It isn't.

## This is Crazy!

You know what else is crazy?  Striving for radically better results while not considering radically different thinking and practice.  This radical collaboration can produce the following magic ...

* Better quality and quantity of work output: "more than sum of the parts"
* Better quality of team member engagement in the work: active collaboration
* Better team resiliency -- somebody out today?  Does not matter.  No gaps.

## How can you even think this?

Nobody knows everything.  Let's not wait for somebody to learn everything; we have work to do now!  So fill gaps in knowledge by filling chairs in the room.  Let's illustrate the knowledge gaps of three hypothetical participants over a period of a mob session.  You can see in the diagram below that Bob has significant gaps toward the end of the first and second halves of the session.  Nobody in the room seems to know everything.  However, together, the gaps are filled.

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/c7czrusoww1875y0b8cv.jpg)

Bring everyone and anyone that is ready to engage into the room to minimize knowledge gaps.  And during the process, over a period of time, the individual gaps start to get filled-in too because of the apprenticeship effect taking place during the sessions.

## Apprenticeship?

An apprentice learns by doing.  When mobbing **everyone in the room is doing and as a direct consequence is also learning**.  This is practical hands-on learning while getting work done.  The analyst writes some code, the programmer interprets some requirements, everyone shares ideas.  And fun; there is room for fun.  And donuts sometimes.

## Best For Everything?

This technique is best for some things and perhaps helpful for everything.

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/p63fazqfvktwfu65pf6k.jpg)

The perfect fit tends to be for activities where **ALL** the decision makers for the given available input information are in the room and the objective is to work on **ONE THING AT A TIME** until it is completed.  Less perfect fits would be to produce artifacts without key stakeholders; those efforts lead to iterations that could have been turned into a one-and-done iteration if everyone had been in the room.

### Examples of Perfect Fit?

[Everyone necessary is in the room](https://medium.com/@frankfont123/the-perfect-work-commute-b10e08e91f94) and the work is one of the following:

* Write a program
* Enhance a program
* Debug a program

There are probably others, but those are the one's I've seen shine.

## So not best for Everything?

Best for almost everything when the [culture is right](https://link.medium.com/1yGaXTNng5) and you are ready to be a little crazy.  Give this a try and share your experiences.  [I'll share some of mine.](https://medium.com/@frankfont123/be-smart-change-your-choices-dbad8db94360)