Mob Programming

A few weeks ago, our teammate Aleksandar Gjorgjevski, a Senior Java Developer, held a presentation about Mob Programming at a local meetup of the Java community.

A few weeks ago, our teammate Aleksandar Gjorgjevski, a Senior Java Developer, held a presentation about Mob Programming at a local meetup of the Java community. He spoke from his experience on the topic, since he and his team have been employing this methodology of working for a few years now with one of our clients from the telecommunications industry. Here’s a brief recap of what was said.

What is Mob Programming

Mob Programming is an extension to pair programming – the methodology where two programmers work on the code together. Mob Programming is a methodology where more than two programmers work together on the same task using one single workstation. By definition, it is said that the entire development team may take part in mob programming, including developers, testers, and other stakeholders. In Aleksandar’s case, it’s a team consisting of 4 developers.

Some Rules of Mob Programming

A Mob team is organised so that there is a driver, and there are navigators. The driver is the programmer who usually sits at the workstation and does the actual typing of the code. The navigators are there to keep a close eye on the code, as well as navigate through the input. They discuss and dictate, while the driver types. It is allowed for the driver to ask questions during mob sessions, but they should not take part in discussions about the solution. There is only one driver at a time, and they operate as listeners.

The navigators discuss between each other. They think ahead, instruct the driver, and raise a hand when they have something to say.

Behaviour and Environment

In Aleksandar’s team, drivers take 10-minute turns. The entire team takes a brief break every 40 minutes, or when an important milestone is reached. Each mob session ends with a 5-minute retrospective of everything that has been done. It is very important to obey the “one-person speaking at a time” rule to keep a respectful and professional atmosphere during the session. Aleksandar mentioned that it is preferable to do the mob coding sessions in person, however when this isn’t possible it should be done with the webcam on as much as possible. It is important to note that being a part of the session is not mandatory, although the entire team is invited. Stepping out of the structure is always possible and anyone can leave at any time.

A ‘mob order’ is established at the beginning of a session. It determines who will take the first turn at being the driver, the second and so on. A ‘mob channel’ is determined as well. If the sessions take place online, a Teams (or another platform of choice) channel is created to avoid searching for an event or being stuck in the meeting lobby. If the session takes place at the office, it’s important for the participants to have a dedicated space that is easy to go in and out of, without interrupting the mob session.

Benefits of Mob Programming

Aleksandar mentioned multiple benefits about his team’s work during the mob programming sessions. One of the benefits was that it was a single process, where the team learns from each other, but also plan, design, review the code, test in the process, review each other’s work, easily onboard and offboard new employees.

“Even as a Senior Developer I’ve been able to learn so much from my teammates during these sessions. We are so much smarter when working together,” says Aleksandar.

Except for this knowledge exchange, this way of coding allows the team to cover all the requirements and remove the bottlenecks of the decision-making process. It’s a precise process that produces the best design and code logic. The reason behind this is that the team decides the code together, and this makes for a clean code. It basically takes the code to the next level.

The team learns to communicate and work better together. They build a healthy relationship with one another. The team shares responsibility for the code they produce during the mob programming sessions. This creates collective code ownership and makes everyone accountable for the quality and maintainability of the codebase.

Useful Tools for a Mob Session

Here’s a list of tools used by our team during mob programming sessions:

  • Tool used for handovers over git.
  • Online mob timer tool.
  • IntelliJ plugin.

Conclusion

Aleksandar mentioned that for the duration of this project, they’ve had a minimal and insignificant number of bugs. Mob programming has made the team resilient to outside factors, since there are always 4 team members who know the code in detail. If a team lead or a member of the development team changes, there are still multiple members who understand the code and are able to keep the flow of the project.

Mob programming works well with agile development practices, since it puts an emphasis on collaboration, adaptability, and flexibility. This makes it possible for a team to respond quickly to changing requirements.

Explore more articles in this category

Consultant in focus Dorian Slavov – Nion’s first colleague in Bulgaria

Nion has assembled an incredible team, and being surrounded by such talent and passion is incredibly inspiring.

Explore
Consultant in focus Peter Dahlman – DevOps Engineer

I enjoy working at Nion because my vision, values and outlook on how we do business and deliver value for our clients are aligned.

Explore
Reference case Strategic partnership and cooperation with SRS since 2016

Svenska Retursystemet (SRS), owned by the big FMCG companies in Sweden – faced challenges.

Explore
Reference case New analytics platform and Data Warehouse for Rädda Barnen (Save the Children Sweden), ensuring well-informed decisions

Rädda Barnen, a leading global non-profit organization asked Nion for support.

Explore
Reference case Developing and maintaining a Data Warehouse for GANT

GANT, a well-known global retail brand, initiated a collaboration with Nion in early 2021.

Explore
Reference case Development of a functional and intuitive digital workspace together with Aize

Aize asked Nion for support in creating an intuitive and functional digital workspace, comprising a collection of tools.

Explore
Product Sharelock

With over 20 years of experience in the financial industry, we understand the critical importance of efficient and secure compliance processes.

Explore
Product GIVO

GIVO is innovative and sustainable platform designed to simplify and elevate your fundraising efforts.

Explore
Consultant in focus Filip Shulevski – Quality Assurance Engineer

At Nion, I’ve found more than just a job!

Explore
Consultant in focus Adam Kristensson – Talent Acquisition Specialist

The people are the core of a company and Nion knows this.

Explore

How can we help you?

Get in touch with us or find an office closest to you.