Getting started mob programming
Mob programming is a very simple idea that have huge impact on how we learn, the quailty of our code and how fast we complete work.
I’ll let the discoverer of mob programming, Woody Zuill, introduce the idea:
All the brilliant people solving a problem
In the same room
At the same time
Working at the same computer
Or in other words: a group of people programming together with one keyboard.
For an idea to go into the computer it needs to go through someone elses hands. Therefor we rotate positions in the mob very frequently, preferably not longer than 8-10 minutes per position.
Mob programming leads to many good things:
- It’s easier to keep focus, since we are rotating more often and when we are working we can, naturally, only doing one thing
- Everyone in the mob knows the code equally well
- The code is better since we get everyone’s input directly.
- We can onboard new people into the mob very easily - by just pulling up a chair
- We are resilient for people being sick - the mob functions well even though someone is out for awhile
- Learning and sharing is quick within the small group.
- It’s fun!
Roles in a mob
A mob have two distinct roles:
- A driver that is at the keyboard. This role is responsible for taking the ideas of the mob and turning it into code
- As a driver you should not pose new ideas but rather just be “a smart input device”
- Use the tooling to help you write correct code, formatting etc.
- The rest of the mob are navigators. Your responsibility is ensure that we are doing the right thing, where we are going next and that we are solving the correct problem
- Use the whiteboard or a sheet of paper to keep track of ideas and questions
- Don’t interupt the driver with details on how to type. The editor will show that for her.
How to mob
- Rotate roles frequently - prefer rotating every 5-6 minutes. Very soon it become second nature and you will not notice the difference.
- Ensure that everyone understands what you are doing. Remember that the
highest form of learning is teaching
(Richard Feynman)
- Ensure that you all see the screen comfortably
- Take breaks frequently. For example, add a mob member called “Break” in the list of people working.
Finally - read up on the great tips from Woody´s first visit to </salt>
You don’t need some extra tooling to work, anything that can help you keep time in an effective way is enough.
That said there are a number of good timers that can be helpful
- https://agility.jahed.io/timer.html
- http://mobtimer.zoeetrope.com
- http://mobster.cc/
- https://mobtimer.com/
And a very special mention to the mob timer created by Sascha Ringström that took the first ever </salt>
-course
https://saschamz.github.io/mobtimer/