Mob Programming Cheat Sheet
Mob Programming Cheat Sheet
What is Mob Programming? Navigator(s) Role - Navigators direct the entails too much direction, under-navigating
"All the brilliant people working on the same Driver. Usually it works to allow everyone in the too little.
thing, at the same time, in the same space, on Mob to interact directly with the Driver. If that ● Don’t sit and watch the Driver work. E veryone
the same computer." - Woody Zuill causes too much chaos, have one Navigator learns and contributes in a productive Mob.
give directions to the Driver and the Navigator
“Mob Programming is continuous integration serves as the voice of the Mob. Newbies to Mob Responsibilities
for ideas.” - Joshua Kerievsky mobbing can ask for help on how to navigate. ● Treat everyone with kindness, consideration,
and respect
There are many ways to successfully mob. In Driver Dos & Don’ts ● Plan, discuss, research, and work out ideas
general, there is one computer, a keyboard and ● Drivers don’t navigate. If the Driver is the on the whiteboard
mouse, one or more monitors, a whiteboard, only one who knows what to do, they can ● If a Driver begins to navigate and drive
one Driver and one or more Navigators sharing relinquish their role as Driver to the next simultaneously, someone else in the Mob
a work environment like the one below: person in the rotation. can call them out on it.
● Each Driver can share how they prefer to be ● Keep the Mob going as people join or leave
directed, including asking questions about ● Stakeholders, Managers, Subject Matter
intent, location and details. Ultimately, Experts, etc. are welcome to join a Mob, but
navigators must communicate in a way that are not required to drive or navigate.
allows the Driver to understand and take
action. Leaving/Joining the Mob - It is fine for
● If no one is navigating, the Driver must stop someone to leave or join the Mob for whatever
typing. reason. If they are a Driver, they relinquish that
Image by Mark Pearl role to the next person in line. The person
Navigator(s) Dos & Don’ts leaving should tell the team when or if they'll
Ideal Mob Size The whole team, although ● Navigator ideas can only be programming by return so that the team can adjust the rotation
teams of 3-6 people is ideal. Beyond 6 people, a going through the Driver’s hands. schedule.
Mob may have difficulties keeping everyone ● Navigators must pay attention to the Driver’s
engaged. You can counter this with quicker skill level. If the Driver needs word-by-word Switching Drivers - The Driver switch over
rotation times. instructions, the Mob must explain in detail shouldn’t take more than a few seconds. The
what the Driver needs to do. If the Driver is teams should determine the best way to
Driver’s Role - The Driver operates the more advanced, Navigators give higher-level accomplish that goal. Switching Drivers is
computer to input/implement ideas made by instructions, like “commit it” or “move that easiest when the Mob shares a single station
the Navigator(s). method to the parent class”. Over-navigating and settings. If individuals in the Mob have their
own preferred tools and settings, consider Bias for Action - When discussing how to solve designs. To improve the design, the Mob
switching machines using a hardware HDMI a problem, get out of the abstract as soon as should get expert help.
switch, or use a system like WebEx or Zoom. possible. ● Conflict between team members - In order
● Do not argue for more than 10 minutes. to be a well-functioning Mob, everyone must
Physical Space - Here are some suggestions ● If there are 2 ideas, try both, then decide be treated with kindness, consideration, and
for the physical space and equipment setup: which the Mob likes better. respect.
● At least one large screen (big enough so that ● Keep the Mob moving with this quote from
people can easily read code at a distance) is Brian Marick: “An example would be handy Don’t Stop the Mob - The Mob can
necessary. Some teams use two or more right about now”. temporarily delegate a member as a researcher,
screens. Projectors can work, but are less to find solutions to something they cannot
desirable. The Value of Mobbing - When done well, easily figure out. Meanwhile, the Mob can work
● Consider using wireless keyboards and mice mobbing helps a team: elsewhere in the code. It is important that
to make it easier to switch Drivers. ● Deliver solutions faster by increasing focus, people feel comfortable enough to ask
● Mobbing can be noisy. Ideally, the team is in building skills and sharing knowledge. questions, but if the Mob is moving slowly due
a room with a door that closes or is ● Produce better quality code because the to a lot of questions, it is better to set aside
somewhat apart from other’s work areas. entire team reviews the code as it is being some time outside of the Mob for someone to
Conference rooms are usually suboptimal. written. have questions answered. Fast throughput is
They are designed for people to sit around a ● Feel the pain of tedious tasks. This is good, an important goal.
table and talk, not to program. You need to as it biases you toward fool-proofing and
face the screen (without turning your head) automation. Invite Experts - If a Mob gets stuck, they may
as you work, and it’s best if participants can ● Cross train it’s members and remove invite an expert to join them to help resolve a
sit side by side to facilitate discussions. knowledge silos by learning together. problem. Be sure it is an invitation and not a
● You need chairs or couches that are ● Deliver results faster by reducing the team’s demand (they are not required to drive).
comfortable for longer than an hour. “work in progress” and by eliminating delays
● You need a large whiteboard and plenty of from handoffs with the whole team present. Resources
sticky notes. ● Mob Programming – A Whole Team
Mobbing Pitfalls - A poorly functioning Mob Approach, by Woody Zuill and Kevin
Mob Timing and Breaks will produce value slowly. The following are Meadows
● Use an automated timer (e.g., Dillon Kearns’ some signs of poor mobbing and what do to if ● Code with the Wisdom of the Crowd: Get
Mobster App) to initiate role changes and you observe these behaviors: Better Together with Mob Programming, by
breaks. ● Excessive discussion or arguing - Run some Mark Pearl
● Switch roles every 7 minutes on average experiments, then decide which the Mob ● The Mob Programming Guidebook, by
(beginners should switch every 2-4 minutes). likes better. Maaret Pyhäjärvi
● The whole Mob should take regularly ● Zoning out - Take a break from the Mob ● Mobster - free tool that helps teams manage
scheduled breaks. The pomodoro method, a ● Ignoring Mob roles/timers - Team members rotations and breaks (http://mobster.cc)
proven method of taking regular breaks to should hold each other accountable
increase efficiency, suggests taking breaks ● Producing poor designs or not valuing good
every 48 minutes. design - A Mob that lacks people with good
design skills won’t magically produce good