Skip to content

Mob Programming

Dimitry Polivaev edited this page Aug 24, 2018 · 23 revisions

“All the brilliant people working on the same thing, at the same time, in the same space, and on the same computer”

Mob-Programming practice session

3 to 6 people work together on a single task e.g. a coding kata.


The session has many 7-minute long coding rounds. In each round, there are one driver, one navigator and the mob of other developers. Driver and navigator change every round. They always come from the mob. Nobody can be both driver and navigator in two successive rounds.


Any time the group can decide to hold on the clock to have a discussion or a retrospective. During the discussion, nobody is a driver and nobody can type at the central computer, but everyone can contribute ideas.


Roles

Driver

  • Has a computer connected to a big monitor or beamer,
  • Never implements or even suggests his own ideas,
  • Realizes suggestions from other group participants,
  • Asks clarifying questions,
  • Waits until all ideas have been expressed,
  • Writes down all alternative suggestions to simplify decision making by group,
  • Waits for navigator's decision if there are any alternatives.

Navigator

  • In case of alternative suggestions, decides which ideas suggested by the mob should be implemented by the driver,
  • May use a second computer connected to another big monitor for looking for information on the internet.

The other group members

Think and speak about

  • what to do next?
  • is refactoring needed?
  • which alternatives are there?
  • what is the next test?
  • what is the easiest implementation?
  • is there a smaller step?

Find and share relevant information

  • from documentation,
  • from a blog or
  • from a coding forum.

Use different levels of abstractions:

  • Tell what to type
  • Communicate the next step at the highest level of abstraction they can successfully implement

Communicate with the other mobbers

  • Ask questions till you understand so that you can contribute,
  • Support other people's ideas,
  • Amplify the unheard voice,
  • Let it be. Observe. Allow things to happen.

Reflect

  • how to improve?
  • how to perform better?
  • what makes us fast?
  • what makes us slow?

Last not least

  • Enjoy the session, have fun and celebrate moments of excellence

Clone this wiki locally