Mob programming is what it sounds like a small group or mob of developers working together in real-time, on one task, on one computer. Mob programming takes advantage of a group’s collective knowledge to complete a task, but also promotes the development of soft and hard skills.
Mob programming has its roots in pair programming, a technique in which two developers work as a team on the same task using just one computer. The defining characteristic of mob programming developers grouped together at one workstation.
There’s no specific number of people but define a mob, but four to six is the norm. There’s usually a large monitor or projector that ensures everyone on the team can see the code. The mob strategy uses a driver-navigator workflow.
Participants rotate through various roles including The mob, or a small group that discusses alternative implementations and selecting the best course of action; The navigator, responsible for listening to the mob and communicating instructions to the driver; the driver, the only person behind the keyboard, responsible for converting the navigators instructions into code; and the facilitator responsible for keeping the mob on task and deciding when to switch roles.
Mob programming brings benefits like continuous learning among the team, real-time code review to ensure coding standards are met, exposing and overcoming individual weaknesses, fast feedback from the mob, continuous work regardless if a member is unavailable and hard, and soft skill development.