Mob programming is an approach to software development where the entire team works on the same thing simultaneously. The same place, on the same computer. It extends the concept of paired programming from two people collaborating to a whole team constantly collaborating on a computer to do a single job simultaneously. In addition to programming, Mob programming teams collaborate on almost every task of a typical development team, including storytelling. Client collaboration, design, testing, and software delivery. This work is over in workshops or “business meetings.” The group includes everyone involved in software development, including customers. Mob’s programming relies on face-to-face and side-to-side communication, team alignment, collaboration, and whole-team engagement.
The Structure And Function Of A Mob Programming Team
While there are different techniques for fine-tuning a mob programming group, a general blueprint works well, and there’s typically no reason to split wildly from it. These steps below will get you a lid foundation, but feel accessible to observation with what works and convert these steps to the individual identity and preferences of your team
The Set-Up
Unlike traditional programming or pair programming, mob programming brings three or six people together at the same computer. (Any more significant than that, and the conversation between teammates can get messy). Only one person handles the keyboard at a time while everyone else converses about code that guides the controller on what to implement. In short, the group writes and owns all the code together.
The Roles
A mob programming team has two essential jobs The navigator and the driver. It dictates the code to write, and the driver tools it. Your navigator leads the conversation among those not at the keyboard. They ask questions like, “What should the key be here?” or advise changes to variable names or patterns that implement. The driver sits at the keyboard and the appeals instructions from the team. The driver’s part is not to go off and write what they want but to express the ideas they hear from the navigator and turn them into code. Of course, everyone, not a navigator or driver, expects to be actively engaged in the discussion.
There may be a tend to get lazy and have these parts bleed together. You’ll want to avoid this and be careful about charging the driver and navigator roles “sacred.” For example, you are baking engagement into the development process by requiring the navigator to speak an idea or concept rather than just implementing it themselves.
The Rotation Plan
After 10-15 minutes, you handle roles to give everybody an equal risk to drive and navigate. The amount of time is long enough that it doesn’t feel like musical chairs but short enough to keep people engaged. So they aren’t waiting too long between turns driving, for example, on a mob programming team of four that does 10-minute rotations. So you’ll have 10 minutes as the driver, with 30 minutes as a navigator or team participant.
The Work Space
The critical consideration for your dedicated mobbing station is: Can everyone comfortably see what’s happening? Most mobbing stations feature a large TV or projector connected to the computer rather than a monitor. Three or four people huddling around a cubicle get uncomfortable fast. Outside of that, you can assess your station with the team needs to do their best work. Be it an ergonomic and standard keyboard based on what different drivers prefer. Whiteboard for sketching ideas, and even hand sanitizer.
Tips For Mob Programming Success
People are messy and imperfect, and that’s no different now that you’re all working on the same code. This social aspect might cause you to think about how mob programming works with introverts — or developers. Mob programming won’t work for every business or every team, and that’s okay. But if you’re ready to boost your engineering organization’s flow, order to get the best out of your team, not just the most. It might be time to grab a pitchfork and get to work.
Common Pitfalls
There are some things to consider when Mob Programming. An approach to working where you constantly collaborate with your team for the entire day may not appeal to everyone. In addition, some team members may find other opportunities or cause disruptions because they are uncomfortable with this way of operation. The team may be able to label these concerns with working functions that leave it up to the team process to withdraw from the group during specific periods.
If they need time, or those members who are not warm to this way of work may find a separate group to work with. When a group of people works team day closely in and day out. There is an increased risk of contagious illnesses running rampant through the team. Team practices that acknowledge and account for this fact can lessen the risk’s probability and impact.
Mob programming will only operate if the team sees value in this, takes a side, and chooses to work in this manner. Furthermore, Mob Programming involves bonds and changes in work style for everyone involved. Therefore, the conversion will not be nearly effective if people feel forced to make the change.
Origins Mob Programming
2011 A Software development team at trapper Industries happens upon Mob Programming as the evolution from practicing TDD and Coding Dojos and applying those techniques to get up to speed on a project put on hold for several months. A gradual development of practices and a daily inspection and adapt cycle resulted in the approach now known as Mob Programming.
Signs Of Use
A team that is using Mob Programming will exhibit the following characteristic.
- Team members approach all of their interactions with each other with kindness, consideration, and respect.
- The team’s physical space allows the entire team to work on the same thing simultaneously on the same computer without ergonomic issues.
- The team practices single-piece flow by starting, working on. And delivering one work item before moving on to the next item.
- The team continually seeks to improve through frequent retrospectives smatched up with concrete action items.
Conclusion
mob programming is an approach to software development where the entire team works on the same thing at the exact time, in the same place, and on the same computer. Moba’s development approach is based on direct and face-to-face communication, team fit, collaboration, and involvement of the entire team. Continuous code review and team self-organization to be effective. The mob development team has two leading roles: navigator and driver. For example, in a 4-person mob programming team working 10-minute shifts, you have 10 minutes as a driver and 30 minutes in between as a navigator or crew member.
HELPFUL RESOURCES: Programming Vs. Coding