Code Review

Mob Programming

A software development approach where the entire team works on the same code at the same time, rotating the driver role while everyone else navigates.

What Is Mob Programming?

Mob programming (often shortened to “mobbing”) is a collaborative software development practice where an entire team — typically three to six developers — works together on the same task, at the same computer, at the same time. One person serves as the driver, controlling the keyboard, while everyone else serves as navigators, directing the work, spotting issues, and contributing ideas. The driver role rotates on a fixed timer, usually every 10 to 15 minutes.

The practice was coined and popularized by Woody Zuill, a software developer and agile coach who described it as “all the brilliant minds working on the same thing, at the same time, in the same space, and on the same computer.” Zuill’s team at Hunter Industries adopted mobbing as their primary development approach in 2012 and reported dramatic improvements in code quality, team alignment, and delivery predictability.

Mob programming extends the principles of pair programming to the entire team. Where pair programming provides continuous review from one colleague, mobbing provides continuous review from every member of the team. This makes it particularly powerful for complex problems that benefit from diverse perspectives, critical decisions that affect the entire codebase, and situations where knowledge must be distributed across the team quickly.

How It Works

A mob programming session follows a structured rotation pattern:

The driver is the only person typing. Critically, the driver does not make independent decisions about what to write. They translate the navigators’ instructions into code. This is sometimes called “strong-style pairing” — the idea must flow from the navigators’ minds through the driver’s hands.

The navigators discuss the approach, make design decisions, catch errors, and tell the driver what to type. All navigators participate, though teams often designate one “primary navigator” per rotation to avoid chaos.

The timer enforces role rotation. When the timer goes off, the current driver moves to a navigator seat, and the next person in the rotation becomes the driver. A typical rotation interval is 10-15 minutes, short enough to keep everyone engaged and ensure that all team members drive during a session.

# Mob Programming Rotation (5-person team, 15-min intervals)

 Time       | Driver    | Navigators
 0:00-0:15  | Alice     | Bob, Carol, Dave, Eve
 0:15-0:30  | Bob       | Carol, Dave, Eve, Alice
 0:30-0:45  | Carol     | Dave, Eve, Alice, Bob
 0:45-1:00  | Dave      | Eve, Alice, Bob, Carol
 1:00-1:15  | Eve       | Alice, Bob, Carol, Dave
 1:15-1:30  | Alice     | Bob, Carol, Dave, Eve  (cycle repeats)

Remote mobbing works through screen-sharing tools. The driver shares their screen (or uses VS Code Live Share), and the team communicates over video call. Some teams use dedicated mob programming tools that automate the timer and rotation, such as Mobster or mob.sh.

A typical mobbing day is not 8 hours of continuous mobbing. Most teams mob for 4-6 hours and reserve the rest of the day for individual tasks, email, meetings, and recovery. Sessions include regular breaks — a common cadence is to take a 10-minute break every hour.

Why It Matters

Mob programming eliminates several categories of waste that are common in traditional development workflows.

No handoffs. In a traditional workflow, a developer writes code, submits a PR, waits for review, addresses feedback, waits again, then merges. Each step involves context switching and wait time. In a mob, the code is written, reviewed, and approved simultaneously. There is no PR review queue because the review happens continuously as the code is created.

No knowledge silos. When the entire team writes the code together, everyone understands it. There is no risk that a critical system is understood by only one person. This dramatically reduces the team’s bus factor and makes on-call rotations, vacations, and departures far less disruptive.

Higher quality decisions. Complex design decisions benefit from multiple perspectives. A mob naturally surfaces trade-offs, alternative approaches, and edge cases that a solo developer or even a pair might miss. The team converges on a solution that has been vetted by everyone before a single line of code is written.

Faster onboarding. New team members join the mob and immediately begin contributing as navigators. They learn the codebase, the team’s conventions, and the domain in context rather than through documentation or separate onboarding sessions. Teams that practice mobbing report that new developers become productive contributors within days rather than weeks.

Best Practices

  1. Use a visible timer with strict rotation. Without a timer, one or two dominant personalities will drive most of the session. Tools like Mobster, mob.sh, or even a simple phone timer ensure that everyone rotates into the driver seat equally.

  2. Follow the strong-style navigation rule. The driver should implement what the navigators direct, not code independently. This forces ideas to be verbalized, which surfaces assumptions, catches misunderstandings, and ensures that the entire team is aligned on every decision.

  3. Start with a clearly defined task. Mobs are most productive when the team has a shared understanding of the goal before starting. Spend 5-10 minutes at the beginning of each session aligning on the objective, the approach, and the acceptance criteria.

  4. Limit mob size to 3-6 people. Smaller than three is pair programming, not mobbing. Larger than six creates coordination overhead where some navigators disengage because they cannot meaningfully contribute. If the team is larger than six, split into two mobs working on related tasks.

  5. Do not mob on everything. Mob programming is most valuable for complex, ambiguous, or high-stakes work — new system design, difficult debugging, critical infrastructure changes, and knowledge-transfer sessions. Routine work like fixing a typo or updating a dependency does not warrant assembling the entire team.

Common Mistakes

  1. Letting the mob become a spectator sport. If only one or two navigators are actively contributing while the rest watch passively, the team is paying the cost of mob programming without reaping the benefits. Facilitators should actively invite quieter members to share their perspective, and the rotation should include a “navigator lead” role that cycles independently of the driver role.

  2. Skipping breaks and mobbing all day. Mobbing requires sustained concentration and social engagement, which is cognitively exhausting. Teams that mob for 8 hours straight burn out quickly. Enforce regular breaks, limit mob sessions to 4-6 hours per day, and respect individual needs for solo focus time.

  3. Abandoning the practice after initial awkwardness. Mob programming feels slow and uncomfortable during the first few sessions. Team members accustomed to working alone may resist the perceived loss of individual productivity. Teams that push through the initial adjustment period of two to three weeks typically find that the mob’s collective output and quality exceed what the same individuals produce working separately. Give the practice at least a month before evaluating whether it works for the team.

Related Terms

Learn More

Related Articles

Free Newsletter

Stay ahead with AI dev tools

Weekly insights on AI code review, static analysis, and developer productivity. No spam, unsubscribe anytime.

Join developers getting weekly AI tool insights.