The situation was especially bad at one recent job where the lunch conversations always revolved around local sports, which I had no interest in, or this guy remodeling his house, which was only interesting the first 3 times he gave us an update. So I started bringing sandwiches to work, parking in the garage beneath the building, and eating lunch all alone in my car in the dark, listening to NPR or just enjoying the silence. It was the most refreshing hour of my workday and I felt 200% more productive after that break than I would after 30 minutes of small talk about sports.
I just want to point this out to people who think team lunches should be mandatory. Not everyone enjoys them equally, and it's not always just about the food.
But over time, as my work responsibilities have increased (and my work stress), I've learned to value meal time as a moment of peace in a stressful day -- an island of solitude. I take meals now with purpose, savoring every bite, spending the time to enjoy the food and simply enjoy the act of eating. I seek out places with nice atmospheres and good quality food.
As a result my health is better, my stress is better managed, and I find the pacing aspect of it keeps my head in the game when I return to work.
It's been an important lesson I've continued to enjoy.
I know other people who don't like this, maybe it's an introvert/extrovert thing. But the 30min-1hr lunch where I really just enjoy my own thoughts really gives me a second wind...especially late in the week.
Everything changed when I started at Stack though. As an introverted person I don't always want to be alone, but being alone is what makes me "recharge" so to speak. What's nice about having a private office all the time is I can choose to communicate with other people or not, there's always long-running Google Hangouts I can drop into if I just want to talk to another human being, or I can choose to be alone by myself for the entire day. Lunch though, is the only time I get face to face with my coworkers and it turns out I kind of miss that from being in an open office environment.
There's lots of people here that work on different teams and do drastically different things than me which would make it so I wouldn't communicate with them at all if I didn't simply grab lunch at the office and sit down at a random table.
I definitely agree with you that lunch as a team should never be mandatory though, it's asinine to steal an extra hour or whatever from everyone at your company with the goal of "morale" or whatever they want to say behind it. I'm super happy with the setup at Stack though, it works pretty well.
Are you really doing this? My personal record ( when I was a full time employee ) was 4 hours of summed coding time ( I track my time with RescueTime [1] ).
I was usually finding myself to code ( commit actual features and finding cause of bugs ) 2 hours before noon and 2 hours after lunch.
The other time I was usually in meetings / discussing issues / planning / writing documentation / improving dev environment / e-mail / communication with team.
Working as a consultant, we always went out for lunch. After getting used to it (as a hard defined break from work), I can't imagine just staying at work all day without giving my mind a break.
If I don't leave work now, my productivity is shit in the afternoon. Well shittier than normal. As a morning person, I get 90% of my work done before lunch and tie up loose ends after lunch and plan the next days/weeks. Flex time is nice too, coming in to work at 5-6am then lunch at 11, home at 3 rocks.
In situations where I had a private office, I was more receptive to socializing with my coworkers.
While there is no "typical manager" it's safe to say that if you sample any given company and take all their managers and executives you won't find a lot of coders. Executives don't sit around talking about Rust vs Go, because it really isn't that important to their business most of the time. So they really have no idea what it's like to be a coder, and probably don't take up a lot of cycles thinking about it.
Most jobs do benefit from collaboration. Development is no exception, however too much socialization and interruptions kill us. This is what they fail to understand on most levels. They see sales, marketing, and other groups that benefit from being able to swivel a chair and ask a question and automatically assume that it will help developers, since they "never meet their deadlines" anyway.
So in my opinion the push for open offices for coders is mostly out of touch thinking, a little need for micromanagement, and of course being able to show off work being done for people taking a walk through. How that affects developers is of little concern.
I did a Master's degree that shared half its classes with the MBA, and we had some case studies where a consultant was the hero by literally tearing down a wall between sales and operations (the small company had communication and "empathy" issues).
I always end up linking to this summary of Chapter 12 of Peopleware:
I guess that could be applied to physical space...
My boss insists it makes everyone more "open."
When you pay someone and you control both their place and time for over 1/3 of their daily life, there are inherent problems. I'm not sure that any office plan is ever going to be super ideal because of the fundamental problems of power and control that come with an employer/employee relationship.
Open plans are designed to look cool and help recruiting. They also create a sense of "busyness" that owners and managers love. Busyness is proof they are still in charge.
Arguing about wether or not it is better for productivity is a red herring. It was never about productivity in the first place. Most of what happens in an office is only tangentially related to the idea of work efficiency.
Maybe I've just had some poor experiences but I find it is safe to assume that the majority of decisions around office configuration, benefits, salary, etc., are made based on power dynamics, ego, and bean counting (which is itself a means of exerting control) rather than any other reason, especially rather than after considered thought given to employees' needs and desires.
I would phrase it slightly differently.
We understand full well the world in general doesn't work this way. But we want to carve out a small part of the world where things do work this way, as much as possible.
I think Fog Creek (now Stack Exchange) is trying to embody this ideal in how they have structured their offices. Joel was a developer, and designed his office space in a way that he believes will lead to the greatest possible productivity for his developers.
So the biggest criticism is aimed towards places like Facebook, Google, and other software firms who pay lip service to geek ideals, but prove in how they lay out their office spaces what they really care about.
http://en.wikipedia.org/wiki/Theory_of_the_firm
Apparently most relocations are closer to the CEOs home, for example:
https://news.ycombinator.com/item?id=8604202
New buildings are also monuments to the CEO (or President, or whatever authority builds it).
That's the perspective of the owner at the very top.
> just to give people in power a place to harumph about
That's the perspective of the management crowd.
I don't doubt that it's a fine place to work, likely nicer than the cubicles I've worked in, though maybe not better than my home office. But they're clearly not private.
[1] From a caption on the original version of the page.
The panopticon metaphor is apt - I feel uncomfortable taking well-deserved minute-long breaks when I have no privacy.
People might be able to adopt, but that's actually the worst part of the open floor plan for me: The constant feeling of people in your back.
I don't need a door. I need a wall. Right behind me.
I will say I think Microsoft's little offices are better overall. The ones I've seen have four real walls, a wooden door, and a window to outside with a blind on it. So if you want to work in the dark, you can.
Stackoverflow's glass offices mean that you cannot shut out the light, have to deal with any glare, may get distracted with what is going on in the offices either side of yours, and it means people can look over your shoulder whenever they choose.
They would be perfectly good offices with full length blinds on them. But then the people next to you may complain that you're blocking their natural light. But overall they still aren't even near the worst around...
I don't have any issues with glare or anything since all of our windows have nice blinds that anyone can adjust, some of them even have two sets of blinds (regular and complete block-out blinds) if you would like to make the surrounding area as dark as possible.
Not all walls of our offices are glass too, we should've mentioned that in the blog post but it seemed pedantic. All offices have glass doors but they also have walls (painted with white board paint!), here's what my office looks like from the door in the previous picture: http://i.imgur.com/2n3nDkc.jpg
The only way I could get distracted by something that's happening in an office on either side of mine is by climbing up and looking at the 12" of glass on the top of the wall that's designed for allowing light to enter rooms that aren't facing windows (which I've definitely done before, it freaks people out, hilarious)
To be honest though, compared to the open work environments I used to work at any amount of glare is worth the change :)
But it's also important that actual discussions do take place in person with undivided attention, not being distracted by things going on around you. Miscommunications lead to fallouts between coworkers or employers and bosses.
As I developer I need my focus space. But I also want a separate place to be able to discuss things with coworkers -- as long as my workstation remains my castle, I'm happy to come out and go to meetings, do trainings, ask/answer questions, and hang out during lunchtime or breaks.
In my last place of work, we had two main teams, and their rooms were separated by a shared commons room, but this led to a divided culture. Everyone had laptops and each desk had a couple monitors, so every week, a couple people swapped out from each room and mixed up the teams. That alone helped our productivity and intra-office culture.
That really works: respect people's time even if you are in the shared, no-cube, open office world.
I think with open plans you're sharing a lot more germs too. How many times have your co-workers came into work sneezing? Even in a cube farm, those germs just spread. At least with an office you can keep you and your germs better confined.
Are there any companies out there who have a heterogeneous office layout, with open-space areas, single-person rooms and anything in between which could then be used by anyone to their own preference? I would like to see a setup where I'm able to work together with my team in a small-group environment in the morning, and then retreat to a single-person office in the afternoon. In most companies, there is very little reason to be bound to a single desk throughout the day.
I can imagine such a workplace, with team leads/managers being responsible to coordinating their teams when it comes to workplaces, and ideally the company would monitor the usage and constantly adapt and improve the workplace accordingly.
If you only provide hoteling, I think the majority of people will just claim a desk as theirs, and you effectively have no hoteling at all.
I'm pretty sure some do, and I'm pretty sure some don't. Heck, some people would prefer it for some time, and then not for some more. I certainly know that describes me pretty well.
My idea is not hoteling-only; it's the option you can choose and request, like any other you prefer; in case of any conflicts it would be up to the leads/managers to make the decision.
"If you only provide hoteling, I think the majority of people will just claim a desk as theirs, and you effectively have no hoteling at all."
The operating words being "I think". I think otherwise, and there is only one way to find out.
(Mind you, since our teams are distributed, there's often no such thing as "working together in a small-group environment" that doesn't involve being on a hangout, and everyone being in a private office helps immensely with that.)
(Disclaimer: I work remotely, in a team of > 50% remote workers, and believe it works very well)
Time to fight for remoting rights.
In addition to Stack Exchange, Microsoft was mentioned.
When I worked as a developer at Carnegie Mellon, I had an office shared with one or two other people (which was a nice perk, given the pay was much lower than industry).
Any others?
"Joel’s management philosophy is deceptively simple: hire smart people who get things done, and get the hell out of their way. The role of management is to give the people who actually do the work — the developers, designers, sysadmins, etc. — all the tools they need to get their jobs done, and then trust them to do the job!"
Let's say you work directly with about 15 people. The majority of those people are remote, with some local. The manager hangs back in meetings and listens for problems, and hurriedly works to resolve roadblocks for their direct reports. They also chime in occasionally if people need a reminder of a pressing high priority item or objective.
Now let's say those 15 people all come from different places and all have different ways of 'getting things done'. One person builds a unicycle in order to achieve the goal of 'transporting A to B'. Another person builds a bicycle. Yet another attempts to build a space shuttle.
If you're really really lucky, all of these different inventions and methods will simply mesh, and there will be no friction within the team, and things just churn on forever.
If you're dealing with smart, experienced people, there may be a lot of back-and-forth discussion while people try to figure out which kind of solution is the best.
If you're dealing with egocentric 'rock stars', absolutely nothing gets done unless someone basically bullies someone else into caving on their method.
Even if nobody actually ever voices a problem with the way someone else works, it is in a manager's interest to be invested in the past, present and future of the work produced. Legacy systems need to keep working, current designs need to be in-line with best practice, and planned work needs to be future-proof and maintainable. How do they do that by staying hands-off?
Where do I think Joel's management philosophy leaves you? If you're lucky, with product that mirrors the quality of your employees combined with their ability to form a single cohesive unit where everyone's work complements each other. If you're not lucky, you get arguments, delays, and code that doesn't support the goals of the project or the group.
---
On a completely unrelated note: Jesus would I love to have a full kitchen in my office. I would be inspired to try to cook creative dishes and share with my coworkers. And i'd spend more time in the office.
For me there is zero comparison, I enjoyed a shared office, loathed an open office beyond measure and absolutely love the peace and quiet that comes from working in a private office.
If my company isn't a success and I go back to regular employment I'm dreading that bit more than any other part of been employed.
I assume those aren't developers?
In-person conversations, while arguably higher-bandwidth, are only shared by the participants. You had to have been there.