A process put together from back when I used to teach in-person TDD training for teams. It's a great way to do a cost effective team building!
The work is done sitting together in a group work area. Make it as comfortable as possible. A good meeting room is best suited for Mob Katas.
There is only one computer in use and everyone in the Mob should be able to read the screen.
Mob Kata sessions should be between 1.5 to 4 hours. If going longer than 1.5 hours a 10 minute break every hour is recommended.
- Make it work, Make it pretty, Make it fast
- First make the code work
- Then make it read like a story
- Finally, make it quick where need be
- Humility, Respect and Trust
- Give and receive constructive criticism
- Fail fast
- Be open to growth
Follow a “Driver/Team/Facilitator” style of learning using a Red-Green-Refactor TDD cycle.
In this pattern the Driver writes a failing unit test, then writes the simplest implementation possible to make it pass. If the driver gets stuck or is unsure of the next test or how to write an implementation they may ask the team for assistance during the red-green phase.
The Team may only advise of a solution during the red-green phase, they may not criticize the code or implementation at this point.
Once the driver has a passing / green test the team may offer up suggestions on how to improve the code during the refactor phase.
It is common that during the refactor phase lively discussion will occur. This should be encouraged because the Mob is communicating and discussing the design and programming norms to everyone. This way everyone stays involved and informed, hence everyone learns and grows as the team drives towards a richer shared understanding.
To end the refactor cycle the entire team must agree with and understand the change(s).
The facilitator’s role is to ensure the team understands and implements good TDD practices, to help shape conversation and ensure the Red-Green-Refactor cycle is followed and respected.
Once the full Red-Green-Refactor cycle is complete, the driver passes the keyboard and mouse to the next participant and the cycle starts over.
Each participant of the Mob should complete at least 1 cycle. If the entire Mob has had a turn and there is still time, cycle back to the person who started the session.