Most programmers – like most American office workers – spend their workdays in cubicles. Unless you have ascended the ranked tiers of project, program, team, and department management to a sufficiently lofty level to be appointed an office of your own, you probably work in a cube yourself. Unless you are among the growing group of knowledge workers now toiling away from their homes, of course – but I digress.
Nobody likes working in a cubicle, of course. It's demeaning. It is a visible symbol of your unimportance to your employer. The important employees, the ones whose work is so valuable it can't be interrupted, work in enclosed places. In corporate culture, enclosed offices are like shrines. You must be a high priest to merit one.
It's no wonder employers erect cubicles for their workers. They are inexpensive to buy, install, and reconfigure. The U.S. tax code allows corporations to depreciate temporary offices much faster than permanent ones (seven years versus 49.5 years), giving employers a further financial incentive to rely upon them. And everyone else is putting their employees in cubes – so it must be the right thing to do.
But it isn't the right thing to do. It's dead wrong.
The hard figures allowing me to make such a definitive statement are not secret. They were published in 1987 in Peopleware: Productive Projects and Teams by Tom DeMarco and Timothy Lister.
In their study of hundreds of programming teams, DeMarco and Lister found that an enclosed, interruption-free environment was associated with a three-fold increase in developer productivity. This means that a company willing to make a one-time investment in enclosed offices can get by with 1/3 as many developers. Or accomplish three times as much work with the programmers it has. The only company I know that puts all of its developers in enclosed offices is Microsoft – and I'm not even sure it still does.
Obviously, employers are being penny-wise and pound-foolish by sticking with cubicles.
I know I'm taking a contrarian position in quoting Peopleware. The lastest fad in developer workspaces is the extreme opposite – great open spaces with no dividers at all, so the whole team can look into each other's faces all day long. I've read the justification for such workspaces, and they sound great...but there's no data to demonstrate that the workspaces help team members achieve higher levels of productivity. All of the hard evidence is in Peopleware. You can read the relevant parts here (PDF). And a great, fact-packed rant by my old friend Jack Gannsle (hi Jack!) here.
In a future post, I'll tell you exactly why cubicles don't work for programmers.
Web recommendation: Did the title of this post ring a bell with you? It should have – it's a reference to one of the seminal documents of our field: a letter to the editor of the Communications of the ACM written by Turing Award winner Edsger W. Dijkstra in March 1968. The letter – “Go To Statement Considered Harmful” (PDF) – is remembered as the founding document of structured programming. It still reads well today, though parts are dense (there's a good dissection of the letter and its implications here). J.D. says check it out.
J.D. Hildebrand has written hundreds of articles for dozens of publications and online communities dedicated to software development. He recently relocated to a small town outside Belgrade – stop by if your travels take you through Serbia.