It should come as no surprise that environment has a major impact on the productivity of development teams. We experienced this firsthand when we moved offices back in January. As part of defining the new space we provided separate rooms for each scrum team instead of having all of our engineers in cubes. Now, after six months in the new digs, the large consensus is that it was a positive change.
One area that changed dramatically was team cohesion. When teams are given physical control over their environment they each develop their own personality. This can pose some challenges when reforming teams between releases but the benefits far outweigh the costs. Everyone in the room is focused on a single goal. When someone drops by they’re no longer interrupting an individual, they’re interrupting the entire team. This has the effect of reducing unnecessary distractions as well as having everyone on the team participate in solutions.
In team rooms every conversation matters. There’s far less need for separate meeting rooms. Daily standup is held in the team’s room without worry of distracting others and if there's a meeting it's to coordinate between teams. This is quite different from when we were in cubicles where many conversations didn’t contribute to individual or team productivity. Developers always found a way to cope (headphones, finding a room to squat in) and conversations were usually kept quiet or taken to other rooms, but all of the solutions tended to reduce overall communication.
It’s not all perfect. With team rooms you get less of the company-wide feedback. When we were in cubes you would hear when sales had a great success.It was trumpeted across the room and everyone was involved. The feedback was immediate when someone was dealing with a rough problem or the build was failing. We’ve had to be much more proactive about communication across the company through email, forums, blog posts and even clubs.
Another challenge has been in managing the physical environment in a building that wasn’t designed for small rooms. Balancing room temperatures and running out of room for a growing team are a few of the things we need to keep working to improve. Finally, there is a necessary formation of code boundaries between teams that parallel the physical boundaries. This can result in a stronger and more modular architecture, but if it’s not already in place it can become an unexpected distraction.
There are definitely trade-offs between the two styles of team environments. Cubicles help enforce company values and culture but it comes at the expense of team cohesion and productivity. The challenges introduced by separate rooms range from managing the physical environment to dealing with decreased communication between teams. However, every developer I've spoken with is more satisfied with their team, happier with their environment and more productive. For fostering the teamwork needed to battle hard problems each and every day the move to separate team rooms was a definitive win.