The Mobbing Delusion
Others, even some of my best friends, have spoken and written about Mob Programming extensively and have told about all the benefits, and I agree with most of them, so I won’t go into detail about that. What got me upset are the proponents doing Mob Programming 100% of the time. I posit that while beneficial and applicable in some situations, it is far from being so in most cases and it comes at a cost that is far from justifiable and a sign of irresponsible ‘nerd’ behaviour. Irresponsible, for wasteful and takes the eyes away from delivering value.
Because not all activities are equal, not all decisions are equal, not all code is equal.
Activities. Team-wide understanding, discovery and creation of base level approaches are definitely crucial, as is frequent alignment of sorts. As is the ad-hoc involvement of others for brainstorming, advice, help. These activities are not all that take place in development, though. Once we have a good understanding of problem and solution domain, activities shift into the just do it zone. Do such just do it activities really call for team-wide involvement?
Decisions. The mapped model of the business domain, a red-thread of overarching architecture and a ubiquituous understanding of collaboration and delivery are crucial and need to be established carefully. Not all decisions are on such scale though, plenty of lesser grade decisions will follow, with more local scope of impact and potential of damage. Is it really worth taking every single decision with team-wide involvement and the additional cost?
Code. Not all code is globally relevant, not all have the same know-how requirements, nor the same quality expectations. Peripheral, specialist, single purpose code can very well be written by a single individual, after all we have professionals and standards for quality and documentation. Do we really want to force the entire team waste aggregated time to fight with a PDF generator framework that’s only needed to send pretty-printable messages?
My answers were, as you’ve probably guessed, a clear and resounding NO to the above questions. I want to work in a team of professionals who know that everything is contextual and that the focus is on delivering business value not on navel-gazing with a glorified, dogmatic, perfectionist attitude. So, this is why the undifferentiated statements about the benefits of Mob Programming irk me.
Don’t let a tool drive what you do!
PS: See the almighty Codefin.