How big should your first mob be? Unfortunately there is no one right size mob - mobs are made up of people, dfferent people bring different things to the mob.
While starting off small and growing the size of the mob as people in your team gain experience in this style programming is often the best approach - a small mob of people who have no experience with mob programming may not as good as a larger mob that has experienced mob programmers. Here are some things to keep a look out for.
Start small, grow as you gain experience
Whenever a mob starts, your will see some social ‘storming’ (if you are not familiar with Tuckmans stages of group development, it worth reading up on). If you are not able to get past the storming, it can kill the future of mob programming for your team.
Fundamentally, large mobs go through more storming because there are more people (and thus more social dynamics). When starting try and avoid a large initial mob. How large is large? I’ve found as soon as your start going over 5 people in a mob you see significantly more storming.
If you are going to risk a large initial mob, consider getting a facilitator who is experienced with mob programming to help you navigate the social dynamics you are going to encounter.
Mob programming is not pair programming. The experience when two people program together (pair programming) is different to the experience when more than two people program together. While pair programming is a great entry drug for mob programming, it should not be confused with being the same thing. At a minimum, mob programming is three or more.
While mob programming needs at least three people for a ‘mob’ to really exist, three people may sometimes still be too small. A big aspect of mob programming is flow. When individuals have meetings, are sick for a day, get an urgent phone call, or just need to have a quick break you risk loosing flow or becoming a pair.
For those that haven’t done pair programming
If you come from a team that has not done pair programming, should you first attempt pair programming before tackling mob programming?
I’ve seen teams that have successfully skipped pair programming and gone straight to mob programming. In fact, in many situations it is easier to get mob programming working than pair programming.
One of the challenges with pair programming is it’s easy to reach a stale mate (when there is only two of you, who make the final call). With mob programming you generally have a built in tie breaker and it is less personal.
I prefer an initial mob of four. Four gives you enough people redundancy that should someone need to pop out, you still have the benefits of more than two people working on the problem and are able to keep flow. Four is also small enough that the storming you will go through is still managable. Whether four is the magic number or not for your team depends on your specific circumstances.