When mobbing, your physical environment matters. Having a space that is conducive for mob programming plays a major role in the practice becoming entrenched in a team.
Humans are lazy, you want minimal effort required to assemble a mob.
Starting out…
When starting out what sort of physical environment does a team need for mob programming? I’ve seen teams get away with little, if any additional work space and no new hardware. This is easiest achieved by booking a meeting room.
Having a insulated room away from inquisitive outsiders gives the team a safe place to try the experiment of mob programming. In addition, meeting rooms are normally already equipped with a projector or large screen - a component I consider essential for mob programming to happen.
When choosing a room keep in mind the distance it is from the teams normal work area - the further away, the more effort required for the mob to assemble (remember, humans are lazy).
It’s hard being a nomad mob
Starting with a meeting room works great initially, with time expect to have situations where you can not book the same meeting room day in and day out. If you are not careful your mob will soon become a nomad mob wandering from room to room with no real home - you want to avoid this! The overhead of moving people regularly and getting set up kills momentum and disrupts flow resulting in a poor experience or the mob disassembling.
Instead, as soon as the team has reached the point where they want to move mob programming from an experiment to a more permanent practice, you want to be having discussions with the powers that be on adjusting the teams normal work area to make it conducive for mob programming - I call this stage settling down a mob.
Settling down…
When settling down a mob there are a few things you should consider regarding the physical environment. You want to make sure you have enough space in your team area dedicated to mob programming. Typically, this means having more space than you would need with a traditional desk / cubicle layout. A good rule of thumb is to look at how much space you would need to comfortably seat your mob in a meeting room - you will need roughly the same amount of additional space in your work area for the mob station.
Mob station layout
In addition to physical space, it helps to have a mob station set up that is ready to use at any time. I have found the following equipment was needed to have a comfortable mob programming station to work at.
- Large Screen TV (at least 50”)
- Separate smaller screen for mob timer (19” - 21”)
- Whiteboard that is accessible for writing and brainstorming
- Comfortable area where people can sit or stand side-by-side without feeling cramped
- Adjustable sitting / standing table with multi port USB hub
- Wireless mouse
- Assortment of keyboards (wireless if possible, but whatever they are comfortable with)
- Mini pc used for remoting in to the developer machine
Rent or borrow equipment first
Now, before you go and buy these items I would recommend renting or borrowing them first. Getting the right setup from day one is hard. You will find there will be tweaks you will want to make - every mob has different needs - equipment you thought you needed may not get used.
Having equipment lying around and not being used after you got your manager to go out on a limb for you to buy the stuff isn’t the wisest thing to do. Instead, try be in a position where if you want to change equipment after a week or two, you can. Try before you buy reduces the reputational risk.
A typical mob station layout
The exact layout of the mobbing station is very reliant on the size of the mob you want to cater for. My ideal mob size is 4 to 5 people so I like mobbing stations that can handle this number of people comfortably.
Assuming your mob is about the same size, the table will usually be 2 to 3 meters away from the large screen, with the smaller “timer” screen off to the side where it is clearly visible to the mob. The whiteboard, facing the mob, is within reach so that notes can be made frequently on the board.
The typist typically positions themself center of the large screen. The rest of the mob sits where they can comfortably see what’s going on the screen.
What about the costs?
Having an ideal mobbing environment is going to cost some money. This cost is tiny compared to the cost of software developers. If you have already proven that the practice of mob programming is useful to your team, and something they will regularly use, having the discussion on equipment costs becomes a lot easier.
Sometimes you will not be able to get the budget to setup an ideal mob station - don’t let that stop you from the practice. The first mobbing station I setup cost the business nothing. I brought my 40” TV from home, we found a spare desk, made some space in our team area and we were good to go. It wasn’t ideal, but it worked. Once we had proven that the practice was valuable we managed to get better equipment.
Manage the noise
Mob stations are noisier than traditional work areas. People are interacting, they are talking about code, about different approaches, about how to best solve the problem. When a mob begins to really work it gets louder. When this happens you can expect one of two things to happen with the people not in the mob that sit near the mob. They will either complain, or they will get louder.
If someone is complaining about the noise from a mob - the mob has missed out on a core value of mob programming, consideration. Pre-emptively chatting to non-mobbers about potential noise problems before they become problems can be the difference between complaints coming to you vs going above you. You want them to come to you first.
For the mob, being in a work environment where there is a lot of background noise can make it hard for the mob to communicate effectively - a key benefit of having a mob in the first place. Ultimately you want to create an environment where you are upping the mob signal and reducing the background noise.
Up the mob signal, reduce the background noise
Unfortunately when noise becomes an issue you don’t have the convenience that solo developers have of putting on headphones, but there are other ways. Having portable sound barriers accessible to the mob is an easy way to adjust an existing work space so that a mob does not have a major impact on non-mobbers and vice versa. The main benefit of portable sound barriers is that you can use your existing work area for mob programming without going through the hassles of relocation. An alternative is for the team to relocate to a dedicated team room.
Deciding on what approach is best for your team is up to you and your organization. I would remind you that humans are lazy, you want minimal effort required to assemble a mob - having a mob station where the team works every day is key to the practice becoming entrenched in the team.