Currently working in an open plan office and I hate it. The open plan office seeks to solve the problem of knowledge silos where people hole up and wait for people to come to them. Unfortunately, once that knowledge is distributed the constant interruptions leads to an environment where no one can focus and formulate new ideas during the 9-6 time frame. So work starts to seep into personal time which leads to a far larger problem where people become resentful on a regular basis and burnout. Meanwhile, the CTOs and VPs who also sit in the open plan floor can be seen leaving on a regular basis at 6:00 sharp. I have not achieved a state of mental flow in over a year. If a place I'm interviewing at has adopted the open floor plan, it's a deal breaker.
I've worked in cubicle farms, private rooms, shared rooms, and clustered team cubicle rooms. Cubicle farms are equally abhorred to open plan. I think the best mixture is shared rooms with private meeting rooms on a reservation basis, preferably with the private rooms along the windows and meeting rooms in the middle of the building.
Yes, I've heard the 'collaboration' justification, too. In my experience, a lot of programmers hate the open-floorplan noise, to which they're told "just take a laptop into a spare conference room, or work from home". The upshot is that half the team is now taking up conference rooms or working from home.
It's the worst of both worlds: we're paying for both cubicles that nobody uses and big conference rooms being used as single offices, and people are even more isolated than if they'd just been given normal offices to begin with.
It reminds me of situations like Prohibition (and I'm sure you can think of others): we don't like X, therefore we'll legislate against X, and ignore the fact that people are going to do X anyway, and so our legislation actually makes things worse.
Not every place that pushes open floorplan or some 'collaborative workspace' (ugh, get to go to that tomorrow) is a busybody manager.
They moved us from cubes to a 'collaborative workspace' at a company where working from home is fine, almost encouraged. It wasn't the managers that choose this, it was higher up who believe collaborative is nothing but a buzz word.
In both the work from home (which happened before and will probably increase) and the collaborative workspace, the measure of getting your work done is 'did you get your work doneon time' not 'do you look busy.'
Having a liberal work-from-home-if-you-want policy would definitely make it a lot more tolerable, but this:
"It wasn't the managers that choose this, it was higher up who believe collaborative is nothing but a buzz word."
always worries me, because it's that kind of higher level management that, 3 months later, stops by the awesome collaborative workspace he told you to use, finds it mostly empty because everybody is at home, and shuts down the work-from-home policy in spite of the fact that people are getting work done.
Sure, you can point out that people are getting their work done, but (again, I know I'm stereotyping here) that seems to be the kind of management that doesn't let facts get in their way.
I have not achieved a state of mental flow in over a year. If a place I'm
interviewing at has adopted the open floor plan, it's a deal breaker.
I hear you. As an aside, does anyone know of any dev shops in Sydney (Australia) that don't use open-plan setups? I've been going for nine years, and I've only ever seen one (Campaign Monitor); the rest have been benches, or benches separated by low walls.
That's an individual response to an organizational problem, and the organizational problem remains. The company has created an environment that is actively hostile to productivity, and you are cleverly finding a way around it.
That's great for you. But I find headphones uncomfortable to some degree. I find music distracting much of the time. I've tried, believe me. I think I'm not alone in this, so expensive headphones are not a total answer. But the larger issue remains: why should individual employees have to find ways around a productivity-killing environment created by the employer? It's absurd.
Note: some time ago on another HN thread I wrote a similar comment. I feel it's worth repeating my sentiments here. On that thread, amusingly, people responded to me with suggestions for nicer headphones and types of music. Don't bother for two reasons: 1) I've explored the options already, and 2) you're missing my point entirely.
NCH don't help with visual distraction, the ease of bothering you rather than emailing you, nor the oppressive heat/shivering cold that always happens in rooms designed for too many people (or worse, NOT designed for too many people).
At VP/CTO level, you're not coding most of the time, you're coordinating. That's a completely different story.
If you know you hate it, I highly recommend finding a new job sooner than later. I did it last summer and it's just not good for humans (or at least "us") to work like that. Then again, people supposedly actually go for those hacker apartment setups, where someone pays for 5 dudes to live together. Shudder, but there's no accounting for taste. Like you say, it's probably best brought up in the interview.
Already actively looking, but thanks for the advice. If you're straight out of college with no other realities in place, it may be doable, otherwise it's just a stupid waste of an already too short life.
I work in an open plan office and I hate it. I am constantly annoyed, inconvenienced and I can't get half as much code written as I do at home. The designers, salespeople, tech-support staff, managers and accountants I work with, however, love it. Their productivity is way up because they have quick, easy, friction-free and immediate access to me at all times. In aggregate the company does significantly better as a result of this open-plan office and I realise that wanting to be in 'The Zone' 8 hours a day is not why I work there. I work there to make the company as a whole as awesome as possible.
Just curious: what are you actually there to do, that the designers, salespeople, tech-support staff, managers and accountants are more productive by bugging you all day?
(I'm not saying it isn't true, just that I assume by the way you've stated this you're a developer that's rarely left alone to get anything done, and I can't see how that's beneficial to your employer.)
I'm a software engineer in a software-centered B2B company. They all use the back-end system, and our clients use the front-end.
During the day I may solve up to a dozen small problems, which might be a small customization of the font-end for a big client, debugging a random bug or two on the spot, querying the database for some new sales stat, and so on. If something comes in to our bug-tracker that I think I can resolve within 30 minutes, I do it immediately. The rest of the time I work on the long term (no deadline) projects to improve the system as a whole. Sure those projects suffer a bit but our clients are always very impressed when we can fix his bug, make his customisation change or implement his new report, literally just minutes after he requested it.
Thanks! Oddly, I'd probably prefer your job in an open office to some of the arrangements I've seen where people have offices--at least you have direct indications that you're making a direct impact to the company and customers, whereas sometimes developer jobs are so far removed from the end customer that they might as well not even be there.
Interesting. That is a common trend I have noticed - there is some class of dev whose job becomes serving the internal business on an adhoc basis
your manager can either stop it by charging your time back to the requestor ( I would suggest you track the requests -send emails sayi g Bob you wanted a new sales report, it's third on list and expect it 9am)
or he can explicitly Market you to the business - what I previously did. And it is a powerful weapon for your manager. The higher ups feel well treated and the department gets all it's interrupts funnelled thru one person, who in your case seems good at it and happy to do it
but I strongly suggest you track the work, and push the marketing value of what you do.
I refuse to work anywhere there is an open office. Every time I've been forced into that, my productivity drops through the floor and my misery sky rockets.
Employers need to understand different people work differently. Want a truly efficient knowledge worker staff? Do try to cookie-cutter their environment. Give people the environment they need to succeed, which for some may be open collaboration and others quiet reserve. When the brain is really the only limiter on productivity, optimize for that.
I agree with you (generally) on principal. However, employers don't like individuality. Individuality costs money and makes more work. Just conform to the cookie-cutter employment contract/workspace/toolsets, and don't rock the boat.
Hey, if filtering on something like open floorplan workspaces also filters out employers with that attitude, that's awesome in my book. The sooner I can know they want cookie-cutter work, the farther away from them I can get.
I see your point in "Individuality costs money.... ", but I doubt it does.
Open source projects find an fix bugs quickly, if there's enough developers, because people are different, work different and think different. I would argue that individuality saves time, money and work.
That being said, businesses could just cookie-cut smaller offices and more people would get more work done.
I don't think there's much doubt, from a management/accounting perspective, that supporting diverse requirements for a workforce of individuals costs more than supporting uniform requirements for a workforce of enforced clones.
The thing is, the cost isn't what really matters, the cost/benefit ratio is. You want to put your people in an environment that optimises the productivity of your organisation as whole, by getting the balance right between supporting both individual performance and effective collaboration. If detailed customisation of the environment for every single member of your staff to hit that balance will increase your costs by 100%, but doing so increases productivity of your overall organisation by 200%, then it's a very beneficial action.
Treating the software craft like factory work is cheap and profitable in the short run and disastrous in the long run. Without top talent you have a less capable, lower quality product. Without innovation you are more likely to get disrupted and have your entire business and revenue fall out from under you.
I'm an introvert, and I've done a lot of pair programming. I've done a lot of solo programming, too. The InfoQ essay makes a fundamental mistake:
Being an introvert isn't the same as needing to work alone.
Introverts gain energy from focusing on the "internal world" of thoughts and ideas. Extroverts gain energy from focusing on the "external world" of socializing and interactions.
So, as an introvert, I can do just fine as a public speaker, consultant, and yes, pair programmer and Agile team member, because those activities are focused on thoughts and ideas. (I don't do so well at parties or conference ice-breakers, and that's fine.)
The other error I see in the InfoQ essay is that it conflates "Agile" with "decision by committee." It's true that Agile teams work in, well, teams, but that's not the same as everybody being involved in every decision. Team members on a high-functioning team know who on the team is best at what, and they automatically delegate everyday decisions to the people most qualified to make those decisions.
It does take a while for a team to reach this level of capability, and the early stages of team growth can be uncomfortable and difficult, often with too many meetings, but that doesn't mean that "Agile" == "decision by committee." It just means that smooth-running work takes time and practice. No surprise there.
Another misconception I'm seeing in this thread is that Agile == open floorplan. Actually, Agile people recommend that each team have its own dedicated workspace with good noise insulation. Within the space, there should be a combination of shared space for group work and pairing, a room with a door for private/distracting conversations, and personal space for individualism.
See Alistair Cockburn's "Convection Currents of Information" for the theory (in his book "Agile Software Development") or my own "Sit Together" for the how-to (in my book "Art of Agile Development" and online at http://jamesshore.com/Agile-Book/sit_together.html ).
I was going to point out something similar. I know people who are extroverts, but are completely incapable of working in an open office. The few people I know, how claim that an open office plan helps still needs headphones and music in order to close out the noise. Personally I "just" need complete silence, but that's not related to being introvert or extrovert.
Semi-related: I'm starting to be a bit ticked of about the whole introvert/extrovert. Some forums, HN, include seems to be celebrating the whole introvert thing, like it's somehow "better". Much in the same way as some thinks that NoSQL is just better than RDBMS, regardless of the application. People are just different, but we're still struggling to deal with it, businesses even more so.
I have no idea if I'm an introvert or not, nor do I care to know, I'm just me.
Celebrating introversion is a reaction to the cultural notion that extroversion is the ideal. It's unfortunate that you (and presumably others) get getting the impression that it's being put forward as better. I don't think the likes of Susan Cain are saying that. Let's recognize instead that not everyone is the same, and that a Procrustean approach is stifling and counterproductive.
I'm sure that there are some people who want the pendulum to swing their way. That can serve a purpose of raising awareness, but should never come at the expense of stifling extroverts.
For me, it depends on the cubicle and the layout. I didn't mind working in a cube environment where our team was "clustered" together. We all had our private work areas, our personal space, but the entire team was a stones-throw away if we needed to collaborate or hold an impromptu meeting.
Prior to this reorganizations however, it was miserable. My cube was between a sales guy and a customer support manager who would take support calls on speaker phone, in his cube, with members of his team all crammed in.
Every building I've seen at Microsoft is big enough, although some are (or are being switched to) open-plan.
Now that I think about it, everywhere I've worked there was enough space so that everybody working there at the time could have had an office.
As to where I'm going to find them: I'm probably going to filter out employers that can't make enough money with programmers to afford an office for each of them. I know this removes a non-trivial number of employers from my potential field of employment options.
The Symantec (formerly Central Point) offices in Beaverton, Oregon, for one. It's been years since I've seen the inside of it, but at least into the early 00s, even low-seniority QA guys had private offices.
Things are relatively cheap when you don't try to locate them right in the middle of an overcrowded city.
I had an internship last summer where the interns were all in an open-air room. It worked pretty well even though I am 95% introvert, because I naturally tend to zone out everything I'm not focused on anyways.
I think it's possible to simulate that, even if you aren't naturally oblivious so your surroundings, by putting on a comfy pair of over-the-ear noise cancelling headphones and listening to some ambient music. In addition to providing insulation from audible distractions, it's also a good cue to your co-workers that if they try to attract your attention, they will be interrupting you. If you are distracted easily in your peripheral vision by people walking by, then this won't help you much, but otherwise it's a pretty good approximation of being alone.
My point is that as a programmer there are things you can do even in an open-air environment to provide creative isolation, without losing the benefits of having easy access to the people around you when you want to talk.
In a very long work career, I've spent time in just about every office configuration you can imagine. As I read this article and the comments here I thought back over where I was most productive and most comfortable. And surprised myself! As it turns out I find that a sort of compromise between open office and cubical space seems to work best for me---large cubical with 4 work spaces, each placed in a corner. They are far enough away so that I can ignore them as need be, yet near enough for conversations/questions about the current project. In the two instances where that was the situation, I was both productive and comfortable---hard to argue with that. It never occured to me to ask whose idea the setup was, but it was a good one in my estimation.
I was also thinking about the question over my working career. My best work has been done in a closed office shared with 1 or 2 other people also working on the same project. I worked at home for 2 years and while I had great spurts of productivity when the task was well defined, getting questions answered or bouncing ideas off others hurt some types of work.
Cubes never did work well for me because they rarely get any natural light. I'm a sun driven person and try my best to insist on a window in my office.
I think this is about disorganization masquerading as agile. I'm a big believer in Scrum. Scrum, with bi-weekly sprints and daily standups is less overhead of talking to coworkers than I've experienced at places that are not as formally agile (either not claiming to be agile, or not following a specific methodology).
I'm not a fan of open plan, but I can deal with it. It works fine when people have the sense to take meetings into, you know, the meeting rooms.
If you believe the whole introvert/extrovert Jungian/Myers-Briggs thing I classify as an introvert and I love agile. So do lots of other folk I know - including some of the people who actually started the whole agile thing (there was a long and tedious thread on the XP list on the topic if anybody cares to read up - see http://tech.groups.yahoo.com/group/extremeprogramming/msearc...)
As others have pointed out, no agile process that I am aware of recommends open plan offices. Open plan offices suck. What many in the agile community do recommend is having team rooms - where everybody working on a particular sits together.
In fact the only agile process I'm aware of that makes any explicit statement on working environment is XP - which has having per-project team rooms as one of it's practices (the primary practice of "Sit together" In XP2E)
I find it curious that so many folk focus on individual performance - when most development is a team sport. I don't care if I'm a little less productive as an individual by a few project-related interruptions if the overall productivity of the team I'm working on improves.
I think the article is possibly conflating a couple of different things:
a) Open office plans -- for a lot of reasons I'd agree that these suck, but
b) Brainstorming -- Recent studies suggesting that it's ineffective are intruiging, but I wonder to what extent group cohesion matters? Cohesive groups where we're less worried about looking bad might be more effective.
c) Pair programming -- even though I'd definitely consider myself an introvert, pair programming doesn't rise to the level of social invasiveness that I would find problematic. In other words, most introverts dislike being around large groups, strangers, trying to chit-chat/schmooze, etc... but are often find around smaller groups of people they know and get along with. So I'd be hesitant to group pair programming with the others. OTOH, I've never had to do it all day long, so I'm not sure how that feels. Can anyone speak to that?
In the article, a study found that adding the debating or critiquing back to the process improved creativity. You would also think that introverts would feel even more stifled in such a situation, wouldn't you?
No, I think debating/critiquing is exactly the structured type of discussion that introverts thrive at. It's the unstructured "say whatever comes to your mind" part of brainstorming that we don't do well at.
I've done it all day. It's really great when you want to, and really shitty when you don't want to. I'd say it's all about whether your devs want to naturally pair, and you shouldn't force them to work any which way.
My biggest problem with Agile is that it touts itself as THE way you should work. When you're constantly working with all different kinds of minds, it's hard to say conclusively that ONE SYSTEM will work for EVERYONE.
I will say that as a pseudo-introvert (can function in large groups but prefers small, intimate conversations most of the time), I do enjoy pair programming because I learn so much. It's best to pair an unexperienced but knowledgable dev up with a veteran to either the current project or the current problem. The combination of naive creativity with tried-and-true procedure is the best of both worlds, and truly impossible with a single person, in my opinion.
As most of the comments pointed out the problem is not with agile but rather with the tendency to only have one way to solve a problem and mostly ignore that we are individuals with rather different needs.
With respect to brainstorming I had session that worked fantastically and others that don't, and in my opinion in session that don't work there is someone that has power over the majority of the group and is simply dictating what happens in the brainstorming session.
On the one hand, many of the smartest people need significant amounts of time alone to think through their work. On the other, so many decisions an individual in a team makes are constrained by the requirements of the rest of the team. To find these out, you need to coordinate with the team, and that's much easier when everyone is physically together.
In our startup, we deal with this tradeoff with two spatial configurations. We spend part of our time together in an open space where interruptions are common and expected. We spend the rest of our time miles apart, occasionally coordinating over email and IM whenever needed.
Perhaps one way to achieve this in larger teams is to block off large chunks of the week during which it is understood no one interrupts anyone else. Weekends already play this role for many people I know. They often work for a good chunk of the weekend, but are not expected to take calls or return emails. It's when they do some of their deepest thinking and best writing.
I'm sorry, but I have started putting my foot down with my work and saying that the weekend is mine. I have come to the conclusion that working hard 24/7 is starting to wear me out and is starting to make me resentful.
I'm available throughout the week, if you can't provide and environment for me where I can be productive because of for example an open floor plan then I am not going to spend my time for you.
I have been very fortunate though in that I have a very understanding boss that lets me work whatever hours I please (I generally get to the office by around 1000/1030 and leave at around 1800/1900) and that has helped my productivity quite a bit as well because I am sleeping on my own sleep schedule that works for me, and at the tail end of the day when I am most productive the office is empty and quiet and I can get my work done.
I'm assuming 'miles apart' is working from home or cafe?
I really like the idea of two spatial configurations. Personally, I work remote for a small company that is mostly local - I visit the office a couple times a year and love the personal time for face-to-face discussion, etc. If I could have that a couple times a week, or a hour a day, I would love it.
The New York Times article the post initially links to is a lot more interesting. Besides debunking formal brainstorming processes, it also points out the increasing necessity of creative group work, as well as strategies that are quite effective. Examples include MIT's chaotic Building 20, and the sweet spot of "familiar but not too familiar" in hit Broadway musical teams.
Perhaps Agile with a capital A does hold something in common with the formal technique of brainstorming. The key point of the Lehrer piece is that in order for group creativity to flourish you need to foster debate and disagreement, not just uncritical free association in a conference room. And even then, it's good not to put too much formal process in place, because the best interactions are unscripted. But this in turn solidifies the need for work spaces that maximize the chance for these encounters.
I've commented on this before, but I'll reiterate that in my experience, 3-5 person team rooms work best. Smaller teams tend to be the most successful at breaking large problems up into smaller, shippable chunks. Also, they can minimize the distractions by controlling their own space.
If an individual needs private time, I think a generous work-from-home policy can do wonders. Give a person 2 days of the week to work from home and let the team self manage time in/out of the office. Letting the team work out scheduling helps them maximize productivity with both group-think and individual contributions.
The most interesting thing in my mind is not which type of office plan is best for which type of person, but that no one can ever agree on the answer. Maybe the right solution is to allow a mix of plans? Let people have private offices that want them, and an open plan for those that want that too. True, it won't be perfect and there might be some issues with teams mixing up different types too much, but overall it might be better than only having one type of floorplan.
Generally I find with programming and problem solving problems I work well with a mix of time alone to implement and try ideas followed by some time discussing the problem with others. Often just talking through a problem leads to a solution you hadn't considered, or someone else's input forces you to think about other aspects of the problem. However, trying to actually implement the solution with someone looking over your shoulder definitely doesn't help.
My biggest problem is this equates Agile to Scrum, pair programming, and open floor plans.
Agile is also dev practices: refactoring, TDD, unit testing, continuous build, etc. Agile = faster development and accelerated deliverability. Sure, cooperation and breaking down silos is part of it but introverts can unit test. (Learn more: http://j.mp/Hex2Uy)
At my current place of work I have the choice of working in a 2-person office or on the (semi-)open floor. Working on the open floor can be frustrating with the distraction, but it has natural light. Working in an office is productive but without the light it's depressing.
My current compromise is to enjoy the natural light on the floor and use earplugs when I really need to concentrate.
I've been saying this for a while, but the "inmates have taken over the asylum". Not only that, but "Agile" is subject to really loose interpretations and it suffers as a result, both in implementation and practice.
I agree with the points in the article that brainstorming is unhelpful and pair programming can be useful. I have yet to attend a meeting at work with more than one person that has yielded anything useful. In those meetings the extroverts take over and the introverts are left in the corner twiddling their thumbs. If we were given access to the meeting agenda beforehand, and were given time to work on the points individually beforehand, the meeting may actually be productive.
I don't think agile is necessarily anti-introverts. Pair programming isn't the beginning and end of agile. You can have agile while giving each programmer a private office and encouraging them to interact as needed in a common space. You can just as easily have waterfall where everyone is crammed into an open-plan office.
But of course, in practice, buzzwords tend to get abused by extraverts to describe whatever they want.
Why are we bending over backwards for Introverts? If you can't work on a team and socialize to the degree that you will be a functional team member, you probably should think about getting some kind of therapy before getting a job as a developer.
Any project that gets bigger than a few thousand lines of code can't be maintained by a lone developer. It also requires some sort of socialization. Every placed I've ever worked required me to talk to other developers because my code would most likely be touching theirs to some degree or I would need to get info on something I would be working on.
Because some social interaction is necessary, allowing anything less than constant total social immersion is "bending over backwards for Introverts" and anyone who desires such is useless dead weight. Anyone who thinks that it might be useful to have even ten minutes of peace and quiet to be able to type or think without interruption is clearly delusional, because all thinking is done as part of a conversation.
The entire point of the article is not to discount these things because they are useless, but to discount them because a small percentage of the population find them uncomfortable.
Funny, that's not what it said when I read it.
Those things can be useful but, since other (opposite) things can be useful and even necessary as well, practicing them to the exclusion of all else like you're suggesting is stupid and counter-productive.
I think you're being downvoted because your opinions are grossly misinformed. 40-50+% of the US population could be classified as introverts (1). This couldn't in any way be called "a small percentage".
Introversion is a personality trait, with advantages and disadvantages. To say that introverts "should think about getting some kind of therapy" simply for being introverts is simply irrational prejudice.
Because a large proportion of developers are introverts. Even if you're not an introvert, there's a good deal of evidence to suggest that you won't do well at concentration tasks when there are multiple distractions in the background.
I'm probably what you'd call an introvert. I get along fine with most people. I have no problem chatting about work and non-work subjects. I have no problem helping others with a coding problem, or asking for help when I have one. But I can't sit literally elbow-to-elbow with another person and share a keyboard for much longer than 10 minutes at a time.
My creative output happens mostly when I'm working in a solitary, focused manner. When we adopted mandatory pair programming it destroyed my productivity and my enjoyment of work to the point that I had to quit.
Sure you can. Introverts make up a large fraction of the population (just have a look at this poll). If Agile is reduces the quality of their work, then the "pack" may well be better off without it.
What collaborative face-to-face environment doesn't reduce the quality of introverts' work?
Most work environments today are open, regardless of industry. Strong personalities and herd thinking exist outside of the tech world too.
Pointing the finger at agile might get eyeballs, but you have to keep in mind that open office plans have been popular long before Agile became a mainstream buzzword, probably because they're cheaper than putting up walls. I tend to think the Japanese management fad of the 80s probably had a little to do with it too.
And not every group practising agile is pair programming.
I am no fan of Agile, and as a former introvert, I can say that the only thing that stifled me in my introverted days was my own introversion.
Your comment here is a bit terse, but I'm going to read it as promoting having options and agree with you based on that.
I think that it is quite possible that Agile doesn't serve the best interests of introverted programmers, but I disagree that this is a bad thing for programming as a whole.
There are plenty of introverted programmers. If the dominant office/workflow structure of the day makes them less productive than they would be on their own, that creates a huge opportunity for an office/workflow structure that makes introverted programmers more productive than they would be on their own.
On the other hand, I think that some percentage of introverted programmers who don't take a shine to Agile could search forever for an office/workflow structure that they like and never find one, because their issue is mainly with collaboration and exposing their work to criticism while it is still in mid-process.
This group of malcontents can be subdivided still further into those who can make it on their own and those who really would benefit from the sort of collaboration and criticism that they resist. It is this last group that aren't merely introverted, they are also faint of heart. I spend about 40-50% of my time in this category and it's real bad. I take solace in my relative youth and inexperience, I need to know that I won't be this sort of introvert for long.
My point was that there is not one perfect solution that fits for everything, this approach is negative as a whole. This video is just from another industry where they tried it in another area. It shows the corporate mentality in tackling problems.
The reality is much more complex especially when it comes to people with different needs. This makes it probably more difficult for companies, but when they produce software they have to invest in finding the best "solutions".