What to expect when working in Mob programming
What is the best way to develop your digital products? What happens when you hire a software development company to build the product your company needs? How do we work with you? What work modality do we follow and how does this influence the quality of your digital products? When hiring a software development company, you do not always know how your digital products will be built, through which processes or in which work dynamic. Sharing one of the work modalities we use with a client is a way of being more transparent with you, so that you know how we work on your digital products or what to expect among the possibilities when working with us. Our processes and work modalities will shape (y)our final products, which is why this is so important.
Have you ever heard of Mob programming? “Mob” in Mob programming refers to working as a single unit. In this work modality, the Development team works together at the same time towards the same problem, either in person or remotely, via video call. The stage of Code Review is done at the same time the functionality is being coded, by all the members of the team together. This way, they debate what is the best way of solving the problem, they evaluate and correct the written code.
This work dynamic may be used in different moments or for different purposes, depending on the team’s choosing. Sometimes, Mob programming is used for specific stages of the development, for example having to develop a complex software feature, in which working together helps reaching better solutions or input from several people is required. Other times, it is used throughout the whole project. In some teams, Mob programming is used all the time. One of the reasons for this may be that a developer is guiding the rest of the team on certain aspects they are not used to work on. Therefore, being together allows the Developer to explain, show what it is being said or done, present practical examples, and the client’s crew to ask questions. Using this work modality all the time is advantageous since it is helpful to flatten the team’s learning curve, concerning tools or techniques being used. Given that the members of the team are together during the whole process, when someone is guiding, those who are learning can see what the person is doing in real time, they have the chance to clear their questions, and thus a positive exchange takes place. This way, they all level out.
Nowadays, with Coronavirus Disease, the term has evolved to Remote Mob Programming, which is the same idea with the difference that the members of the team are distributed and they work together from their houses through a video call. The way it works is by taking turns every 20 minutes so that everyone can contribute to the code by giving their opinion or by coding. Everyone has their turn, in which they take leadership, share screen and receive feedback from the rest of the team. Sometimes it is useful to incorporate someone from another team for the stage of code review, to obtain a fresh look and receive feedback from a different perspective, because after working on the same team together for so long, the team starts to work and behave as a single entity.
Is this work modality slower than the traditional one? This is a common question and the main reason for this skepticism from Developers, Project Managers, Clients or Clients’ teams comes from the fact that work is being done in series instead of in parallel. Hence, when we decided to try it, we took special care of measuring and comparing with the traditional work dynamic. Surprisingly, not only was productivity not reduced in Mob programming, but other stages post development were shortened in comparison to the traditional modality. The reason for this was that although the coding process itself took a bit longer, the times of code review and testing stages were greatly reduced since everyone was able to share their opinion and possible errors were caught while coding. Thus productivity was not damaged but improved.
Is Mob programming suitable for any team? It depends on the personality of the members of the team. Imposing people, who want to do things their way no matter what, do not really fit in this work dynamic since this attitude does not favour teamwork. Moreover, if there are two people in the team who are highly competitive with each other, it will be problematic because Mob programming relies on collaboration. Therefore, this work modality is not an infallible technique that solves any problem but an option that may adjust to the team or not, depending on their characteristics and their work dynamic. This is why, as an answer to the question this article started with, the best way to develop digital products is not one unique way but the modality that best suits the team.
As every work modality, it has positive and negative aspects concerning factors such as the inner functioning of the team, the results and the quality of the product. Therefore, what advantages and disadvantages does Mob programming present?
Concerning its advantages, code review is much more agile than it is in the traditional modality because it is already done during the coding process instead of developing first and reviewing code afterwards. What is more, Project Managers agree that the code’s quality is superior because of the interaction that takes place between the team, which answers one of the questions from the beginning regarding that the way things are being done, that is to say, the work modality, influences its results. QA has noticed there are very few bugs in the code and the ones that happen can be rapidly corrected. This entails another advantage, any bug can be solved by anyone in the team because they all know the code since they took part in its development. This is an important benefit for Project Leaders since the knowledge is distributed across the team and they can choose any Developer to fix a bug. Whereas, under the traditional modality, the Project Manager would have to take the Developer who coded the feature out of their current work to fix it. Furthermore, the sanitary emergency caused by coronavirus forced us to work from our homes, which affected our work dynamic, and thus evidenced another positive aspect of Mob programming. It is really helpful for member’s interaction and communication as well as getting to know each other. Why? Working at a distance, the majority of the communication takes place through work chat services or e-mail. Even though having video calls and working together while being on them does not replace face-to-face communication, it is much more similar to it and gets much closer to it. This way, one talks to the rest of the team, listens to their voices, sees their faces, their gestures and their expressions. This makes the team solid and cohesive.
Regarding its disadvantages, this work modality may cause burnout. As video calls are long and take a lot of time, it can be exhausting for the members of the team. In our case, at the beginning we worked while being in the video call all day long. In order to make it less tiring and more bearable, we started doing 5 minute pauses once everyone took their turn. However, this solution was not enough and it was still really consuming. Hence, it is important to measure this aspect and look for balance, which means that maybe it is not always necessary to work this way all the time, and evaluate when it is worth it. In addition to this, another negative aspect is that the team may work as a bubble and isolate from the rest, which may affect the relationship between the team working in Mob programming and the rest of the teams. Furthermore, the interchange that naturally happens during video call has no written register as in work chats or e-mail.
In the light of the above, Mob programming gives us the chance to work closely between us and with you, every step of the way. This allows us to have better communication and interchange with each other, which results in higher caliber and a positive work dynamic in which we can help one another. This dynamic is applicable when working with you, which offers you transparency and the possibility to be part of the process. This means you know and can take part in how we develop your digital products and what decisions we make. Because of all of this and what has been explained, in Mob programming transparency is dominant, teamwork is a must, and its enriching interchange, when correctly applied, results in better quality in less time.