I’ve been waiting to write this piece for years, just because I’ve never seen an industry be so hazardously wrong about something. Here we go…
I’m a programmer who suffers from panic disorder, and I hate the way the open-plan office, once a necessary evil for operations like trading floors, has become the default office environment for people who write software. Yes, there are cases in which open plan offices are entirely appropriate. I’m not going to argue against that fact. I am, however, going to attack the open-plan fetishism that has become trendy, in spite of overwhelming evidence against this style of office layout.
This is a risky piece to write because, in so far as it seems to deliver an indictment, it’s probably going to cover 99 percent of the software industry. At this point, horrible working spaces are so ubiquitous in software engineering, perhaps out of a misguided sense that programmers actually like them (which is true… if you define “programmer” as a 24-year-old male who’d rather have a college-like halfway house culture than actually go to work). So let me make it clear that I’m not attacking all companies that use open-plan offices. I’m attacking the practice itself, which I consider counterproductive and harmful, of putting people who perform intense knowledge work in an environment that is needlessly stressful, and generally despised by the people who have to work in it.
I work for a great company. I have a great job. I like being a technologist. I like writing code. I don’t plan to stop making things. In almost all ways, my life is going well right now. (It hasn’t always been so, and I’ve had years that would make it physically impossible to envy me.) However, for the past 8 years– and probably, at a sub-crisis level, for 10 before that– I’ve suffered from panic attacks. Some months, I don’t get any. In others, I’ll get five or six or ten (plus the daily mild anxiety attacks that aren’t true panic). These are not the yuppie anxiety attacks that come from too much coffee (I had those as a teenager and thought that they were “panic attacks”; they weren’t) although I get those, too. Actual panic attacks are otherworldly, often debilitating, and (perhaps worst of all) just incredibly embarrassing in the event that one becomes noticeable to others. Perhaps one of the most traumatizing things about the condition is its introductory phase, when it’s an ER-worthy “mystery health problem”. It takes a while to learn that, despite their incredible ability to throw almost any physical symptom at a person, they aren’t physically dangerous.
Panic attacks suck. They deliver intense negative reinforcement, almost to the point that I’d call it torture, for… what? What does one learn about an attack that comes out of the blue at 3:47pm? That 3:47pm is a menacing time of day? (This seems absurd, but panic makes a person very superstitious at first.) Some peoples’ attacks are phobic and attributable to a single cause; others’ are more random. Mine are random but patterned. They almost never happen in the morning or at night, with a peak around 3:00 in the afternoon. They sometimes come with stop-and-go traffic, but (oddly enough) almost never when I am biking. Extremely humid weather can provoke them, but dry heat, cold, rain and snow don’t. They also tend to come in clusters: there are foreshocks, there’s a main event, and then there’s a slew of stupid aftershocks (most being mild anxiety attacks rather than true panic) stretching out over about two weeks. I certainly can’t blame all of them on open-plan offices, because I’ve had them in all sorts of places: cars, planes, boats, my own bed, random street corners. Moreover, I’ve reached a point where, with treatment, I can endure such office environments, most of the time. I’ll say this much about the disorder as it relates to open-pan offices; the severe ones that can be called true panic started in, and largely because of, open-plan offices in the early years of my career. Even to this point, the attacks are exacerbated by the noise and personal visibility of an open-plan office, in which the cost of a panic attack is not limited to the experience itself, but includes embarrassment and the disruption of others’ work. A bad panic attack produces belching, farting, an autistic sort of “rocking”, and numerous tics that can be very loud. No one wants to see or hear that, and I don’t need the added stress of the enhanced consequences of an attack.
I don’t blame companies directly for this because absolutely no one would want their employees to have panic attacks. In fact, if the fact were well-known that open-plan offices exacerbate (and, I would argue, can produce) a debilitating disability in about 2 percent of the population, I think their use would be a lot less common. If the purpose of the open-plan office is to induce anxiety and stress– and this may be a motivation in a small number of companies, although I like to think better of people– it’s clearly there to induce the low levels that supposedly make people work harder, and not the plate-dropping extreme levels.
As for me, I’m mostly cured of the affliction. (I’ve had a bad February, between cabin fever from a sports injury and running out of an important medication; but, in general, my trend is positive.) At my worst (late 2009) I was a shut-in, able to survive largely because my work was only 1500 feet from my house. The 20-minute subway ride to my therapist’s office, without a prophylactic dose of clonazepam, was unthinkable. I began to improve in 2010, as I distinctly remember being actually able to ride a plane (a prerequisite for traveling to Alaska). Oddly enough, I probably had 20 panic attacks in the months leading up to the plane ride. On the airplane itself, I had only a mild one, and it ended 10 minutes after takeoff. So there was about a 100x multiplier on the anticipation of the plane ride that, when it came, actually wasn’t so bad. This is just one of the ironies of panic: the anxiety that can form in anticipation of a potential panic-trigger is often worse than the triggered panic itself.
Many basic skills I had to relearn in the wake of developing Panic Disorder. There was the First Run Over 10 Miles (February 2010) and the First Drive (May 2010) and the First Swim (June 2010) and the First Bike Ride (August 2011) and the First Swim in Open Water (February 2012) and the First Flight Not On Meds (June 2012). In a way, it was like aging in reverse. In 2008 and ’09, I was a crippled old man, unable to do much, and convinced that I was unemployable because throwing myself into the hell of open-plan programming was not an option. In 2010, I was a cautious 65-year-old who could get around but clearly had limitations. By 2012, I’d probably aged down into my 50s; and at this point in 2015, I’m probably at an “effective age” of about 40. I fret about health problems far too much, even though I’m probably (factoring out mild weight gain due to medications) in the top 10% of my age group for physical shape. I’ve decided that 2015 is going to be the year that I finally lick this thing, in large part because I really want to go Scuba diving, which is contraindicated for an active panic disorder. Part of why I am talking about this nightmarish condition is because I have some hope (perhaps naive) that doing so will help me finally put it down for good. Fuck panic. I’m ready for this nonsense to be over. I suspect that it continues because “something” (call it God or “the Universe”) needs me to speak out on this particular issue so, maybe, telling this story in the right way will end it.
It’s been a fight. I haven’t told a tenth of it. Perhaps it has strengthened me– when unaffected by this disease, almost nothing fazes me– and perhaps it has weakened or sickened me. Given that I use no drugs, don’t drink, exercise and eat well, I might make it to 85. Or I might die at 50. Oddly, I’m OK with that. What ended my fear of death (as a Buddhist believing in reincarnation) was the realization that it is the opposite of panic. Death is the essence of impermanence. It’s there to remind us that nothing in this world lasts forever. Panic is a visceral fear of eternal “stuckness”, the sense that an undesirable state will never end. There is (and I won’t lie about the morbid fact) a fear of death that lives in panic, but it’s more of a fear of “dying like this” than one of death itself. I know that I must die, but I really don’t want to die in an office at age 31, and it’s the latter thought that makes panic so awful. From what I know of death and the final moments, it seems like something that should be feared; the pain of death is in it happening to so many other people.
Attacks are often trigger-less or, at least, have no obvious trigger. The worst ones aren’t usually “caused by” anything, and you can’t stop one by wishing it were over. Telling a panicker to “calm down” is about as useless as telling a depressed person to “cheer up”. If it has any effect, it’s a negative one. In general, though, once a wave of panic or dread has begun, it will run its course no matter what is done. The medication, the fruit juice, the hot tub… those are all useful at preventing a short-term “aftershock” or a recurrence, and therefore are great at preventing “rat king” attacks where one wave comes after another… but the attack itself (at least, a single “wave” of panic that lasts for an intense 10 to 300 seconds) can usually not be aborted.
What is it about the open-plan office that causes anxiety? People are quick to implicate noise, and I agree that loud conversations can be a problem and can cause small amounts of anxiety, and it might possibly be sufficient to cause panic. I don’t think office noise, alone, explains the problem. The direction of the noise exacerbates it. Noise is especially distressing when it comes from behind a person, and poor acoustics can make this an issue at any point on the floor, and noise that comes “from everywhere” creates a sense of incoherence. All that said, I don’t think that noise is the major killer when it comes to open-plan-induced anxiety or panic. Annoyance, yes. Mental fatigue, for sure. However, I think the omnipresent stress of being visible from behind– typically a mild stress, because one usually has nothing to hide, but a creepy one that never goes away– tends to accumulate throughout the day. If there’s any one thing (and, of course, there probably isn’t just one) that causes open-plan panic attacks, it’s that constant creepy feeling of being watched.
I’ve studied office boredom and its causes, and one recurring theme is that people are notoriously bad at attributing the right cause for boredom, anxiety, or poor performance. I think this explains why people overestimate the influence of acoustics, and underestimate that of line-of-sight issues, on their open-plan problems. For example, people subjected to low-level irritations (sniffling, people shifting in their seats, intermittent noise) will often attribute their poor performance in reading comprehension to “boring” material, even when others who read the same passages in comfortable environments found the material interesting. In other words, people misattributed their distraction to a fault in the material rather than the (perhaps less than liminal) defects in their environment. I, likewise, tend to think that “noise” is the attributed cause for open-plan discomfort, anxiety and panic, largely because people fear that attributing their negative response to lines-of-sight would be a “confession” that they have something to hide. But lines of sight matter, and almost every human space except for an office is designed with this in mind. In a restaurant booth, you can ignore the noise, even though the environment is often louder than a typical office. The noise isn’t a problem because you know that it doesn’t concern you. You’ve got a wall at your back, and enough visual barriers to feel confident that almost no one is looking at you, and so you can eat in peace.
Programmers have, against their own interests, created a cottage industry around a culture that I would call violent transparency. One can start by noting the evils of “Agile” systems that micromanage and monitor individual work, in some companies and use cases, down to the fucking hour. While these techniques are beloved by middle management, all over the technology industry, for identifying (and also creating) underperformers (“Use Scrum to find your Scum”), I’ve seen enough to know that these innovations do far more harm than good. They tend to incent political behavior, have unacceptable false-positive rates (especially among people inclined to anxiety problems) and generally create an office-wide sense that programmers are terminal subordinates, incapable of anything that involves long-term thinking. Moreover, the culture of violent transparency is inhospitable to age and experience, favoring short-term flashiness over sustainable, thoughtful development. Over time, that leads to echo chambers, cultural homogeneity, and a low overall quality of work produced.
To make it clear, it’s not transparency itself that is bad. I think it’s great when people are proud of their work and are eager to share it. That should be encouraged whenever possible. I also think that it’s worthwhile for each person on a team to give regular notice of progress and impediments. In fact, I think that, properly used and timeboxed, so-called “standup” meetings can be good things that may reduce political behavior by eliminating the “Does Tom actually do anything?” class of suspicion. Somewhere, there is a middle ground between “The programmers work on whatever they want and update us when they feel like it and have to be needled to integrate their work with the rest of the company” and “We torture programmers by forcing them to justify days and hours of their own working time” and I think it’s important to find it. Unfortunately, the “Agile” industry seems built to sell one vision of things (autonomous self-managing teams! no waterfalls or derechos!) to programmers while promising something entirely different to management.
Oddly enough, young programmers seem not to oppose violent transparency, whether in the form of oppressive project management and downright aggressive visibility into the day-to-day fluctuations of their productivity, or in the open-plan office. Indeed, some of the strongest advocates of the paradoxical macho-subordinate cultures are programmers. (“I want an open-plan environment. I have nothing to hide!”) This is tenable for the inexperienced because they haven’t been afflicted yet by the oppressive creepiness of feeling (even if, in reality, they are not being watched) like they are monitored. Those who’ve not yet had a negative experience at work (a set that becomes very small, with age) do not yet realize that a surveillance state is, even for the innocent and the pillars of the community, an anxiety state.
Why is it so rare for programmers to recognize “Agile” fads as a game being played against them? Well, first, I think that there are some, like me, who genuinely like the work and have few complaints except for these stupid passing fads, which become more navigable or avoidable as one gets older and more socially skilled. I have seen “Scrum” (and I’m not talking about standup meetings, but the whole process and the attitude of programmers as wholly subordinate to “product”) shave over 80 percent off of a large company’s valuation in about a year. So I know how dysfunctional it can be. However, I’ve never personally been fired because of “Agile”, and I’m sufficiently skilled at Agilepolitik that I probably never will be. As I get older and more politically skilled, and my panic situation becomes more treatable, this is increasingly someone else’s battle. That said, if I can raise the issue to prevent further destruction of shareholder value, loss of talent, and intense personal anxiety to be suffered by others, then I will do so.
As a group, most of us who are experienced know that these macho-subordinate “Agile” fads are extremely harmful, but we don’t speak up. It’s not our money that’s at risk. It doesn’t hurt us, nearly as much as it hurts shareholders, when “user stories” cause a talent bleed and bankrupt a company. As for the young and inexperienced, they often have no sense of when a game is being played against them. Like the open plan office, so-called “Agile” is becoming something that “everyone does” and we now have a generation of programmers who, not only do they consider that nonsense to be normal– because they’ve never seen anything else– but they will replicate it, even without malign intent.
Violent transparency appeals to the hyper-rational person who hasn’t yet learned that the world is fluid, subtle, complicated, and often very emotional and political. It appeals to someone who’s never had an embarrassing health problem or a career setback and who still thinks that a person who is good at his job and ethical has “nothing to hide”. “Agile” notions of estimation and story points look innocuous. I mean, shouldn’t “product managers” and executives know how long things are supposed (ha!) to take? It seems like these innovations are welcome. And if a few “underperformers” get found out and reassigned or fired, isn’t that good as well? (Most programmers hate bad programmers. Older, more seasoned programmers hate bad programs, which are often produced by “Agile” practices, even when good programmers are writing the code.) What many young programmers don’t recognize is that every single one of them, for one reason or another, will have a bad day. Or even a bad two weeks (“sprinteration”). Or even a bad month. Shit happens. Health problems occur, projects get cancelled, parents and pets die, kids get sick, and errors from all over the company (up, down, sideways, or all at once) can propagate into one’s own blame space for any reason or no reason at all. You’d think that programmers would recognize this, band together, and support each other. Many do. But the emerging Silicon Valley culture discourages it, instead pushing the macho-subordinate culture in which programmers endure unreasonable stress– of a kind that actually detracts from their ability to do their jobs well– in the name of “transparency”.
Why open plan?
To make it clear, I’m not against all uses of the open-plan office. One environment where open-plan offices make sense is a trading desk. Seconds, in trading, can mean the difference between respectable gains and catastrophic losses, and so a large number of people need to be informed as soon as is humanly possible when someone detects a change in the market, or a production problem with technology (their own or from a third party; you’d be surprised at how much bad third-party software the trading world runs on). In such an environment, private offices can’t be afforded. Knocking on doors and waiting isn’t acceptable, because a trading desk is about as opposite a long-term-focused R&D environment as one can get. The reality of life on a trading desk is that the job probably mandates an open-plan, bullpen environment in which a shout can be heard by the entire floor at once. It’s a stressful environment, and talented people demand 30 percent raises every year in order to stay in it, because even people who love trading feel like they’ve taken a beating after a 7-hour exposure to that sort of bullpen environment. In fact, most seasoned traders will admit that their office environments are stressful and that the job has a “young man’s game” flavor to it; even the ones who say they love the game of trading are usually in management roles by 50.
So, no, I’m not against all open-plan offices. I’m against unnecessary open-plan offices. These environments, once, were regarded as a necessary evil for a small number of use cases, and are now the default work environment for programmers. I’m a technologist. I tend to be writing or involved in the writing of code for the next 30 years. Some projects and circumstances may require that I endure an open-plan office, and I accept that as something that may occur from time to time. It shouldn’t be the only option. Holding up against artificial stress that makes everyone worse at his job should not be part of the programmer’s job description. I’m 31 and if I have chest pain, I’m almost 100% sure that it’s a panic attack. That will be different when I’m 60 and, at that age, I sure as hell don’t want to be dealing with an open-plan office. I’ll quit the industry before then if I can’t get some damn privacy.
So when are open-plan offices necessary or useful? And what are software companies’ reasons for using them?
There are, I’d argue, six reasons why companies use open-plan offices for software. Some are defensible, and some are atrocious.
- It’s a necessity of the job. This might apply to 1 percent of programming jobs, if that, but such environments do exist. A hedge fund probably needs its core quants to be within earshot of the traders they’re supporting. A larger percentage of programming jobs will require an open working space some of the time (e.g. mission control when something is launched into space). In these cases, the negatives of the environment are offset either by the mission or by compensation.
- The company is very new. It goes without saying that if a company has less than 5 members, an open-plan (“garage”) format is probably going to be used. I don’t see that as terribly problematic; running a four-person company presents plenty of stressors that are as exhausting as open-plan offices, and startups can mitigate the stress caused by such environments by encouraging flexible hours and mitigating office noise.
- The company is expanding rapidly. To be truthful, I don’t begrudge all tech companies for using an open-plan office. If you’re growing at 40 percent per year, you can’t afford to have private offices for all your programmers at all times. As a “growing pain”, I think that the cramped open-plan office is acceptable as a temporary solution. It shouldn’t be the long-term expectation, however. It’s perfectly reasonable to use an open-plan office when anticipating rapid growth, simply because it’s hard to set up any other plan if you expect to outgrow it quickly. The negatives of the open-plan environment are severe, but tolerable as a temporary arrangement. I don’t hate that some companies use open-plan offices. I hate the fact that it’s becoming no longer a choice whether to work in one, because even the 5,000-person companies are now using them.
- “Everyone else is doing it.” This relates to item #3. Because rapid-growth companies have a legitimate reason to use open-plan offices in the first couple of years, it has become “cool” to have one, in spite of their being unpleasant for the people who have to work in them. To me, this is upsetting and troubling. There are good startups out there, but I don’t think “startupness” should be valued for its own sake. Companies regress to the mean with size, for sure, and this means that the best (and worst) jobs at any given time are likely to be at smaller companies; but, on the whole, attempting to replicate startup traits in larger companies tends to reproduce the negatives more reliably than the positives. People in large and small companies ought to recognize that there are, in fact, negatives of being a startup: ill-defined division of labor, cramped spaces, rapid organizational change. Unfortunately, big-company cost-cutters– that is, the people who aren’t good at anything else, and who have no vision, so they use claimed title of “belt-tightener” to inspire fear and grow politically– are very willing to use the “coolness” of startups to justify changes in their much larger companies, and these changes are invariably harmful to the employees and their companies.
- It’s cheap. This is a dishonorable motivation, for any company other than a bootstrapped or seed-funded startup, but some employers use the open-plan office just because it’s the cheapest and crappiest option. To be honest, I think that this is a case of “you get what you pay for”. Open-plan offices save costs, but the quality of work produced suffers and, for high-end knowledge work, it’s almost certainly an unfavorable trade. Assuming a modest 20% increase in programmer productivity, private or pair offices at 200 SF per person will pay for themselves tenfold, in most locales.
- Age and disability discrimination. Is this the motivation for most employers who use open-plan offices? Probably not. Is it a motivation for some? Absolutely. In the early 2000s, when many companies had to make cuts and wanted to shed their most expensive workers regardless of value or ability, it was a fairly well-known HR trick to reduce privacy and office space, driving the more expensive older programmers out first. (I’d bet that “Agile” became popular around the same time.) Age discrimination has probably never been the only reason for introducing an unhealthy work environment, but it is one among many for sure. So I suspect that one of numerous reasons why startup executives love open-plan offices is their repulsiveness to older programmers (where “older” means “anyone who is over 34 or has had any health problem”) and women.
Should open-plan offices be abolished or made illegal? No, probably not. That’s not my goal. Though I suffer from a disability that is aggravated by this rather obnoxious feature of the typical software work environment, I am also aware of its necessity in a number of circumstances. If I went to back into the hedge-fund life, I’d probably have to “Med Up” and deal with the intense environment, but I’d expect to be compensated for the pain. Everywhere else, open-plan offices shouldn’t be the norm. They should be a temporary “growing pain” at most. I can deal with them if I have to, for short durations and with the ability to get away. I don’t want to deal with them in every fucking office environment that I have to use for the next thirty years. I don’t expect to be in this industry, or even alive, if I have to deal with 30 more years of open-plan.
The F.Y.S. Letter
How do we preserve the benefits of the open-plan environment (if there are any) while mitigating the literally sickening drawbacks? Here are some starting points and observations:
- There is no working utility to visibility from behind. Abolish it. If you must go for an open-plan layout, then buy booth-style walls and give each programmer a wall at her back. Noise is irritating, but I don’t think that it’s the noise of the open-plan office that causes the distraction or the panic attacks. It’s the noise, followed by the loss of concentration, followed by the awareness of being visible “not getting any work done” to 20 people, combined with the general mental exhaustion that comes from having been visible to other people for hours on end. It is stressful for anyone to be visible, like a fucking caged animal, to so many people for 8-10 hours, five days per week. It’s especially bad to be visible from behind. Combine that with the mental tiredness of a workday well spent, and it’s intolerable. Whereas even normal people get mild vertigo and nausea by 4:00pm from this– I’ve heard that doctors in Silicon Valley are beginning to discuss “Open Office Syndrome” as even people without anxiety disorders begin presenting with late-afternoon vertigo– I’m at risk of something much worse, and I shouldn’t be. I’m a programmer, and fighting off panic attacks shouldn’t be part of the fucking job. I’d much rather use all of my mental energy on the programming.
- If open-plan is the only option, discourage pairing sessions and impromptu meetings in the working space. That’s what conference rooms are for. If the conversation is going to last for longer than 180 seconds, then it shouldn’t be in earshot of people who have no need to hear it, and are trying to do their jobs.
- Yes, programmers are special. Our jobs are mentally exhausting in a way that most white-collar workers (including almost all of the high-ranking ones called “executives”) will never be able to relate to. Many programmers are fat not because we’re “nerds” but because it is difficult to fight off food cravings after hours of mental exertion. The difficulty of the job (assuming that you care about doing it right, instead of just playing politics) is generally held to be a positive; it’s great to get into a creative flow. We also have an unusual trait of wanting to work hard (which is why that “Agile” nonsense is so stupid; it’s designed by and for non-producers on the assumption that we are like them, in terms of wanting to do as little real work as possible and needing the micromanagement of “user stories”, when the exact fucking opposite is true) and tend to beat ourselves up when (even if the reasons are environmental, and not our fault) we can’t focus. However, that combination of mental fatigue and overactive superego puts us in an ultra-high-risk category for panic and anxiety disorders. So, yes, we are fucking special and we need a better fucking work environment than what 99 percent of us face.
- Discourage eat-at-desk culture but encourage “talking shop” at lunch. First of all, eating at one’s desk is like eating in a car. It’s OK to do it once in a while, but it shouldn’t be the norm. This has nothing to do with anxiety disorders or office layouts. I just don’t like it, although I’ll do it two days out of five. But it should be discouraged in general. Second, “collaboration” is an often-cited benefit of an open-plan office (even though such environments aren’t very collaborative; just stressful and annoying). However, you can’t force people to be “collaborative” by having them overhear each other’s conversations that are unrelated to what they’re trying to do and, also, people will gladly be collaborative even when they have private offices (from which, you know, they do sometimes emerge, humans being social creatures and all). Collaboration happens when people are relaxed, together, and “talk shop” because they’re genuinely engaged in what they’re up to. It happens quite often with programmers. You don’t have to force us to be “collaborative”. It just comes about naturally. Remember: most of us like work.
- Stop measuring people based on their decline curves in the first place. Programming is not the Marine Corps and it shouldn’t be. This should be a 40-year career. Programmers create their own stress (eustress, the good kind) and should not be subjected to the negative kind, especially on variables (such as the ability, increasingly compromised with age, to withstand a lack of privacy that can likened to nine-hour economy-class airplane ride every day) that do not correlate to any useful ability. When that happens, the people suffer, the code suffers, and the product suffers. And as a programmer, let me state that low-quality work in infrastructure or software is always astronomically more expensive than it appears that it “should” be. Since there is almost no correlation between basic reliability (that is, the ability to make good decisions under normal conditions, ethical character, and the insight necessary to build highly-reliable systems that are far more reliable than any human could be) and the sort of superficial but extreme reliability (“story points” per week) that characterizes office tournaments, we as an industry ought to abolish all focus on the latter. The former (which I termed, “basic reliability”) is what we care about, and the rightward tail of a person’s decline curve has no correlation to that.
I’m not writing this to indict specific companies– except for, perhaps, Facebook, for the woeful lack of cultural leadership shown in building a 2800-person open-plan office– because every programming environment I’ve been in, since 2007, has been an open-plan one. In fact, I’ve only been in two companies that didn’t use open-plan offices: one had pair offices (which worked very well, and are probably better than solo offices) and the other had a different kind of dysfunctional layout. Moreover, I recognize that there are legitimate uses for open-plan offices, even if such environments exacerbate some peoples’ health issues. Engineering, whether in technology or in designing a workplace, is about trade-offs, and sometimes the benefits of an open-plan office outweigh the drawbacks. That is, I think, quite rare, because I don’t believe that cramped offices are “collaborative” at all, but I’ll admit that the possibility exists. In general, though, an ideal office environment would afford 150-200 square feet of personal space, per programmer, at a minimum, while offering central, “public” spaces for collaboration and informal socializing (which often blend together). Relative to even an average programmer’s productivity, office space is ridiculously cheap. A 200 square-foot office, in a prime downtown location in the U.S., typically costs $4000 to $6000 per year, which is nothing compared to the gain from having happy, productive, healthy programmers able to do their jobs without distraction.
What I absolutely must kill is the assumption that the open-plan bullpen represents the way for programmers to work, as if it deserves to be a standard, and as if programmers were somehow immune to the health problems (acute and gradual) that badly-designed office environments inflict. It’s this sort of nonsense (in the obscene name of “culture fit”) that makes our industry needlessly exclusionary. The open-plan office is fine in a company’s transitional phase, but it should not be the standard, and it should absolutely never be, under any circumstances, a part of how we allow the rest of the world to view us as programmers. (Visibility from behind suggests low social status. If you’re not aware of that nuance, then you’re not qualified to have opinions about office space and you don’t get a vote.) If your company is at five people, then use the environment that’s right for those 5 people. If you’re growing too fast for individual or pair offices to be practical, then use cubicles or an open-plan layout during the growth phase, and shift over to offices with doors as you can. However, if you’re the CEO of a 5000-person company and you’re still putting software engineers in open-plan offices, then you’re either ignorant or a psychopath. The open-plan office is no more “cool” than smoking, and people who want to be programmers without signing up for 40 years of second-hand smoke should have that option.