Many development teams that use agile software development methodologies have experimented with pair programming, a technique where two programmers share a PC while working together on coding projects. Now some teams are taking that approach to a new level with a technique called mob programming.
According to Woody Zuill, a senior consultant with Agile development firm Industrial Logic, mob programming involves "working in a group, with one person at the keyboard to 'drive' -- enter and edit the code -- and everyone else working together as the 'navigator,' 'guiding' what goes into the keyboard. The passing around of the keyboard was based on the principle, 'If I have an idea, I have to hand the keyboard to somebody else, so I can explain it, draw it on the whiteboard, and discuss it before it is keyed into the computer.'"
Zuill adds that mob programming is best for "smaller, simpler problems, because you can often find a way to abstract or automate tasks that are easy or repetitive, like cleaning up items in a database. Working as a team, it's a lot easier to see patterns and to act on them."