With Mob Programming, three or more developers work together on the same computer. The aim is to deliver high-quality software as quickly as possible. Such collaboration between a group of ambitious developers isn't that easy. If it also has to be done remotely, it seems even more challenging. However, Remote Mob Programming still delivers great results if you do it right.
Most developers are familiar with Pair Programming, where two developers work together on the same solution. Mob Programming or Mobbing is the same concept but with three or more software developers. Usually they sit together in the same room, looking at a – preferably large – screen. If this is impossible, doing Mob Programming remotely is perfectly possible. Below are some tips for Remote Mob Programming.
Change roles regularly
As with Mob Programming, Remote Mob Programming always requires one ‘driver’. This person is the only one who is allowed to type and code. An important rule: roles are changed every so often so that each participant has a turn as the driver. That way everyone stays alert.
Besides the driver, there is normally also a ‘dedicated navigator’. While the driver is busy typing, the navigator has all the time they require to think, review and to discuss and describe the work. The navigator tells the driver what needs to be coded. All other participants also take on the role of a navigator to ‘challenge’ the dedicated navigator.
Create a virtual space
Make sure that everyone on the team can speak to each other at any time, just as when everyone sits at the same desk. So create a virtual space where everyone is present, for example by setting up a ‘lobby call’ that is on all day. Usually the microphone and webcam are just turned off when there is no communication. When you have a question that everyone should hear, you can turn on your microphone and ask the question out loud. Everyone in the lobby can then respond.
Share your screen
Create small teams of preferably three or four people. There are various tools, such as Microsoft Teams and USE Together, that allow you to remotely share your screen and effectively collaborate with several people on a single PC. Moreover, the person who is the ‘driver’ can take control of the computer each time.
Turn on the webcam
Turn on your webcam during meetings. If you need to brainstorm or want to discuss something, it is much nicer to be able to see each other. Body language also allows for much better communication. Then you see how your colleagues react to decisions and solutions as they are being made.
Dare to experiment with different processes and see what works best for you and your team.
Do’s en don’ts
What you should definitely do with (Remote) Mob programming:
- dare to talk
- ask questions
- make things visual by drawing them
What you shouldn't do with (Remote) Mob programming:
- spend too much time discussing things that don't matter, such as keyboard shortcuts
- keep the same person in the same role for too long
- always let the same person have the last word
Challenges with Mob Programming
Mob Programming is difficult when developers work with different computers and keyboards. Mac and Windows, for example, or azerty and qwerty, or if they work with self-defined shortcuts or with different editors such as IntelliJ or Visual Studio Code.
Useful tools for Mob Programming
There are also tools for making the collaboration a little smoother. For example, Mobster is a very useful tool for Mob or Pair Programming. You can enter the names of the participants, after which a driver and a navigator are automatically designated. When the timer goes off the roles are also automatically redistributed. This way you avoid discussions.
Great benefits, also in the long term
Mob Programming and Remote Mob Programming may seem very complicated and inefficient at first because so many people are involved. But this approach offers great benefits. To begin with, you get to know your fellow developers better, which gives the collaboration a boost in the longer term. Moreover, you can often come up with better and more elegant solutions to complex problems by putting your heads together. Finally, mobbing also ensures that the entire team is aware of all decisions, the code base and functionalities.
You will find more tips for Remote Programming here.