Skip to main content

Mob Programming

Updated 2 min read

Share this page

Send the link, quote the definition with a link back, or show it as a card on your own site.

https://softwaredictionary.org/terms/mob-programming

In short

Mob programming is a practice in which a whole team works on the same task, at the same time, on one shared computer, taking turns at the keyboard.

What is mob programming?

Mob programming is a way of working in which the whole team, typically three to six people, works on the same problem at the same time on a single computer or shared screen. One person, the driver, types, while everyone else acts as a navigator, discussing the approach and telling the driver what to write. Woody Zuill and his team popularized the practice in the early 2010s, and it is also known as ensemble programming or software teaming.

Roles rotate on a short timer, often every 5 to 15 minutes, so everyone takes regular turns at the keyboard. Many mobs follow strong-style navigation: for an idea to go from your head into the computer, it must go through someone else's hands, so the driver doesn't type their own ideas and the group must explain and agree before code is written. Remote mobs share a screen and hand the code over through a shared branch when the driver changes. Mobs often include testers, designers, or the Product Owner so that questions are answered on the spot.

Mob programming is like a band writing a song together in one room instead of each member recording a part alone and mailing it in. Knowledge spreads quickly, there are fewer handoffs and less waiting for code reviews, and decisions benefit from everyone's expertise, which makes it useful for complex problems, critical code, and onboarding new team members. It can be tiring, so many teams mob for only part of the day and take regular breaks.

Mob programming is often compared with pair programming. Pair programming puts two people at one workstation, while mob programming extends the same idea to the whole team. Both provide continuous code review, but mobbing trades the number of tasks in progress for shared understanding and smoother flow. It is also different from a meeting where one person codes and others watch passively: in a mob, everyone navigates.

Key takeaways

  • The whole team works on one task at one computer at the same time.
  • A driver types while navigators decide what to write.
  • Roles rotate every few minutes so everyone takes turns.
  • It spreads knowledge fast and removes waiting for code review.
  • Pair programming involves two people; mob programming involves the whole team.

Example

A mob session rotation scheduletext
Mob session: 10:00-12:00, one shared screen, 10-minute rotations

10:00  Driver: Ana    Navigators: Ben, Chen, Dee
10:10  Driver: Ben    Navigators: Chen, Dee, Ana
10:20  Driver: Chen   Navigators: Dee, Ana, Ben
10:30  Driver: Dee    Navigators: Ana, Ben, Chen
...
11:50  Five-minute retrospective: what helped, what to change next time

Rule: the driver types only what the navigators decide (strong-style).

Readers ask

What is the difference between mob programming and pair programming?

Pair programming involves two developers sharing one workstation. Mob programming involves the whole team, often including testers and product people, working together on one task with rotating drivers.

Isn't mob programming inefficient?

It looks inefficient because several people work on one task, but teams report fewer bugs, less waiting for reviews and answers, and faster knowledge sharing. Whether it pays off depends on the complexity of the work and how often a team would otherwise be blocked.

What is ensemble programming?

Ensemble programming is another name for mob programming, chosen by some teams because it sounds more collaborative. Software teaming is a newer name for the same practice.

See also

Spotted a mistake or something missing on this page?Suggest an edit

Read a random page
Open today's review
Switch to the dark theme
Read this page in Türkçe

More

Settings