Benji Weber & Alex Wilson are software developers at Unruly. Alex is part of the product development team dealing with scaling and continuous development on a daily basis. Benji leads an extreme programming team who build primarily with Java. You can catch up with Alex and Benji on Twitter.
Unruly use small extreme programming teams with lots of responsibilities across the business.
Todays talk will be through the lens of the book ‘The five dysfunctions of a team’ by Patrick Lencioni. This allows the team to ‘turn up’ both the good and band.
Mob programming is:
- Whole team
- Same problem
- Same time
- Same workstation
They started by working as a team on one problem on a Friday. The team got allot of value from this exercise and decided to allocation more and more days to the methodology.
They use a similar technique to pomodoro to ensure that all members are engaged at all time, even creating a web app to keep track of turns. Its been so successful that the marketing team has started to adopt the practice.
The five dysfunctions of a team:
Mob programming creates a good sense of team trust due to the closeness that the team works in. It encourages members to let go of control as they are not often at the keyboard to drive the code. This does require a high level of trust. To much trust can lead to overconfidence in the abilities of the team, sometimes leading to recklessness.
The ideal number for a mob depends on how long a person has to wait before getting back to the keyboard. They suggest this is half an hour, meaning a team of three to four. Its also good to have an odd number to make sure that disagreements and decisions can be settled by vote. It hard to not slip into bad practices, such as group think.
They have found that bringing in external member to the team have helped to iron out bad or ineffective practices.
Accountability is also important. Blame is difficult in a mob programming situation as everyone is responsible to all decisions. Many teams synchronise through stand ups, which are sometimes not too interesting. As the team works extremely closely there is not need to catch up with what was completed yesterday.
Goals are more important the egos.
The mob is unstoppable! When members are not having an ideal day or period of time they can peel off from the team.
Mobs are a great way to try out ideas and producing MVPs and prototypes for user testing. If successful more teams or members ban be brought into the project.