Mob Programming on a daily basis 5/5 (3)

Definition and rules

To begin with, it’s a good chance to do some definition learning if you’re not familiar with the term before.

“Mob programming is a software development approach where the whole team works on the same thing, at the same time, in the same space, and at the same computer.” — Wikipedia

As the term itself suggests, it involves many people in the coding. But just one person, instead of everyone, literally does the typing at a time. This person’s role is called “the driver”, and the rest members are known as “navigators”.

But if the driver is the only one sitting at the keyboard, then what the navigators do? Well, while the driver does the coding, the navigators are in charge of other stuff, as long as it’s related to the task, e.g., problem solving, researching, syntax/typo correcting… you name it.

Also, there are rules applied to this approach as following:

  • Every navigator switches their role with the driver after a period of time defining by the team(e.g., 15 minutes).
  • The driver should always explain what he’s going to do and how.
  • Navigators must actively participate in every discussion, give their own ideas/opinions, share good practice in implementation, or knowledge that is useful among the team.
  • The driver should not be protective.
  • Navigators should not blame.
Photo Credit: Underthehood.com

Pros and Cons

Here are some significant benefits of this technique:

  • Problem solving: This is a very typical use case. When you work together, problems are solved quicker and easier.
  • Focus improving: Obviously you can’t surf facebook or internet for your personal purpose when the others are working.
  • Code quality improving: errors or potential problems are discovered earlier, as many people are checking one person code at the same time. Best practice is also applied as much as possible.
  • No silo: which means everyone in the team understands how things work, so it’s not dependent on one individual. When one takes leave, the others can handle it well.
  • Knowledge transferring: It’s a very important advantage of Mob Programming. All skills, knowledge, tricks and hacks of each participant are shared among the team. You have a great chance to learn from the others.
  • Having fun: This is where people can work, and at the same time, share their moment together. It’s exciting to take part of such activity.

But every good thing comes with some drawbacks:

  • The approach requires much more workforce than solo work.
  • It’s inefficient in case of repetitive or simple tasks.

When to apply?

Based on its benefits and drawbacks, we have come to a conclusion when to turn Mob Programming mode on:

  • Implementing big tasks: Often, sophisticated tasks require more advanced knowledge and skills. A person may have advantage at one field but not all. By doing Mob Programming, each member completes the others with his unique skills and knowledge. So it’s more likely to finish the task faster with minimum technical debts.
  • Training, knowledge transferring: Mob Programming provides an ideal environment to share and learn among the team. People feel open to ask questions, and actively share their own knowledge and experience.

Conclusion

Mob programming is not new, more and more companies are applying this approach, fully or partly. Though it’s far from being popular, why don’t we give it a try?
Recently, we at MMJ Vietnam have experimented it on a daily basis with our new project, and the result was good that we wanted to apply it at larger scale in our company.

What’s your thought about this technique, and have you experienced it before? Feel free to leave a comment below.


This article is also available on Medium


Some photos from our Mob Programming day at MMJ Vietnam
Please follow and like us:

Please rate this

You May Also Like

About the Author: Andy Tran

Leave a Reply

Your email address will not be published. Required fields are marked *