A lot is going to depend on how really difficult the work is. If you must establish and maintain flow then you need a quiet, no distractions environment (unless you're one of the rare sort who can ignore your environment ... I can when I'm doing intense debugging).
I hope you're statement is based on more than your experience at Microsoft or at least them as of late, it's pretty clear that they've become seriously dysfunctional.
Open spaces "foster teams that talk to each other, constantly, about the product".
Well, that's nice, but when does the actual creation of the product occur? And how truly difficult are the products developed in these sorts of environments? E.g. are you just bolting together existing "parts" and the user visible stuff is overwhelmingly critical? ADDED: or are you doing something like ViaWeb (the extreme level of store customization that was never replicated in C++).
If you have people who absent a panopticon are "sneaking off to some vice website every 5 minutes" then you've got much greater problems than anything related to your environment. They're not dedicated to the project, perhaps because they don't have what it takes, perhaps because you've failed to create the necessary conditions. Either way, I don't see any good alternative to solving the root problem (and if your company is a really bad and dis-motivating place, why are you still there???).
These are all good points. Perhaps the reality is something like physical layout of the office doesn't influence things as much as the team itself. However, something as simple as physical layout still will affect things at least to a degree.
I know that there's a well established rule of thumb that states close collaboration just doesn't tend to happen beyond 30??? feet or a single staircase (i.e. people further apart just don't tend to collaborate). This is of great interest to universities and other places that do research, you should be able to find something, maybe in Peopleware (which if you haven't yet read you want to anyway).
True. However they also say: "...enclosed offices need not be one-person offices. The two- or three- or four-person office makes a lot more sense, particularly if office groupings can be made to align with work groups."
I think there needs to be a balance between private/semi-private team space and individual private space within the team space.
Indeed. It was, however, written in a very different period of software development and one could argue that it may be less applicable to the the "bolt things together", MVP consumer product/site sort of project that is the greatest?/primary?? focus of HN/YC/today's angels funding.
(To emphasize how different, we can be pretty sure that very few if any of the programmers studied had a memory budget even close to what's been in mainstream CPU caches for some years.)
For another example, see MIT's termination of SICP/6.001/Scheme with extreme prejudice and replacing it with Python based "bolt together" course(s) (I don't know anything about 6.02, but the initial 6.01 robot project is just that ... which is not to say that it's easy, e.g. it requires the use of differential equations and its labs are very instructor intensive, to the point the department is recruiting upper-classmen to help).
MIT believes that things have fundamentally changed....
I hope you're statement is based on more than your experience at Microsoft or at least them as of late, it's pretty clear that they've become seriously dysfunctional.
Open spaces "foster teams that talk to each other, constantly, about the product".
Well, that's nice, but when does the actual creation of the product occur? And how truly difficult are the products developed in these sorts of environments? E.g. are you just bolting together existing "parts" and the user visible stuff is overwhelmingly critical? ADDED: or are you doing something like ViaWeb (the extreme level of store customization that was never replicated in C++).
If you have people who absent a panopticon are "sneaking off to some vice website every 5 minutes" then you've got much greater problems than anything related to your environment. They're not dedicated to the project, perhaps because they don't have what it takes, perhaps because you've failed to create the necessary conditions. Either way, I don't see any good alternative to solving the root problem (and if your company is a really bad and dis-motivating place, why are you still there???).