Secondly, people who have never been managers often don't understand the externalities. As a manager, I've been asked "Why should the devs get so much better computers/bigger screens etc than us?" Different conditions can create an intense feeling of unfairness among people who don't get those conditions. Those types of things can wreck the culture at a company.
Finally, open space is much much more flexible, so easier to change up when you need people to sprint together on a thing, when you need to scale up your team etc. Offices are extremely inflexible and typically anchorpoints for people's perception of their own status. Therefore once someone has an office, it's practically impossible to get them to not have one any more, even if circumstances have significantly changed.
It's easy to blame management but it may well be that management have a totally different set of problems to consider than you.
If devs are burning through tickets yet building the wrong thing, it’s not the office layout that is the problem. So having an open office environment while changing nothing else in that example simply means they are going to build the wrong thing much more slowly.
You are correct that it’s hard to come back to open space after having an office, but it isn’t for the reasons you mention. The reason is simply because open offices suck.
I don't like open offices either but I don't know if you can throw that out there. Private offices offers a degree of separation (so does working from home) that will probably reduce certain types of both beneficial and nonbeneficial communication.
Those people are ecstatic because everything is working for them.
Many people choose to suffer in silence. So if the office plan is part of their problem they won't complain very loudly. The conversations you see on the internet won't have their input and so what you witness in these threads seems pretty split.
Anyone like me, who tries to play ombudsman, goes around and tries to figure out what people actually think and make sure they get what they need. This is fairly effectively hamstrung by an open office plan because you can't express your fears and doubts in a one-on-one situation. You can't negotiate and coach them to something actionable.
The usual response at this point is "so get a meeting room". Yeah, the thing is that when you take out private offices and put in group work areas, you need to more than double your meeting rooms because you just nearly doubled the number of people you can fit in the building. But that totally ruins your pie chart showing how much cheaper you made your developers, so nobody does the right thing.
(Also, the next time someone increases density at your offices, I highly encourage you to check out the OSHA laws governing the number of people allowed per bathroom stall per gender. It's a good bet your company is violating the rules, or will if they fill all those cubicles)
True, but in many cases, one good way to optimise the productivity of the system as a whole is exactly to optimize productivity locally.
Productivity of the system as a whole is significantly improved by communication.
Yes, but being in an office doesn't mean "no communication". Neither does being in an open environment guarantee effective, efficient communication.
Devs in offices may burn through a ton of tickets very productively achieving failure by building the wrong thing.
Same for devs in an open plan environment.
That's an overly-generalized statement. Communication is sometimes helpful, when the people involved are good communicators. Often it's a source of distraction, e.g. email chains with multiple people replying-all to a topic that is at best tangential to what you're working on. There's also an equivalent that occurs with meetings in which people invite everyone they can imagine having any interest in a topic. This strategy has a wonderful way of bringing together a large number of people, most of whom have no valuable input, or interest, in the topic at hand.
The more detailed a job is, the more uninterrupted time it requires. So, if you want quality work and don't want to push the due date, give the person doing the work some uninterrupted time.
I've been a developer for 26 years professionally and, outside IT, I ran a 501(c)(3) of several hundred people. Yes, you can leave people alone to get work done without compromising organizational goals.
Status, envy, screen size - this is all bullshit. You have never been a good dev.
And in one line you've summarised WHY general office workers often think tech people are blinkered and entitled with poor social skills. The personal attack wasn't warranted when someone was trying to explain another perspectives.
These are all serious people-management challenges that require competent people-managers working in cooperation to deal with effectively.
What sort of change are you imagining which means someone should stop having an office?
That already shows the problem. Why are offices by rank and not by need? From a rational point of view the big guys probably dodn't even need an office because they are either in meeting rooms or traveling. I don't want an office as status symbol but as a place where I can actually think clearly.
As for the rest, you can argue all you want about status symbols and proxies, but once they're entrenched in the company culture it's next to impossible to change them. Rationality doesn't enter this picture... Or when it does it's through cost-cutting initiatives, and we all know how those are great for morale and boosting productivity.
If it is a money problem, don’t lie to developers and tell them that it is “to encourage collaboration” i.e. don’t pee on my leg and tell me it’s raining.
If management truly believes in the collaboration meme, I fully expect them to share a big office. After all, what could be more important than having the gears of management fully meshed?
Either hire low skilled cooks to make your product and control them rigidly (like McDanals) or hire chefs. You can imaging how unhappy (!) a chef would be if you treated them like a Mcdonalds worker.
Overall, engineers think they are Chefs but we all know that this view isn't shared by senior management in many organisations. So to get an exception for developers to share offices while everyone works in open plan would need special evidence. I don't think the evidence for productivity problems for developers is decisive. None of the tech behemoths made it into a big issue - so there's no PR sale of "do it like Google". It doesn't feel like you could tell a CEO that it's _obvious_ that offices are better - it would just sound like special pleading.
You're right that offices are very expensive: the cost savings can be pretty significant. Even industries where it's traditional to have offices (legal) are moving away from it.
It will never be “obvious” to CEO’s that limiting interruptions to developers makes a difference if their mental model won't allow them to consider it.
It’s a bit like the use of torture, studies show that it isn’t effective but that doesn’t stop people from employing it and believing it is effective.
A company with big shared tables for developers is sending the message that the company doesn’t think of devs as “chefs” but as “code monkeys”. Developers should consider this when choosing who they work for.
Oh 2002 kicked quite a few asses out of offices and back into cubes.
They will ignore and steamroll any opinion that does not fit whatever arbitrary metric they need to meet, and when your dire predictions come true they will act like there was no possible way to expect them.
I've watched a lot of very highly paid people dive into deeply technical and interesting problems that nobody needed a solution to, and fight to protect their time so they could finish. That wastes more time and money than meetings.
Why do you think planning and management is treating people like children?
How do you know what needs to be done? Are you sure you know what needs to be done?
I said stuff like this when I was young just starting out writing software in the film industry. There were dailies and rounds, progress updates twice a day, and I fought them. I was wrong, and it took time for me to understand why.
In my experience since then as both an engineer and a manager, it's clear that knowing what needs to be done at all times is very difficult, and unless you're a one person shop or in research, it involves talking to other people frequently.
If we knew what needed to be done, businesses would never fail, over-engineering wouldn't exist, no deadlines would ever be missed, and no budgets would ever over-run. I've seen a lot of people who think they know what needs to be done. I've never met someone who actually knows what needs to be done most of the time. If you do, you should manage instead of writing code.
FWIW, I don't know if this will help you or irritate you, but as a manager, your response sounds to me (ironically) quite immature. if I got this response from someone on my team, it would be a huge red flag.
Nothing of the things you describe will be prevented by daily status meetings and sitting in one big noisy room.
That does depend entirely on the kind of work you're doing. In film & games, daily is truly necessary. In pure software at LargeCorp, yeah daily status is too much, but it's common to need recurring periods of daily planning. In high flux environments like a small startup, I don't know how to avoid the constant stream of interruption & planning.
Your suggestion of what's wrong feels different than what I imagine as healthy, so I get the feeling we're talking past each other. I don't want constant meetings at all, and I don't love open offices either. But I do want devs to not go off the rails, which even the "adult" professional ones tend to in my experience. As a manager, you've never had devs who would rather work on something other than what the team is supposed to be producing, and rationalize it convincingly and with professionalism?
What is the right frequency of communication at your job? As a manager, you're responsible for team estimates and team progress reports to your manager, no? You are also responsible, I presume, for technical leadership, information sharing, establishing best practices, assisting devs who need help, etc.? Do people on your team ever get stuck and spin their wheels? How often do you track & report your team's progress? Are you putting most of those activities in a different category than meetings? Are you scheduling updates on a Maker's schedule?
My observation from the few large companies I know is that there is a huge layer of management types who basically report to each other and create a lot of busywork without real output. If a developer doesn't know how long something will take they will grill him for estimates until he gives the politically correct number. I rarely see any of them engage in the real problem or help solving them. It's always "When is it done?". And they certainly never listen to complaints and actually act on them. The A/C making a guy sick constantly because it's too cold? This is what a manager should fix but typically they don't. Workplace too loud? Fix it! Stop calling meetings to discuss that already have been discussed.
You can't plan your way to success. It can only be done by actually working.
You’re not kidding. I either get straight up told what the point estimate will be or if I’m lucky I get a couple of numbers to choose from.
Also, not all teams have poor management. That you worked in the film industry where supposedly people had no idea of the priorities daily says nothing about the software industry in general.
My last several jobs involved sync meetings once every 5-10 days. Every meeting took 5 to 15 minutes and we all knew exactly what to do. Intermittent meetings only happened when somebody was blocked.
As a manager, I have never been consulted about work space beyond a general "how do you want to arrange these desks we bought for you?" kind of way.