Did something like this at a previous job without giving it a name. It was three of us around a single computer - we each took turns being the &quot;typist&quot; with the others mostly watching and helping, but also using their computers to lookup documentation or run a little ahead. Our job was to rebuild an existing product from scratch on a very short timeline and with some experimental new technologies none of us were familiar with. We programmed like this on a television in a conference room for about 2-3 weeks as we bootstrapped the program from nothing into a working core of functionality and abstracted away from the experimental technologies into something more manageable that we could use day-to-day. From here we  split-off and worked in parallel and brought in the rest of the team - who had been maintaining the old product in the mean time.<p>The main benefits were that knowledge sharing was immediate as we all went through the same learning process and helped build the same abstractions. Problem solving was also incredibly quick. We eventually open-sourced the work and it has been actively used by others for about 3 years now.<p>Overall mob programming was useful, but I think only with the following constraints:
- Small mob size
- Limited time in &quot;mob&quot; mode
- High-level of maturity and ability to work as a team among mob members<p>I think this could very easily turn into something nasty and unproductive with a group of people who can&#x27;t get along or aren&#x27;t mature enough for this level of cooperation and teamwork.