Why Joel Spolsky's Crazy Schemes Never Paid Off
grid7.com
grid7.com
In the book, they don't necessarily argue for an individual private office for every programmer, but argue that a quality work environment has enormous benefits. Interruptions cause huge problems, and random noise can be distracting as well. A door that shuts is one of the most important parts of being able to reduce interruptions and random noise.
A personal office isn't mandatory in order to make progress along those lines. The book actually suggests that you set aside a space for a small group of people (1-4), with furniture that can be easily rearranged.
edit: Just a another comment on the article...
BDUF Big Design Up Front: I think it might be a mistake to assume Joel's arguments in favor of software specifications imply BDUF. A specification is a fluid thing. It helps ease communication between all parties throughout the development process, and lets you save time figuring out some kinds of problems.
Granted, I don't currently have an office job, but given that a phone call or knock on my door will rip me straight out of the flow, I can't imagine even being able to get in it in the first place in a room with half a dozen other people all madly typing away, making noises, and moving around in my peripheral vision.
I really like both. When doing work that is highly collaborative it's nice to have everyone in spitting distance. When I have have no need for discussion with others I love my solitary hackathons. The most productive times I've had were moving back and forth between the two environments freely.
Cubicles are neither private, nor collaborative. Cubicles create social barriers between you and your neighbors, yet do little to block the flow of noise in the environment. There's no real privacy, yet no sense that collaboration is encouraged.
After all those schemes he tried that were mentioned in the article, he says one of the biggest reasons for his companies' success has been his blog.