Last week we were lucky enough to attend the Agile On The Beach 2018 conference in Falmouth, UK. On day 2 of this event keynote speaker Woody Zuill presented a review of Mob Programming and in his words explained “I can’t tell you what to do and I shouldn’t, it would be presumptive of me to think that anything I say will be in anyway important to you. I can’t tell you what to do, I can’t tell you how to do it, or whether or not you should do it. All I can do is share the things I have done, and if that gives you hope then that is just wonderful to me”
Having implemented elements of Mob Programming before, we felt an affinity for the examples Woody gave during his presentation. We are compelled to experiment further with this and will share our results and experiences in later posts.
What is Mob Programming?
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. With Mob Programming the collaboration is extended to everyone on the team, while still using a single computer for writing the code and inputting it into the code base. (Woody Zuill, 2014)
This approach is based on the principles of lean manufacturing, lean software development, and even medical teams working in a surgical theatre.
In addition to software coding, a mob programming team works together to do almost all the work a typical software development team tackles, such as defining user stories or requirements, designing, testing, deploying software, and working with the customer and business experts. Work is handled in working meetings or workshops, held in the same working space that coding work is done. All the people involved in creating the software are considered to be team members, including the product owner, customer and business experts. If anyone needs space or quiet time, then they can move away into a private space for as long as needed, as long as they come back to work with the team when they feel able to.
Why Mob Programming Can (and Does) Work
As you can see below, Mob Programming aligns to the Agile Manifesto:
- Individuals and interactions over processes and tools: with one pilot/driver operating the computer used to build the feature there is no need for any system like JIRA, VSTS, Trello to manage team interactions. However, if the team wants to use one, this is OK. In Mob Programming the team gather around the pilot/driver and work with them, changing over roles for jobs as needed.
- Working software over comprehensive documentation: the aim of the mob programming setup is to deliver a feature of working software as quickly as possible. Whiteboards and flip-charts in the working space facilitate quick discussions, decision making and sketching of ideas/schemas.
- Customer collaboration over contract negotiation: with the team fully co-located for the duration of the story or task being worked on, they remain fully focused and determined to complete it as quickly as possible. The team includes any business users or stakeholders required to get the job done.
- Responding to change over following a plan: at the start of a Mob Programming day, the team will agree how to start delivery of the task, but no further planning is done. With close communication the team can expect changes required to meet customer needs as they arise.
After Woody Zuill’s keynote speech we overheard some people saying that Mob Programming can’t work. Here are some of the reasons we heard, along with our thoughts and observations.
- We use outsourced development teams, so we can’t bring the team together easily.
- Sure, this won’t be easy but with video conferencing and online team room tools this is entirely possible and not a blocker, if facilitated and supported well.
- Not all team members can be 100% focused on the task being worked on / want to work on their own.
- This is expected and acceptable in Mob Programming. We all need occasional space and time to work/concentrate, or to attend a call/meeting. Just come back to the Mob Programming team as soon as you can!
- It will make team and resource planning crazy!
- At first glance it does seem like that. However, after 1-2 weeks you will know how much work this team can deliver. So, it should be easy to perform resource planning, and you’ll maybe find that more work can be delivered, as the team is more effective.
- I could never sell it to my management team