On Nepal Codes we belive that Team Work makes the Dream Work! 🙌 One way we collaborate is through mob programming. In this section you can learn all about our Mob Programming practices.
Mob programming
From wikipedia:
Mob programming is a software development approach where the whole team works on the same thing, at the same time, in the same space, and at the same computer. This is similar to pair programming where two people sit at the same computer and collaborate on the same code at the same time.
You can read and watch more about mob programming here: https://www.agilealliance.org/resources/experience-reports/mob-programming-agile2014/, https://www.agilealliance.org/resources/sessions/mob-programming-aatc2017/
Mob programming encourages collaboration, knowledge sharing, and syncs everyone up on the same page. Senior members of the team have a chance to drive the architecture, while junior members learn during the process. Nepal Codes is a remote team, so mob programming also allows us to have more face-to-face time with everyone in the group.
First, setup these tools to get ready for remote mob programming:
- Video Conferencing with screen share - Hangouts or Zoom work well for this
- Visual Studio Code and VS Code Live Share extension - Allows multiple people to share the same codebase at the same time. You can set it up here: https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare-pack
That's it! You're ready to start mobbing 🎉
Mob programming creates an open environment for everyone to share thoughts and ideas. Don't be afraid to ask questions and clarifications or share your opinions about code implementation. We're all in it together!
From the mob programming website:
There are two roles: The Driver, and the Navigator. The Driver sits at the keyboard and types in the code. The Navigators discuss the idea being coded and guide the Driver in creating the code. This means the Driver has a much more mechanical job than when coding solo. The Driver listens to the Navigators, and must trust the Navigators. The Driver is focused on the typing/coding. The Navigators are expressing their ideas to the Driver in a slow, metered approach so the Driver only has to focus on the next thing to type at any given time.
Everyone gets a chance to drive and navigate. Every 5 minutes the driver rotates and someone new takes the steering wheel.
It is expected that everyone on the team is giving the current work their full attention. You may use your own laptop to look up reference material or anything else that is helpful to the conversation, however you should be present in the team meeting
After each mob programming session, we spend a few minutes talking about what we can do better next time!
If you have any questions, please reach out to the Nepal Codes CORE team!