Tuesday, July 20, 2010

The rise of the cattle office

When I blogged about the office environment, I contrasted private offices with cubicles. Whatever their relative advantages, the latter suffered from noise, distraction and lack of privacy. Not long afterward, a colleague pointed me to Martin Fowler's article on team rooms that took these disadvantages and multiplied them:

Guess what this made me think of?


(Photo credit)

Why do we do this to ourselves? Look at that picture. People are practically on top of each other. You can barely stretch out without getting your elbow in someone's lunch or knocking over somebody's coffee. And speaking of lunch, if you are seated between someone having a tuna sandwich and another having curry, the resulting matter-antimatter reaction in your stomach will be rather interesting. Come flu season, expect the whole room to call in sick as soon as somebody sneezes. There isn't room for a second monitor, let alone any personal items like photos or books.

To be fair to team rooms, you can find more (and less) pleasant variations if you follow the links in that article. But I find this picture significant because Martin Fowler chose to use it as his lead picture for the article, meaning he finds it an appropriate representation of the team room concept that he advocates. I think it suggests a problematic mindset behind this trend towards cattle offices. The first issue I have is with the lead sentence Fowler uses to justify this arrangement:

"Software development is an intense exercise in collaboration"

Collaboration. It is the same justification originally used to get workers out of offices and into cubicles. And it is equally unsupported by data. I can't help but notice that there is no talk about flow, focus or concentration. Team rooms are all about "collaboration", not about getting work done. There is no evidence that this environment actually enhances productivity. Contrast this with Peopleware by DeMarco and Lister, which  quantitatively demonstrated the correlation between quiet, privacy, office space and productivity. I think of Fowler as the software industry's Frederick Taylor, but without the science. Still, such opinions will no doubt be attractive because they give a hip excuse to pack as many warm bodies as possible into a given square footage of office space. You can attach fancy names to spending the entire workday in a meeting, but don't mistake this for productivity. On the contrary, noisy open-plan offices reduce productivity by 66%.

Productivity aside, my second and primary problem with this picture is that it seems to demonstrate a disregard for the human needs of the workers. We know the buzzword adjectives used for the methodology of the day: collaborative, productive, extreme, agile etc. One adjective I never hear is "humane". The workplace is where we are going to spend a large part of our lives. Shouldn't it at least be somewhat livable? There should be storage and space for personal belongings (like books). There should be personal space, privacy, opportunity to concentrate and even to relax. Being humane is not just to serve some altruistic warm fuzzy ideal. Rather, a humane work environment ensures that those valuable people -- not interchangeable slabs of beef -- will stay and sustain productive work performance.

With apologies to Fred Brooks, there is no silver bullet. You can't force artificially high levels of performance on a sustainable basis. Maybe you have heard of Tracy Kidder's classic "Soul of a New Machine", which chronicled Data General's triumphant Eagle Project. The Eagle Project was a tremendous achievement under  pressure, but the romance was spoilt for me when Peopleware pointed out that the entire development team quit when the project completed. And it's not just the hero projects: under the day-to-day stress that some methodologies impose, people do burn out and quit.

My take is that developers should be trusted to collaborate at the level they need. Imposing collaboration by herding workers into these cattle offices shows a lack respect of our own initiative. Alternatively, you can achieve sustainable productivity gains by removing obstacles to productivity: noise, interruptions, distraction, lack of space etc. Is it merely a happy coincidence that such productivity measures also result in a more humane work environment?


  1. Thanks for this wonderful article! I strongly agree with you

  2. It's the equivalent of a third world sweat shop where attempt is being made to equate software creation to soldering components into a printed circuit board, i.e., assembling gadgets like Apple's iPhone. Rote activities with low mental skills applied. Guess some companies are hoping the same slave labor conditions can be devised for the software side.

  3. 100% right you are ! Seems like XP is turning into XB (eXtreme Bullshit)

  4. I think there is a balance that can be achieved. Having open and collaborative office space is not bad per se, but it can quickly disintegrate into a complete nightmare when some folks talk in groups while others don't necessarily need to participate in a given conversation. That leads to lost productivity.

  5. @Robert: It's not. XP is way more than just how the team sits.

    It's important to find a good balance which makes everybody happy. Usually, you have different types of personalities in your office: some want to talk and pair programm a lot, others want it completly silent. Making those groups (and everybody in between) happy is the key.

    I agree that the picture Maritn Fowler chose isn't a good one and I can understand die arguments: everybody need some space to feel good and be productive. But everybody is different and there is no universal rule how to build an office.

  6. You can't force people to cooperate by ramming them in as close as possible to save on office rent. If you put animals in a confined space then you will get aggressive behavior. People are just the same.

  7. Why do we do this to ourselves?

    Are you suggesting that we have a choice? Maybe you're in a different position, but other than quitting, I have no choice in where I am seated. I have complained to management about the situation, to no avail.

    At my company we are "agile" but not XP, BTW. You can speculate about why developers are placed in open spaces. I suspect it has more to do with the cost of cubicles vs offices with walls, and less to do with productivity.

    I used to think that we were placed in the open so that we couldn't engage in time-wasting activities (solitaire, anyone?) without being caught. You might think that the lack of privacy in cubicle-land would lead to at least a sham of productive behavior, but in fact people continue to conduct personal phone conversations right smack in the middle of everyone; not only aren't they getting work done, they're also distracting others.

  8. Chris,

    Thanks for commenting on my article about this at www.hiringjuice.com.

    I do agree that the general consensus out there is that the "team room" or "lab" approach needs to be off-set with a place to break away and enjoy some peace and quiet.

    What about the idea of this team room or lab surrounded by cubicles? You still have the private space to code, as well as the team space to collaborate. If everyone has a laptop they could bring to the collaborative space, and then plug that laptop into dual monitors in the cube it would incentivize folks to do the hardcore coding work in peace, while talking about user reqs' etc in the lab.

    Thoughts on this?

  9. @fse: One of my favorite Martin Fowler quotes is "If you can't change your company, change your company."