December 17, 2018

Speed Up Your Scrum With Mob Programming

Development Team Organises Its Own Work

The Development Team is both self-organizing and cross-functional and by the end of each Sprint provides an increment that is ‘done’ and releasable. The team defines how to organize work in a Sprint.

The Development Team self-organizes to undertake the work in the Sprint Backlog, both during Sprint Planning and as needed throughout the Sprint. (The Scrum Guide, 2017)

There are useful modern practices for organising a team’s work. One of them is ‘mobbing’ or ‘mob programming’.

The ‘Mobbing’ or ‘Mob Programming’ Style of Development

Wikipedia defines mobbing as ‘bullying of an individual by a group, in any context, such as a family, peer group, school, workplace, neighborhood, community, or online’, but here is the definition of ‘mob programming’ as given by Woody Zuill, the technique’s creator:

‘All the brilliant minds working together on the same thing, at the same time, in the same space, and at the same computer.’

Essentially, mobbing is a style of work in which a team constantly works together and ‘mobs’ any issues that arise.

In mobbing, there are two main roles: the driver and the navigator. The navigator gives instructions, while the driver’s job is not to think but to carry out the navigator’s instructions. If the navigator does not know what more to do, then he or she may request help from the mob — the other members of the team, who observe what is happening on a projector screen and are always aware of the context. Every X minutes, the roles change and the team rotates clockwise.

Why Mobbing Works

Mobbing is a rapid method of development. How is that possible, if a team is working on only one computer at the same time? Let’s have another look at how dedicated specialists usually organize work:

 

They create pockets of localized optimization, in which queues arise. This creates the illusion of an efficient team, since everyone is busy, while in fact most of the time the work stands idle in queues and team members are occupied trying to ‘push through’ their work.

Mobbing deliberately ‘underutilizes’ a team. Everyone is occupied with the one task, and this means that there are no handoffs or wastes. Unsurprisingly, Cycle Time sharply decreases, since there is only one queue at the entry point.

Other Unseen Benefits of Mobbing

There are many other unseen benefits of mobbing. I shall outline a few of them:

  • Knowledge sharing

  • No need to conduct a code review

  • It builds trust, as a team must learn to communicate and listen to various points of view to reach a consensus

  • No context switching

  • No handoffs

  • No code conflicts

  • No delays in answering any questions within the team

  • It leads to a strengthening of cross-functionality and flexibility of the team

  • High quality, as everyone is observing what is happening

  • You can try any form of intellectual work with mobbing

  • No need in managing the queues (f.e. with Kanban), since queues are eliminated and mobbing is
    a one-piece-flow development style

Our Experience with Mobbing

A couple of months ago, we used mobbing in the creation of the AgiliX.ru website. No one can believe that creating the MMP (Minimum Marketable Product) and releasing it into production took half a day. But that is all it took.

We also successfully applied mobbing as a training format for the Community of Practice (CoP), and we are attempting to use mobbing by gathering once a week in front of a projector screen in a coworking space. I would add that in order to test out working with mob programming, you don’t necessarily need to have a projector and allocate а conference room. You can begin in the team’s workplace by just placing two monitors side by side.

How Often Can You Work with Mobbing?

Some teams work full time with this development style. Others dedicate specific days or times to it. Nonetheless, many experts with whom I have spoken believe that a team only picks up speed and gains all the benefits of mob programming by working with it fully for no less than a month.

The Article’s Main Ideas

  • Mobbing is a useful practice that can be used in Scrum

  • Mobbing eliminates queues and increases the speed of development

  • There are many other unseen benefits of mobbing

  • Any intellectual task, not necessarily just programming, can be done using mobbing.

  • A team can choose by itself how much time to dedicate to mob programming

  • Only a small amount of resources is needed to start with — two monitors placed side by side in the team’s own workplace

Useful Links