Author: A.C. Cristiaan |
What is Mob Programming Anyway?
It's typically a style of programming where programmers collaborate and write code together on a single project ‒ on one computer ‒ one programmer at a time. One of the initial challenges is finding the right set of team members to work together is as important as what the team ultimately produces. In theory and often in practice, the group is smarter than the individual, but the team must want to work together and not be forced into it. Mobbing is social ‒ so it does require those soft skills to be effective. As a manager, you would need to be aware of personality types that clash or show disrespect for other team members. Some programmers simply prefer working on there own and those personality types do not make good candidates for mobbing.
Benefits from my experience in mobbing.
Noticeable leaps in progress. The speed with which projects get completed increase as the team works together and trust each other's strengths. You'll notice that projects do not seem to stall ‒ roadblocks are addressed early and don't become lingering challenges.
Raising everyone's game. Programmers who are new to the team can be coding and making commits on their first day of work ‒ all with senior team member oversight. Raising the skill levels of the team as a whole ‒ instead of creating greater knowledge gaps between the very talented and the team junior programmers. The talented also benefit from new fresh perspectives.
Flow of ideas without the wait. Problem solving is seen through the prism of multiple roads to a solution. You get to pick the best idea based on results ‒ ultimately helping the team focus on the right approach to meet the overall goals of the client.
Expect better code. Once the mob feels comfortable and grooving out code, you'll notice the number of bugs reported will decrease.
Recommended rules and setup
Respect ‒ you can't start a mob unless everyone understands that the free flow of ideas is dependent on this one fundamental requirement.
A strong suggestion is to keep the mob size between 4 to 6 programmers.
You'll need one computer and one keyboard.
A 60 inch or larger screen so everyone can view.
Each programmer should not have more than 15-30 minutes on the keyboard ‒ whatever amount of time you decide, set a timer.
The programmer on the keyboard should code the groups ideas.
Decide on number of days per week that the mob meets and calendar it in. I personally suggest every other day as it provides the ability to reflect.
Make sure you have a white board in the room ‒ have fun and collaborate