"The cynic knows the price of everything and the value of nothing." - Oscar WildeIn 1987, Tom DeMarco and Timothy Lister published the first edition of "Peopleware: Productive Projects and Teams".
The book discusses many reasons software projects fail, and provides numerous recommendations for making projects succeed.
Part II of the book discusses the effect a bad office environment has on productivity, and recommends (among other suggestions) private offices as a significant productivity enhancer. The book provides quantitative evidence to substantiate the recommendation. And the book eviscerates the productivity claims of cubicleware vendors, which are shown to have no substantiation (the book calls those claims "proof by repeated assertion").
Fittingly, the book is out of print.
If anything, in the decades since the book was published, things have gotten worse (other than getting rid of P.A. systems). We are in the grip of an industry-wide pathology that produces expensive, flow-disrupting buildings.
How did we get here?
A lot of it has a lot to do with the counting of beans.
It is easy for a bean counter to count tangible things, like square feet.
It is not easy for a bean counter to count intangible things, like lost productivity due to a noisy work environment yanking programmers out of flow.
Suppose at some point a bean counter notices that their company spends more for facilities than "comparable" companies spend. This seems to the bean counter like fiduciary irresponsibility, so the bean counter launches an investigation.
Because the bean counter cannot count intangibles, the bean counter does a poor job of counting beans, and works up an Excel spreadsheet that shows how, if they get rid of walls and doors, and reduce the space each programmer gets, and eliminate bookshelves, and generally pack programmers into "pods" where they're practically sitting in each other's laps, the company will save a bundle.
On paper at least.
Intrigued by the putative savings to be had, the exec staff--sitting in their capacious, private, quiet offices--decides to engage the services of a cubicleware vendor to "work up" some designs for how the building could look. (Note that open cubicles are by this point a foregone conclusion, and that by involving a cubicleware vendor as the consultant, we have an instance of bid rigging so egregious that if this was a government contract somebody would go to jail.)
The designs are very slick. Spiffy in color, appealing in the abstract, the revamped building will "facilitate collaboration" (and who would question the need for that?), foster "inter-departmental serendipity" (which also sounds desirable, whatever that is), and so forth.
Nobody asks the programmers for their input. Or they do ask, but when the programmers say they want private offices so they can focus on work, this is dismissed as "impractical", even though drywall is cheaper than cubicleware.
The building is revamped, the programmers move into it, and are pissed off because they feel like they're regarded as interchangeable, revenue-producing, chunks of meat. Morale drops and productivity goes into a tailspin.
Adding insult to injury, the company newsletter makes a big deal about how the building, in a triumph of form over function, won an AIA award for "design excellence".
Those programmers who stick around find ways to circumvent the limitations of the building. For example, they take refuge in the server room (lots of white noise), or work at home.
But these strategies ultimately backfire, because the bean counter's minions notice that a lot of cubicles--the ones occupied by programmers hiding in the server room or working at home--are empty, and conclude that the building was in fact overprovisioned--that there could have been smaller cubicles, and fewer of them. Inevitably, the bean counter concludes that cubicles shouldn't even be allocated to individual programmers, but instead should come from a pool, first-come/first-served.
Because programmers are now sharing keyboards and mice, they share flu germs, and occupancy rates go down again. As does productivity.
To make up for the loss of productivity, the company needs to hire more programmers. But where to put them? Clearly cubicles take up too much room. Programmers should just work on long tables, like medieval craftsmen.
Meanwhile, the aggressive reduction in facilities costs is noticed by other companies' bean counters, who don't want to look like spendthrifts based on the latest "comparables".
And so continues the industry-wide death spiral.
Another reason we have open cubicles is due to differences between how programmers work and how the execs making the decisions work.
Execs are people people. They like to meet new people. They like to shake hands. They like conversation. They're extroverts.
Cubicleware vendors are also people people. They're in sales, so of course they're extroverts.
Programmers are, well, if you're a programmer you know what we are. It's not that we're necessarily ugly, or antisocial, but we're a lot more likely to send an IM to somebody 10 feet away than to get up and walk over there to talk. We like to get into flow and stay there. We like to solve problems.
When people people design a work environment, they design it how they like to work. Which involves a lot of face-to-face interaction with other people, long phone conversations, open airy spaces, etc. It's almost the exact opposite of the conditions that foster flow.
A few companies ago, Lisa was in a cube farm at a Fortune 50 company, concentrating, when some ninny of a people person walked into the area and, apparently discomfited by the unfamiliar sound of work getting done, said: "There isn't enough visitin' going on".
Visitin'.
Honestly?
Another reason we have open cubicles is that private offices are seen as a "perk". But they're not a perk, they're a software-development tool, and an effective one. Programmers don't care about status or prestige. They care about being effective. And they need good tools to do that.
Unfortunately, many execs do care about status and prestige, and they see private offices as a perk. It's a problem of semiotics.
Another reason we have open cubicles--and this is a self-inflicted wound--is that some of the newer methodologies emphasize collaboration, pair programming, etc.
But one person's collaboration is another person's pointless interruption.
When people are yakking around a programmer who's trying to get into flow or stay in flow, that constitutes involuntary collaboration. It's like being on an airplane before they banned smoking--there was no way to escape.
With private offices, programmers can always opt into collaboration by opening their door, sitting down in a communal work area, etc.
Without private offices, programmers can't opt out of collaboration. Which is a shame, because at some point, somebody, somehow, has to actually write some code.
But, you say, the programmer can always put on headphones. Yes, they can, except that page 78 of the second edition of Peopleware explains why that's a bad idea (a Cornell study showing that creativity is hampered by listening to music while programming).
The saddest part of all of this is that if companies would focus on maximizing programmer productivity instead of on minimizing facilities costs, they could accomplish a lot more work with far fewer programmers, which would save so much money in salaries it would dwarf the incremental cost of private offices.
Penny-wise, pound foolish.
Not all companies make this mistake. For example, when Adobe was building its headquarters in San Jose, they asked the programmers what they wanted, and then did something crazy: they listened. (Guess what the programmers wanted.)
Sometimes I get the argument that young programmers prefer open cubicles and more collaboration, but how would young programmers know? Did a lot of them previously work in large, quiet, private offices? Doubtful--cubiclitis has been infecting the industry since the 1960s, which is longer than young programmers have been working (indeed, longer than many of them have been alive).
Claiming that young programmers prefer it this way implies they ever had a choice. But they didn't have a choice, so there's no control group, and this is just more self-serving nonsense.
I'll close with a visit a few companies ago to one of the largest cubicleware vendors in Silicon Valley. We went there because we were opening up a development center, and needed furniture. The vendor took us on a tour of their facility, which doubled as a showroom and their headquarters. As the tour lady stood there telling us about the merits of this or that piece of furniture, I noticed some employees of the vendor in the background, in the accounting department.
They were glaring at us, because we were making too much noise.
Some interesting articles about or related to this topic:
- http://www.bizjournals.com/buffalo/stories/2001/07/16/focus2.html
- http://www.bosti.com/public.htm
- http://www.joelonsoftware.com/articles/DevelopmentAbstraction.html
- http://www.joelonsoftware.com/articles/fog0000000050.html
- http://www.joelonsoftware.com/articles/BionicOffice.html
- http://en.wikipedia.org/wiki/Open_plan#Which_is_best.2C_open-plan_or_otherwise.3F
Update: Look how far we have fallen--a friend sent: "In the '60's my father took me through his insurance company offices after hours. Most of the desks were in open bays. Then we came to the computer area and he pointed out the leased IBM 360/30. Nearby there were several special rooms along the wall with doors and glass walls. I asked why some of the desks were sealed off like that and he told me that the programmers needed quiet places to work without interruption because it was so important that their programs be correct. Your article brought back that memory."
Update: http://www.nytimes.com/2012/05/20/science/when-buzz-at-your-cubicle-is-too-loud-for-work.html
I think young programmers like the open collaborative spaces because in college that's all they had. You're right in saying that we haven't worked in offices before. But many of us know that collaboration can lead to greater productivity, especially in academic environments.
ReplyDeleteNo, young programmers like the open collab environment because they can openly ask questions and learn quicker and easier.
ReplyDeleteYou can still get PeopleWare from Amazon in the UK. Though the wait is long it's well worth it. http://www.amazon.co.uk/Peopleware-Productive-Projects-Teams-2nd/dp/0932633439/ref=sr_1_1?ie=UTF8&s=books&qid=1275553301&sr=8-1
ReplyDeleteI dream of a cubicle. Our retarded beancounter prefers banks of twelve desks (about ten of them) in an open office.
I work in an open-plan office. It's all right as long as everyone has the same tacit agreement not to talk to each other unless it's 1) really important or 2) lunchtime. People IM each other across the room all the time.
ReplyDeleteI'm a young developer and my preference for an open collaborative environment has nothing to do with University.
ReplyDeleteThe University environment is not collaborative. Open programming areas at University were generally loud, and full of people who had no respect for the noise-level or your productivity. I was regularly interrupted by loud conversations or disagreements, kids playing video games, or passers-by with pizza (and beer) in hand. The environment is NOT a productivity enhancer.
On the other hand, when I started at the company I'm with now, we had closed-in "mini-office" cubicles with walls nearly touching the ceilings. The environment was very quiet. It stifled collaboration.
I've since moved, quite voluntarily, to an open collaborative environment.
The key is "collaborative". Everyone in the open area should be collaborating.
Right on. I just pondered the thought:
ReplyDeletehttp://logansrings.blogspot.com/2010/06/interruptions.html
This comment has been removed by the author.
ReplyDeleteThis is why i wear moulded earplugs at work sometimes when it gets noisy. They fit like a glove and drop 15 - 30 db of noise.
ReplyDeleteI totally agree.
ReplyDeleteEarplugs are uncomfortable at best, as are headphones when you wear glasses.
More interrupts = less productivity. Less productivity = less profits in more hours.
To learn php,html,javascript,ajax,mysql,jquery with advanced concepts, you can visit http://advancedphptutorial.blogspot.com
ReplyDeleteCount me as another vote for offices with walls. It's very difficult to get into and stay in the flow state when you're surrounded by yammering bodies.
ReplyDeleteI prefer open cubicles too, maybe not as open as sitting next to each other (like school labs) but what we have in bldg 4 seems decent.
ReplyDelete