A place to discuss Joel on Software. Now closed.
This community works best when people use their real names. Please register for a free account.
Joel on Software
Business of Software
Design of Software (CLOSED)
.NET Questions (CLOSED)
Fog Creek Copilot
The Old Forum
Albert D. Kallal
This post is a summary of and collection of links to information about the quality of workspace provided to software developers. Perhaps it can be useful to other software developers in a position to influence managers or may someday be in a position to make decisions about workspace design themselves.
I have acquired an interest in workspace quality after spending many years in software development and having worked in a variety of workspaces. When I started out I didn't give much thought to workspace quality. It was just there. Something that came with the job and there wasn't much need or possibility of doing anything about it. And I was quite fortunate in that my first employer provided a very good work envirionment.
Over the years with several changes of employer and different assignments and various office moves for each employer, I came to realize that the quality of the workspace can have quite an effect on productivity as well as job satisfaction. In fact, one wonders why anyone is concerned with implementing software development processes when most developers are having a hard time concentrating on any task for more than ten minutes between ringing telephones in the next cubicle, howling HVAC systems or any of the other myriad distractions that prevent one from just sitting down and getting a 2-3 hour task completed.
Here is my description of a good workspace for software development: A quiet private office with a door and a clear window for each individual developer. For team projects the offices should be arranged together with convenient common areas.
I happened to find the Fog Creek and JoS web sites a few years ago when doing a web search trying to find employers that provided good workspace. As anyone who has worked in the field for long knows, the employers that provide good workspace are extremely rare. The people who are in charge of facilities are usually concerned with costs, not usefulness.
For anyone who hasn't read about the Fog Creek work space, here are a couple of links:
The classic book, as many readers here know, on workspace quality as well as management practices for software developers is DeMarco and Lister's book "Peopleware", http://www.dorsethouse.com/books/pw.html Many readers of JoS are familiar with it. If you haven't read it, buy a copy and do so. A quote: "As long as workers are crowded into noisy, sterile, disruptive space, it's not worth improving anything but the workspace."
Long before companies started stuffing software developers in to cubicles and Dilbert became popular, some people were thinking about what would make good work space. At least one organization came up some good ideas. Unfortunately, the lessons they learned have been mostly ignored for over 25 years.
That classic paper on workspace design for software developers is the report on the IBM Santa Teresa labs. This paper was published in the IBM Systems Journal in 1978. IBM has recently scanned this article and made it available online in a PDF file. The URL for the download page is
Select the little "PDF" link to download.
This paper was written by an architect. The nature of the paper is quite remarkable. The architecture design company actually studied the work process involved in software development, interviewed developers, and even made mock ups of proposed office layouts. Their design consisted of individual offices of about 100 square feet arranged in a pattern that allowed most to have an outside wall with a window. I encourage all to read it, but remember this was written in the 1970's. Don't be put off by the discussion of storage space for punch cards on the first page. Most of the article is as relevant today as it was then.
Beyond these sources the references get rather meager. But one of better ones is not available online. This is an article in the Washington Post Business section of October 4,1999 by Maryann Haggerty titled "A Vast Exploration of Office Space". The article describes how the company SRA International spent some time and effort investigating office space alternatives from cubicles to private offices and event built some prototypes on one floor of one of their sites. Their conclusion: "the company decided private offices made financial and cultural sense." From reading the article it sounds like they replicated the Santa Teresa project experiments, at a smaller scale but coming to a similar conclusion twenty years later.
Although the full WP article isn't available, the SRA web site has a couple of related summaries. The first one: http://www.sra.com/news/index.asp?id=294 describes their plans for new office space and how they were considering cubicles. The next, later one: http://www.sra.com/news/index.asp?id=322 is a summary of the Post article where they have come to the conclusion that they should keep the private offices. There is no indication they were aware of the Santa Teresa project.
For the remainder of this post, I'll list URLs with a short description. Many of these are a few years old, thus being pre-bubble-burst. Employers do not have to go to such measures to attract employees these days.
In reading these articles take note of comments about cost. One of the arguments in favor of cubicles and open space offices is cost reduction. Some of the companies that went with private offices found that they weren't much more expensive, sometimes even less than cubicles.
SAS is one of the companies known for good office space and being a good place to work. Here is a short article about them:
MITRE asked its engineers (not just SW developers) what kind of office space they wanted. Their response was no surprise:
A consultant writes a short overview article directed at facilities planners:
A pre-bubble article about the benefits of private offices for recruitment. A quote: "...individual offices pay off in higher employee morale and productivity".
Another pre-bubble-burst article claiming "private offices making gains". An interesting quote from AOL: "The private offices, ..., also are a good recruitment tool for highly competitive jobs". The good old days...
Here is an article about a brief study of the effects of noise in the office. It is not about software developers, but interesting.
These messages should be given public exposure at every possible occasion. Noise pollution especially is a subject that has been severely lacking in attention.
Study after study points out the disastrous effects of this kind of pollution on our mental and resulting physical health, and yet no policy consequences are drawn. I firmly believe future generations will look back on our age with the same incredulity we now have for the pre-hygiene awareness of the 18th century, where dumping raw sewage out the window was considered normal, and even the most basic cleanliness was unheard of resulting in rampant infectious disease.
Just me (Sir to you)
Tuesday, September 07, 2004
"Many of these are a few years old, thus being pre-bubble-burst. Employers do not have to go to such measures to attract employees these days."
I disagree here. Qualified programmers/developers/engineers (whatever they're called in your office) are still difficult to find (as they have always been). You see complaints about it from all the companies that have reputations of hiring "the best and the brightest". Sure, there's a lot of unemployed chaff floating around, but that's largely fallout from when companies thought all they needed were warm bodies, not capable employees.
Employers _do_ have to go to such measures these days -- and it will pay off. If they have quality office space (such as Fog Creek) it will be easier to attract those quality employees. You can hire fewer, pay them more, and get better bang for your buck because your filter has a much finer mesh than all the companies who are sorting the unemployed from the unemployable.
Hiring fewer (more capable) employees also saves you money in the end by having to insure fewer people, being able to offer more square feet per employee without expanding your office, decreasing cafeteria expenses, parking expenses -- cutting down on whatever costs escalate with the number of employees. And with statistics showing top-performing programmers being ten times as effective as average-performing programmers while only being paid twice as much, how can you afford to _not_ have the highest standards?
Thanks for the post -- it was very informative, and gave me some more ammo in the quest for better office environments.
Tuesday, September 07, 2004
One more time. I corrected Joel on this before and he acknowledge the correction
All that stuff above is great and all but it does fit all programming situations. Specficially it doesn't fit game programming at all.
In corporate programming, at least in theory, a meeting is held, things are decided and designed and then programmers can go back to their desk with the design / spec in hand and they need little to no interaction to do their job. In such a case, interruptions are bad.
In games though and I'm sure a few other tasks, maybe movie effects, the programmers NEED the constant input of artists and desigenrs in order to make the best game play and or visuals. In such a case, offices DESTROY THE PRODUCT. There are exceptions, certain programming tasks might be best done by programmers in offices although I'm not sure what those tasks might be but basically, in games, there is an interactive iterative stlye of programming where and artist, designer and programmer get together and work on an effect or move etc and offices tend to push those kinds of thing to NOT happen.
As Joel talked about in his recent post about social interface design, offices in a game development environment get in the way of the neccesary interaction between team members to make the best product.
Tuesday, September 07, 2004
This article shows rearch where "War Rooms" doubled software development teams' productivity.
I agree with the above poster that offices are not always the way to go - sometimes the nature of the product means that a much more collaborative and shared workspace is best.
Still, the standard-issue cube farm is the worst of both worlds, offering neither the privacy and freedom from distractions of a real office or the collaborative flow and facilities of a "war room".
This is an interesting topic for me, because I feel divided on the issue.
On the one hand, I have to agree that getting in the Zone is essential for getting programming work done, and I like creating nice personal spaces for myself.
But on the other hand, I have never known anything but cubicles, and I think I've adjusted pretty well to them. The social atmosphere is one of my favorite aspects of my job. Even loud music (which generally happens on Fridays where I work) doesn't much distract me any more, unless I'm doing something unusually difficult or fussy. And everyone on the team is willing to shut up if someone shouts out that they need everyone to shut up today.
And there's a straight-up work benefit to cubicles too, which Gregg has already alluded to. The kind of work that I do makes me more valuable the more connected I am to the rest of my team. I actually don't spend much of my time writing long stretches of new code; I spend much more time fixing bugs, or writing small bits of new code, or non-code things like specs, interaction with QA, docs, customer contacts, etc. The product that I work on is fairly mature, meaning that our first concern is generally how new work interacts with existing features, and for that kind of problem it's great to feel like I can go chat with coworkers any time, and it's also great to overhear semi-private conversations that end up affecting me but that I wouldn't have been included in if I hadn't been eavesdropping.
Everyone probably needs a good balance: you can't isolate yourself totally from your team, but you also can't be so social as to never get anything done.
My company is very loose with us as long as we are productive, and one nice privilege is working at home up to about 20% of the time without asking. This can be a great way of carving out some quiet space when I have something big and well-defined to do. I have to invest some time in keeping parallel development environments set up at home and at work, and I have to fight the temptation to slack at home, but I'm getting better at both :) The company also has a few soundproofed phone-booth-like rooms where people can go and sit and be undisturbed. These aren't very comfy, but they work in a pinch if you've got a laptop.
The issue of distractions is a larger one than just the office environment. I also constantly struggle with the balance between scheduled work and interrupt work. I must always make progress on the scheduled work, but I can't let the interrupt stuff go too stale before addressing it. I've learned a few tricks here, including letting all interrupts fester for at least a couple of days, increasing the likelihood that the person interrupting me will figure out the issue on their own, or at least come to view me as someone that's rarely immediately helpful. :) Also good is blocking out my time - for example, setting aside mornings for scheduled work and afternoons for interrupt stuff.
Sum all this up... let's imagine I swung enough weight to convince my company to change over to offices, and let's imagine we didn't face prohibitive space or cost issues. How would my life change? I feel like I'd end up more productive at certain heads-down tasks, but less productive at other group-think tasks. I'd probably end up with RSI from being in the Zone more often. I'd probably feel like my work life was a bit more sterile, and less like part of a giant living organism. I'd probably think a lot more carefully before going over to someone else to ask them a question that, upon reflection, I could probably answer myself, but I'd probably also miss out on some great informal knowledge transfer. Going to lunch with my coworkers would probably become more important, as fewer moment-to-moment interactions happened.
So, ramble ramble ramble, I think it's all a mixed bag, and I think the net effect must be different for different companies/products.
Gregg's point is well taken. Perhaps a more general statement of the issue is that workspace quality is a significant factor affecting productivity. Refering to Joel's five worlds, my experience has been in internal, embedded and throwaway development. In these areas, in my experience, a quiet private office would be the best work environment. I tried to imagine what game development would be like that would make it different and couldn't, so will just have to defer to someone with actual experience.
I had considered including a reference to the UofM article mentioned by Brad. Here is another link: http://www.si.umich.edu/features/0101-warrooms.htm Note that this article states that the the Teasley paper found that the war room environment was twice as productive as private offices. This is an unfortunate source of misinformation that even made it in to some of the other articles referenced in the OP. The Teasley paper never mentions private offices, only "traditional offices" which appears to refer to cubicles. If you are an ACM member you can get the research paper itself from: http://portal.acm.org/ft_gateway.cfm?id=359005&type=pdf&dl=portal&dl=ACM&CFID=11111111&CFTOKEN=2222222 A quote: "Some programmers reported that they occasionally came in after hours (both before and after) in order to work in the room with some peace and quiet."
The need for communications between team members is often given as a reason for not putting developers in private offices. The conflict between the need for communications and for private work space was mentioned in the Santa Teresa paper. I have never experienced a situation where a project suffered from lack of communications between team members because they were in private offices. In fact, it may be better in private offices. Most of the time people can work with their door open. With a little extra space and a white board in each office it is easy to have informal 2-3 person meetings without causing a disturbance to anyone else. And developers can still get uninterrupted intervals of a few hours to produce a design document or source code. The door is only for rare occasions when a critical piece of work needs to be done without interruption. Private offices don't prevent interaction. When arranged properly with common areas they allow a dynamic environment that varies from individual work to small group to whole team interaction. But if you are doing something like game programming that requires continuous team interaction, they won't do you much good.
I wonder how telecommuting will work out as a work environment. It would seem to have the benefit of providing a quiet private work space but lacking in team interaction. People that I have known who did long term telecommuting eventually gave it up. Still, with email, IM, and the telephone, it may find a niche where it will at least be preferable to a cubicle.
At Garabit we do not have the luxury of private offices, yet. However, with many of the above mentioned lessons in mind and with a few of our own, we created a nice productive environment without spending big cash. Safety, noice reduction, privacy, communication and pair programming have all been taken into account. More information in this article:
Wednesday, September 08, 2004
I'm a little sceptic with regards to the war room results.
Once upon a time I read an article (can't remember where) about a study in which they changed the work environment for what they thought would be "the better", with the result that productivity went up. Then they changed it back, with the expectation that productivity would go down again. Surprise, surprise, it went up again. The conclusion was that people react much more to changes in the environment than to the environment.
So, a study which pulls people from an environment they're accustomed to out into a (temporary) testing enviroment isn't necessarily measuring productivity and work satisfaction, but measuring the effect the environment change has to that environment.
Andreas is referring to the Hawthorne effect. It is easy to believe that the warroom study saw a big improvement compared to a typical bad poorly managed cubicle environment.
A caveat the should be mentioned although it is almost obvious, is that a high quality software development environment is a product of the whole company culture. Just putting people in to private offices won't do much by itself.
I'm with the 'war room' school idea, and I am suprised that other posters seem to have dismissed it (or dismissed it because the research was faulty). Seperate offices may raise an individuals productivity but you lose the group sense of mission and make it difficult for an overall sense of progress, problems and team to emerge. These days, as well, everyone has a major distraction on their desktop, the flashing 'you have mail' icon, and also possibly an IM client. Working in a seperate office would increase the need for electronic commmunication and because of its un-prioritisable nature you would likely as not worsen interruption levels.
Thursday, September 09, 2004
Jon, have you had any experience with this? One place I worked where there was a good sense of mission and teamwork provided private offices for everyone. I think the sense of mission came from the basic company culture, not the type of workspace. They did seem to go together though.
The reason I use the phrase "_quiet_ private office" is from the realization that a private office can still have distractions. Things like email can be controlled.
What about pair programming? Does that lean more toward "war room" or "quiet private office"? Or does the pigeon-hole it falls into even matter?
In my mind the main problem is distraction from the work you're doing, and sometimes other people can actually encourage better focus, while at other times they detract.
There was a recent article in Software Development Magazine by Alistair Cockburn about when to use "Osmotic Communication" and when to use the "Cone of Silence". http://www.sdmagazine.com/documents/sdm0409f/
I guess I lean more toward Alistair's attitude that you need to know when to make the trade-off.
Thursday, September 09, 2004
I have no experience with pair programming. From the descriptions I have read the whole XP process seems rather warroom oriented.
The Cockburn Cone of Silence article was interesting. It's another example that in order to get anything concrete done, that is, writing code, one needs periods when it is possible to work without distractions. But management types are resistant to the idea until it becomes a last resort.
I was an SRA employee and software developer during the time that SRA experimented with cubicles. They had one room of "high end" cubicles and one room of "low end" cubibles. Both were manufactured by Herman Miller. Neither environment was conducive to productivity. I distinctly remember having no uninterrupted work surface large enough to accomodate either the database schema or the UML diagrams. I was sooo grateful not to be stuck in 'cube-land' and had an office to retreat to.
While they were visually impressive, the only permanment take-away from the affair was company-wide adoption of the now-dot-com-symbolic Aeron chairs.
I find that I absolutely need a private/quiet space to think, a comfortable chair to accomodate my 6'1" frame, and a broad horizontal work surface to be truly productive.
Nice-to-haves are at least a 6x4' whiteboard, halogen lighting, a source of natural light (i.e. window or skylight), and one-or-more 22" monitors for expansive screen real estate.
I find that not only am I more efficient in a comfortable office, I'm less fatigued and can be 'zoned-in' for longer stretches of intense concentration.
Friday, September 10, 2004
In order to better understand Gregg Tavare's appreciation on closed vs open spaces for game developing, I would like to know if he actually had worked in both kind of environments. As far as I know, there are good game developers working in private offices (id software,) altought they have common areas for testing and hanging around...
Friday, September 10, 2004
Keith, thanks for the input. The point about horizontal space is a good one. Right now I share my desk with two monitors, keyboards, mice and a telephone. There is barely enough space left for a pad of paper.
Leonardo, some time back a poster to JoS related his experience at a game company that provided private offices to the developers. In that case it was a disaster, nothing got done. Perhaps Gregg will check back on this thread and describe his own experience.
This topic is archived. No further replies will be accepted.Other recent topics
Powered by FogBugz