If you have had experience with Pair programming, Mob programming might not be such a strange concept. When an entire team works on the same project, at the same time, from the same location and even the same computer, it is known as Mob Programming. With Pair Programming, one developer will write the code and simultaneously, another reviews it. Mob Programming requires a similar approach, with each team member developing the software together from one computer.
There are several factors that must be implemented, for example, face-to-face and side-by-side communication, team collaboration, entire team involvement, and continuous code review. Not to mention an incredibly high level of organization.
A Mob Programming team can go beyond software coding and can cover practically all scopes of the software development, including user stories, designing, product testing, deployment and communicating with customers and other business specialists. In fact, a Mob Programming team will also include the customers and business specialists. Just about all of the work is carried out in a meeting and/or workshops.
How Did Mob Programming Begin?
It was an accidental discovery by Woody Zuill, Programmer, Consultant, Agile Expert, and Coach. Back in 2011, his team was participating in a training session with code kata techniques (from the book “Extreme Programming Perspectives”). His team members each had 4 to 5 minutes in front of the computer screen while the others observed. The name Mob Programming was also accidental. Woody used the team as a joke, but it was popular and stuck.
How to Begin Mob Programming
The first thing you need to do is to establish a very tight team mindset and not just when coding. You can start by replying to emails, overcoming issues and even taking breaks as one unit. The following is a list of the principal concepts:
- The ‘Mob’ team meet in their location with a clear idea of the day’s task
- The complete code is created on just one system
- There are a Driver and Navigators
- The Driver is the code writer and only they can make changes.
- The Navigators, other team members, are the experts and guides for the Driver
- Roles are changed so that everyone works on the system
- Once the task is successfully completed, the session will finish
The Room Set Up
Aside from the computer system, you will need a large projector/ monitor, a flip chart for making notes and chairs for your Navigators to use. It goes without saying that the Navigators must have a clear view of what the Driver is doing.
An ideal team will have 5 or 6 members, each being confident in a range of software development concepts such as testing, design, and the lifecycle.
What Are The Advantages Of Mob Programming?
- Teams develop a stronger relationship, it’s excellent for team building and creating friendships that go beyond work.
- The team learns how to cope with risks better, as their confidence grows, so does the level of risk they take. Each decision is discussed and even voted on, so there is no blame game, the team is responsible for the success and the consequences when something doesn’t go right.
- As the responsibility is shared, teams are happier in their work. It’s less likely for problems to go undetected and stress is reduced, overall improving team morale.
- You can eliminate developer meetings- the whole project is one big meeting.
- The team lives on, regardless of whether someone is sick or goes on holiday. In fact, when they come back, they become up to date far quicker than traditional approaches because of the closeness of the team. The same can be said for new team members.
- The team is highly efficient, communication is instant, as is the feedback and so tasks are completed quicker.
- As the team works together, they will share their expertise, teaching each other as the project progresses. And this isn’t limited to technical knowledge. It can be applied to soft skills like emotional growth.
What Are The Disadvantages Of Mob Programming?
It’s difficult to call them disadvantages. There are no set rules for Mob Programming, it’s more of a concept that you can try, and tweak it to make the needs of your project. That being said, you should bear the following things in mind:
- There will be a period of adaptation while the team gets to know each other and learn how each member works. There might be arguments about methods, levels of experience or even how the workstation should be set up. It’s important to address these issues as soon as they arise so that the team can move forward.
- Mob Programming will only function in the team members agree on the approach. If someone is not committed, or they aren’t comfortable with this style of working, the team will struggle to succeed.
This is a new concept that won’t fix all of your problems, but it is certainly an approach worth trying if you want to improve your team relationships, enhance decision-making, and develop better communication. As long as you are aware of the common mistakes that could be made, you could make way for a highly efficient team. At the end of the day, if everyone agrees, you won’t lose anything from trying this approach.