The whole team, one computer, solving problems together.
Mob programming extends pair programming to the whole team. Instead of two people at one computer, you have three to six people at one computer.
This sounds absurdly inefficient. Five people doing one person's typing? But teams that try it often report surprising benefits.
When mobbing works well, the team:
Woody Zuill's Observation
Mob programming pioneer Woody Zuill says: 'All the brilliant people working together on the same thing, at the same time, in the same space, on the same computer.'
Mobbing isn't for everything. Use it for:
Complex problems: When no one person has all the knowledge needed. The combined expertise of the mob exceeds any individual.
High-stakes decisions: Architecture choices, security-sensitive code, things that affect the whole system. Mobbing reduces the risk of one person making a mistake.
Knowledge transfer: When you want everyone to learn something simultaneously. A new technology, a complex domain, unfamiliar code.
Onboarding: New team members learn the codebase, the patterns, and the culture—all at once.
Breaking logjams: When something is stuck, fresh perspectives unblock it.
Don't mob on:
The team needs to design a new authentication system. They mob for a day: exploring options, making decisions, implementing the core. Everyone understands the result.
The team mobs to update configuration files and fix typos in documentation. No one is learning anything. Individual work would be faster.
Roles:
Rotation:
Strong-style navigation:
Setup:
Mobbing works remotely with the right tools:
Screen sharing: One person shares; everyone watches. VS Code Live Share or similar for shared editing.
Video on: Seeing faces helps with communication.
Clear audio: Everyone should be able to hear and speak.
Explicit handoffs: "Okay, I'm passing keyboard control to Alice."
More breaks: Remote mobbing is even more intense than in-person. Take breaks every 45-60 minutes.
Written sidebar: A chat channel for links, notes, or side questions without interrupting the speaker.
Remote mobbing can work surprisingly well. The forced structure (clear handoffs, explicit communication) sometimes makes it better than casual in-person mobbing.
For remote mobs, use VS Code Live Share or JetBrains Code With Me. Standard screen share is too laggy for collaborative editing.
You don't have to mob all the time or never. Most teams use mobbing selectively:
Mob for kickoffs: Start new features as a mob to establish direction, then break into pairs or solo.
Mob for reviews: Instead of async code review, review as a mob—everyone sees the code, discusses it, and improves it together.
Mob for learning: When adopting new technology, mob on the first use. Knowledge spreads immediately.
Solo or pair for implementation: Once the direction is clear, individuals or pairs can execute faster.
Think of mobbing as a tool, not a commitment. Use it when it adds value; use other approaches when they're more appropriate.
The key question: Is this problem better solved by many minds or individual focus? Let the answer guide your approach.