What is Mob Programming?
The basic concept of mob programming is simple: the entire team works as a team together on one task at the time. That is: one team – one (active) keyboard – one screen.
— Marcus Hammarberg, Mob programming – Full Team, Full Throttle
When do we mob?
When we think the cost for mobbing will be less than the cost of working siloed. Sometimes working in individual threads is better: more efficient, better for morale/mental-health, etc. When individual work thread become blocked, or stuck in a miscommunication loop, often a short pairing or mobbing session is the solution.
How do we mob?
Appoint or otherwise decide-upon a Facilitator. At the start of the mob session, and then at every swap, the Facilitator reminds the group to do the following:
- Define the desired swapping interval (~20-30m), then start the timer.
- Define/document/update the Punch List.
- Define/swap roles. Everyone isn't required to swap roles every time, but swapping roles often is strongly encouraged.
- Researcher (optional)
- Work the problem until a break, natural or forced, is needed.
- Appoint/elect a new Facilitator, then repeat steps 1-5.
- Mob Programming : A Whole Team Approach — Woody Zuill
- Mob Programming Patterns — Michael Keeling.
- Harvesting Mob Programming Patterns: Observing how we work — Michael Keeling & Joe Runde.
Is mobbing like pairing with more people?
Yes, but it also a bit more disciplined. It is easier for two people to find a workable social equilibrium, than it is for 3-4+ people. The roles prescribed by mobbing are designed to turn up the good.
How does mobbing differ from a hackathon?
Hackathons usually involve multiple teams working on different projects, often in competition. Mobs work in cooperation, focused on a single goal, as a single team, using a single keyboard.