On the 6th – 7th November, we had a very important visitor at our offices.
Agile guru and President of Lean-Agile Partners, Nancy Van Schooenderwoert, travelled across the pond from Boston to Cornwall to provide our teams with expert training in a number of Agile processes.
The main focus of the training was an introduction to “Mob Programming”. It is a relatively new concept where a whole team will gather to analyse a piece of code displayed on a projector, thinking aloud and expressing their ideas on how to improve or solve any problems.
How does it work?
Describing this process as a “collective brain”, Nancy explained that while one person (the “driver”) is sat at the computer, they must only type what the “navigator” sat beside tells them. It is the navigator’s job to listen to the ideas aired by the rest of the room, and come to a conclusion that they can pass clearly on to the driver.
“I found this a really useful exercise and a great opportunity to learn from others and their personal experiences. I also felt much more confident and able to think freely; if there was something I didn’t understand, it was okay to stop and listen to other peoples’ ideas without feeling like I was letting the other person do all the work.” – Lucy, Software Developer
Although there are many benefits to Pair Programming, it can sometimes feel a little too intimate, and some people may feel uncomfortable expressing their thoughts in a one-to-one situation for fear of judgement. With Mob Programming, everyone in the room is communicating their ideas and insights, so there is less pressure on the individual to always come up with a final solution.
Problems are solved so much quicker than in Pair Programming, due to having a larger pool of knowledge to draw solutions from. Therefore one of the main benefits of this process is its ability to become an educational resource.
“Mobbing is a powerful tool for solving complex problems and learning as a group means everyone is “brought up” faster. We are intending to have a “Mob Room” where people can jump in and ‘mob’ where necessary to quickly overcome obstacles and thus maximize their velocity.”– Matthew, Team Leader
Built-in quality assurance
Not only is it a great way to train and teach, it’s also an excellent quality assurance method for the code at hand. With multiple sets of eyes, the risk of potential errors is significantly reduced.
Nancy also discussed that by involving everyone in the coding process, the team will become fully “aligned”. This means that everyone will know the code inside out, reducing operational risk if someone leaves the team and also ensuring each member is coding in a consistent way.
While we thoroughly enjoyed learning about this new process with Nancy, and have plans in the future to implement it for training purposes and in particularly difficult projects. We will need to try it out more to better understand the value of this approach and when it is and isn’t suitable.
We believe there is still a lot to learn from making your own mistakes, and Mob Programming doesn’t particularly allow for this type of learning. As well as this, having the dynamic of peoples’ different experiences is a huge part of why this exercise works so well. If we didn’t go off in different directions and explore separate areas occasionally, we would each have less unique experiences to offer the group.
A Lean-Agile approach to software development
Want to find out more about how we develop embedded software for our clients? Head on over to our processes pages and see how we use a range of tools and processes to write quality code.