Programmers really need open floor plans
I'm sure these articles worked as designed - as click bait - but I want to offer an alternative viewpoint.
Marketing of Private Offices
First though, let's admire the clever talk and article.
Joel is great at marketing and branding. I remember reading the original "programmers have private offices" marketing schtick many years ago and loved it. It was a great branding tool and setup his company as a premier brand - the first "boutique" dev shop I'd encountered.
As a developer, I certainly fell for it and aspired to that level.
The branding was that we only hire the best, and the best need penthouse Manhattan offices, with closing doors, natural light, the best equipment and $1000 chairs.
Angels sang whenever they released software. Fogbugz was a big hit, and I used it myself, partly (mainly?) because of the branding.
In the GeekWire talk though, you can sometimes spot the blatant spin, like where it was described that developers in the flow can focus for two hours and do two weeks work "or somewhere in that realm".
It wasn't Joel that said that, but come on.
Then when discussing the new Facebook office, it was mentioned that 99% of commenters on Hacker News said, ‘I would hate to work there.'
Unfortunately this effect is well known - when asking any question you'll tend to hear more comments from haters than lovers, and get many more click-throughs from a negative headline than a positive one.
It's called Negativity Bias.
It's hardly surprising that everyone would choose a peaceful window office with a cool salty breeze blowing off the coral reef, given a choice.
That's not really the point. Most would choose a Ferrari over a Toyota too.
30 years of office environments
Working in a private office or high-sided cube - or even from home - can work, but my experience is that it works much less often.
One large company who had high-sided cubes that stretched for miles, is regularly described by all who worked there as a place you go to die.
"If someone died in a cube it would take 6 weeks to notice" and "Remove half the people there and you'd improve productivity" are common jokes.
A team member at another company with cubes admitted that he had never met or talked to an engineer that we found working in the next row, perhaps 15 feet away.
These environments are not conducive to collaboration.
It isn't a black/white issue though. Another company had almost all of their engineers working from home, but it did work because they kept IM channels open continuously, with non-technical social chat rooms being the busiest. They had virtually replicated the open office environment.
It's difficult to quantify "happy", but my perception of the top three happiest teams I've worked with have all worked in open environments.
Others may, of course, argue that happy != productive. To that I'd offer that unhappy does equal unproductive, so happy is a good start.
Advantages of an open office
I associate happy teams with trust, openness and ultimately a better product.
Happy teams bond socially, not just technically. When recruiting, hire people you'd drink a beer with, and that the team wants to work with. Social interaction is easier in open environments, face-to-face.
There is more energy in open environments - hard to quantify, but look around and you'll feel it. Product is being made. Whiteboards are full. Keyboards are clacking. Occasional laughter (heaven forbid).
When needed, collaboration comes easy in an open environment. No need to send an email, create a meeting, book a room and invite everyone that needs to be cc'd.
Requirements never tell the whole story, no matter what we hope and strive for, so embrace and encourage conversation between teams as early as possible.
Ask questions without fear, clarify the requirements, move on. More shared information, less obstructions, less secrets.
Mentoring, Peer review and Pair programming become easier too, and any whiteboard discussions on architecture or design are more likely to permeate to others on the team.
Open office ground rules
I agree that flow is important, and as Joel says "nothing compares to a quiet workplace". Yes, to some extent.
Quiet and open offices are not mutually exclusive. Music shouldn't be playing in open areas, nor phone calls taken. Meetings shouldn't be regularly held in open areas (standups are one exception).
Instead, provide private rooms off the open area that can be used for one-on-ones, extended team meetings, phone calls and other similarly distracting conversations.
In certain circumstances these rooms can even be booked as war rooms when an emergency team has to become especially collaborative for a week or two.
Provide lounge areas where social conversations are even encouraged, so those that want to take a semi-break can migrate there with laptops and coffee occasionally.
If you need some boundaries on the open conversations, questions, mentoring, etc, experiment with "office hours" - as an example, only interrupt certain team members in the hour following standup and lunch.