As with most things, the truth is somewhere in the middle of two extremes. When you are developing a new product there are big changes being made all of the time, and you need good communication in the dev team so that everyone can stay abreast of what's happening - there is a good chance that the changes I am making will have a direct impact on your work. The size of the team also tends to be small, making the "openspace" much closer to a "team office" in a larger company.
This is pretty much the optimal situation for an openspace floor layout. Now compare that with the situation in a more mature company. The first thing any sane lead engineer wants to do once v1.0 is out the door and making money, is to pay down on the inherited technical debt. Organise code so that it is modularised, so that changes in one area don't have a major impact on other areas. As money is being made, the team starts to expand as well, so simultaneously you have less need for close interaction between team members (due to improved software structure) and greater opportunity to be distracted by irrelevant discussions, as the scope of the product has now grown so much that most of the engineers will never master all of it, but instead become experts in one particular aspect.
Let me give you a real-world example from my current job. At the moment, I'm deep in the source code of an OpenGL driver, identifying performance problems. The thing is, we already have a product, and it works well, but it uses a 2D graphics APIs, and the designers want iOS7-style blurring. So I've re-implemented the graphics APIs using OpenGL. This is completely independant work. No-one else knows OpenGL, and none of them even see the API, as it's hidden behind a facade that they already know. I had pretty much zero interaction with the team whilst implementing the OpenGL backend, as all I had to do was implement an existing API. I now still have zero interaction, because if the team don't know much about using OpenGL, they know even less about how it's implemented under the hood. I don't need to know about their problems with what happens when the user presses "back", and they don't need to know about my problems with the vsync callback.
Yet, we are still in an openspace. The designer with the ridiculously loud laugh is still distracting me every thirty minutes or so. The two guys having a discussion about the latest ministry shake up in the government, yup, they're doing that about 2m from my ears and not making it any easier for me to concentrate. They programmer talking about the first run sequence with a project manager one desk over? Absolutely of no interest to me.
OK, so much for why openspaces objectively suck once your past the project startup phase. Why do ex-developers / current-CEOs still stay with openspaces? You would have to ask them, but maybe it's because they remember how wonderfully productive it was at the start of the adventure and don't realise that the situation has changed. Or maybe their much more interested in raking in the cash,and are now just waiting to flip the company - future productivity is of no interest. Keeping the costs down to make the company more attractive to buyers though, that might be very interesting to them. Anyway, the fact that they persist with openspaces is not necessarily a ringing endorsement for openspaces.
This is pretty much the optimal situation for an openspace floor layout. Now compare that with the situation in a more mature company. The first thing any sane lead engineer wants to do once v1.0 is out the door and making money, is to pay down on the inherited technical debt. Organise code so that it is modularised, so that changes in one area don't have a major impact on other areas. As money is being made, the team starts to expand as well, so simultaneously you have less need for close interaction between team members (due to improved software structure) and greater opportunity to be distracted by irrelevant discussions, as the scope of the product has now grown so much that most of the engineers will never master all of it, but instead become experts in one particular aspect.
Let me give you a real-world example from my current job. At the moment, I'm deep in the source code of an OpenGL driver, identifying performance problems. The thing is, we already have a product, and it works well, but it uses a 2D graphics APIs, and the designers want iOS7-style blurring. So I've re-implemented the graphics APIs using OpenGL. This is completely independant work. No-one else knows OpenGL, and none of them even see the API, as it's hidden behind a facade that they already know. I had pretty much zero interaction with the team whilst implementing the OpenGL backend, as all I had to do was implement an existing API. I now still have zero interaction, because if the team don't know much about using OpenGL, they know even less about how it's implemented under the hood. I don't need to know about their problems with what happens when the user presses "back", and they don't need to know about my problems with the vsync callback.
Yet, we are still in an openspace. The designer with the ridiculously loud laugh is still distracting me every thirty minutes or so. The two guys having a discussion about the latest ministry shake up in the government, yup, they're doing that about 2m from my ears and not making it any easier for me to concentrate. They programmer talking about the first run sequence with a project manager one desk over? Absolutely of no interest to me.
OK, so much for why openspaces objectively suck once your past the project startup phase. Why do ex-developers / current-CEOs still stay with openspaces? You would have to ask them, but maybe it's because they remember how wonderfully productive it was at the start of the adventure and don't realise that the situation has changed. Or maybe their much more interested in raking in the cash,and are now just waiting to flip the company - future productivity is of no interest. Keeping the costs down to make the company more attractive to buyers though, that might be very interesting to them. Anyway, the fact that they persist with openspaces is not necessarily a ringing endorsement for openspaces.