The best development teams that I know not only sit together but face each other so that they can see each other and hear each other throughout the day. This is in direct contrast to most office spaces where individual team members have their own offices so they can work in quiet without being distracted. This kind of isolation turns out to be a big problem on teams that require high bandwidth communications.
In the old days — a few decades ago — office workers aspired to have their own office so they could work in solitude without being disturbed. This is how it was when I was a contractor at IBM in the 1990s. I shared an office with another developer who wasn’t on my team. We were put together not so that we could work together but rather because there weren’t enough offices to go around.
Later that year, our team grew larger and I was moved to a big common room that we contractors called the bullpen. Desks were smashed up against each other and there was no privacy. My manager apologized to us about the cramped quarters but I loved it — and my productivity skyrocketed.
When a team sits together and can see and hear each other throughout the day, learning can be amplified and spread across the team. This can be further supported if team members are working in frequently rotated pairs. This kind of configuration helps rapidly propagate knowledge across the team and significantly boost productivity.
Earlier in the year, I had the pleasure of visiting Menlo Innovations in Ann Arbor, Michigan. They took over the bottom floor of a parking garage and turned it into a giant office space. In one corner, they set up a bunch of card tables where six pairs of developers can work together on six different stories. Being in close proximity, the team stays in sync with each other and can quickly resolve issues and answer questions. At Menlo, everyone sits together — even their CEO, Rich Sheridan. They have a few conference rooms used for client meetings that would otherwise be a distraction to the team, but aside from that and restrooms, nearly everything else is common space.
I’m a big believer in pair programming for many reasons that I’ve blogged about in the past. What really impressed me about Menlo’s set up was how easy it was for someone in a pair to look up and ask a question of someone in a different pair. This allowed information to flow not just within a pair but across pairs as well. And when it comes time for swarming or mobbing, the whole team can be gathered in no time at all.
I used to want an office of my own but now I find it far more exciting and interesting to sit with the team.