Mob programming (sometimes informally called mobbing or ensemble programming) is a software development approach where the whole team works on the same thing, at the same time, in the same space, and at the same computer. This is similar to pair programming where two people sit at the same computer and collaborate on the same code at the same time. With mob programming, the collaboration is extended to everyone on the team, while still using a single computer for writing the code and inputting it into the code base.
The basic concept of mob programming is simple: the entire team works as a team together on one task at the time. That is: one team – one (active) keyboard – one screen (projector of course). — Marcus Hammarberg, Mob programming – Full Team, Full Throttle
In addition to software coding, a mob programming team can work together to tackle other typical software development tasks. Some examples include: defining user stories or requirements, designing, testing, deploying software, and working with subject matter experts. Almost all work is handled in working meetings or workshops, where all the people involved in creating the software are considered to be team members, including the customer and business experts. Mob programming also works for distributed teams in the same virtual space using screen sharing technology.
- Zuill, Woody (2014). "Mob Programming: A Whole Team Approach". Agile2014 Conference Experience Reports: 11.
- Hammarberg, Marcus. "Mob programming – Full Team, Full Throttle". CodeBetter. CodeBetter. Retrieved 9 September 2014.
- Moses Hohman; Andrew Slocum (2002). "Chapter 28. Mob Programming and the Transition to XP". Extreme Programming Perspectives. Addison-Wesley.
- Nigri, Julien. "Le Mob Programming : Présentation". Soat (in French). Soat. Retrieved 9 September 2014.
- Harrer, Simon; Christ, Jochen; Huber, Martin. "Remote Mob Programming". Retrieved 29 April 2019.