This article offers my thoughts on the benefits of mob programming, and how the Bonitasoft development team adapted to continue even through the Covid-19 office closures.
What is mob programming?
Mob programming is a software development approach where an entire team gathers around one keyboard and one projector screen at once, according to Agile community organization Agile Alliance. It’s an extension of pair programming, which involves two team members collaborating to complete a development task in the same space.
Embracing Mob Programming
My five-person team is responsible for the development of the Bonita platform portal for delivery of applications. We tried a mob programming approach to design and test an application page, a medium complexity project built with Gradle, using the Bonita UI Designer web page development tool and tested with Cypress.
The team worked on a laptop and a standard-size screen in the open office space. Pros: Fast development completion, better implementation and good test coverage. Cons: Decreased focus because of lengthy discussion and the distraction of phone notifications, communication style differences and paused cross-cutting topics.
My team members and I loved the result of mob programming but needed to iron out some issues.
Among other adjustments, we moved to a quieter spot in the office to work. We swapped out the small screen for a giant screen and replaced the laptop with a desktop, keyboard and mouse. We scheduled more breaks. We adhered to the basic rules. We rotated roles every 15 minutes, which meant all team members were more attentive and involved. Recognizing that timid team members might not speak up, we distributed speaking time more fairly. And we were more selective when choosing projects for the mob programming method (bug fixes, for instance, are best solved through pair programming).
How We Benefited from Mob Programming
The process required a little tweaking at the beginning but it was well worth it. Here are some of the mob programming benefits we realized:
- We moved quickly on the development project
- We eliminated merge conflicts
- We spent less time in standup meetings and pull request reviews
- We had fewer external interruptions (people are less willing to interrupt an entire group than just one person working independently).
- Our knowledge sharing improved. All members of a mob programming development team receive the same level of knowledge on new developments. New team members are able to quickly ramp up on the legacy code.
- The solutions we developed were better tested with fewer bugs in the final product. Since the code is made modularly, it’s easy to modify if needed.
- Mob programming has taught us to communicate in a way that works best for each team member. We appreciate the diversity of thought and personality among team members rather than viewing it as a disadvantage.
Can Mob Programming Work in a Pandemic?
Bonitasoft devs are all working remotely. We apply the basic rules using videoconferencing tools, and duplicate the development environment for everyone. Communicating via videoconferencing was an adjustment but it works. Each team can adapt mob programming to what works best for them over multiple iterations, whether they’re working in the same space or remotely.
Here are a few mob programming tips:
- Define when it involves remote work versus when it will involve everyone working in the same space (with social distancing procedures in place, of course).
- Apply the basic rules strictly, so you have a solid foundation on which to build a mob programming practice.
- Limit potential distractions by opting for a large screen, mouse and keyboard in a quiet location.
- Factor free time into your non-sprint work schedule so that team members can check their email and work on other projects.
- Define break times (the Pomodoro technique could be one option).
Mob Programming is Worth Exploring … Even Now!
At Bonitasoft, smart implementations have resulted from the development team embracing the value of collective intelligence and mob programming. We’re delivering projects faster and enjoying greater satisfaction in our work lives. With some adaptation, it’s possible to realize its value by adding it to any team's development methodology options.
Read the entire article by Julien, originally published on DevOps.com, here: https://devops.com/mob-programming-during-a-pandemic-lessons-learned/