Why do programmers need private offices with doors?
blobstreaming.org
blobstreaming.org
The Tokyo offices had enormous rooms, with long rows of desks, arranged by section/department. The section manager's desk was at the end of each row. VPs, with billion-dollar budgets, had small, schoolteacher-style desks, in the corner of the room.
These enormous rooms, with hundreds of engineers, were quiet as a library. They had carpeting, people wore "office slippers," and there was very little chit-chat.
American open-plan offices, on the other hand, resemble flea markets. Loud, somewhat chaotic, and distracting as hell.
But the Japanese also have a culture that is attuned to open-plan offices. When we would bring them to the US, they would be uncomfortable with cubicles and offices.
I have found that "one-size-fits-all" solutions, don't really work, across cultural boundaries.
One floor had an open-plan layout where people were open to chitchat, another open-plan floor that expected everyone to be quiet, and there was a floor with reservable cubicles or sound-proofed rooms. In general though, I do agree that the culture is on the quieter side.
I really enjoyed working there because the level of isolation was entirely up to you, depending on your mood.
It is interesting to note that they can integrate the best and worst elements of both aforementioned work cultures.
For me, US and UK culture was great for Open Office plan, as people were pretty silent and focused. Our Mexican culture is just crazy for that... we are noisy and chatty people, very "happy", and for that reason you just cannot focus in an open office environment. I enjoyed every time I went to our US office in a previous job, as we could actually sit down and work silently.
In the UK it was similar, but I worked in an international setting. So we had people from China, Iran and other nationalities in the same open office, and it was noisier. But not as noisy as Mexico, as people were not very "integrated" with each other.
It does sound like that office layout (as with most US office layouts) is designed to clearly reinforce the status hierarchy.
Oh, yeah. Hierarchy is very important, in Japanese business culture.
Not a praise of the outdated Prussian high school system in Japan - but another illustration that the culture is different.
I think there's a good balance to be struck, but I prefer Western work culture by far.
* I did manual labor on a factory production line to pay the bills in college
** Put 20 cent earplugs in your ear
Toyota sticks out in my mind, only because of the scale of the room. There were hundreds of desks in one large open space, and if you looked up from your desk you could see every last one of them. But I’ve seen it in other smaller Japenese companies as well.
I probably spent three weeks there, max.
Having people around me working on the same project is invaluable for me for
* asking quick questions and getting an instant answer. vs chat where I may not get an answer for hours.
* running ideas by others. This doesn't happen on chat for me, and VC is too scheduled.
* brainstorming. Same as above
* getting a feeling for what everyone is up to
Sure I can go read their notes but it's not the same. One happens by osmosis so zero effort, it just happens. The other requires scheduling time
* feeling part of a team, working on the same thing. I don't feel connected to me team at all working from home. I feel no more connection to them then when I call my bank and talk to a banker. Nor do I feel any connection to sit at a coffee shop and work around others who are not on the same team.
I get that others have different opinions and/or want to work from home. Me, I was lucky to work on things I wanted to work on with people who wanted to work on them (video games) for most of my career. It was super fun. It would not been even 5% as fun at home by myself.This is exactly the problem with open-plan offices: they always do really stupid stuff like this, putting mostly-quiet teams very close to very talkative and noisy teams, with no barrier between them. Then everyone wants to work from home where at least they won't be tormented by listening to the obnoxious sales guy yap on the phone all day and can have their pet keep them company.
All your other points are fine. People are motivated by a mix of external and internal triggers, and you are clearly skewed to the external side.
The thing I quoted is however why anyone geared towards the internal side of things will HATE to have to go to the office while you are there.
Programming requires deliberate thought gathered slowly into a complex matrix in your head before it finds its way to the pc through your keyboard.
Even though I am an extrovert through and through and strongly identify with the motivational aspects of being in an office, me not giving you an answer until an hour has gone probably means more overall productivity for the project than your instant unblocking at the office.
That’s really not that obvious. Things like this (being able to ask questions) and allowing other people to focus when they need are not incompatible.
It should be pretty easy to infer for most people whether it’s a good time to start a conversation with another person or maybe you should wait for a few minutes/hours/until the lunch break/whatever
You are saying that devs need to stay "in the flow". But when you are in the flow and suddenly you have something that blocks you because you have a simple question, the best way to stay in the flow is to ask the question and get the answer immediately. If I have to quit my flow, go on slack, ask on slack, wait 10 minutes, then re-explain because the other person did not get it, then re-wait, ... my flow is ruined.
What you are saying is, at the end of the day, when caricaturing a little bit, that you want your flow to be maintained, but you are happy to destroy the flow of others.
Instead you want to interrupt your own flow as well as that of others to get immediate feedback on simple issues?
Your last sentence is incredible. No, I don't want my own flow to be preserved at the expense of others'. That's why I ask async and do something else while I wait for them to be free. But neither should I be a necessary component of someone else's flow at the expense of my own.
'To keep my own flow, I need to destroy the flow of all my colleagues'
And not:
'My colleagues destroy my flow when they can't babysit me and respond to my questions asap, how dare they'
It's like driving and then going like: 'Gee, all these other drivers are sure in my way, I need them out of the road so I can get places'. Guess what buddy, they also gotta get places, so damn right follow the laws, wait for your turn patiently and you will get there when you get there. Your colleagues also have stuff to do, and the world doesn't revolve only around YOUR flow.
So write down your questions and observations in a coherent list, stop pinging people one question at a time, or search harder in the docs provided that they exist, sometimes that's even better as a learning experience.
Asking quick questions in such an environment is also not that much of a disturbance because most people are working on similar features at the moment and there's a high chance that they don't need to do the whole context switch to assist you. It's really highly productive.
For the times where you really needed some time for yourself, headphones work just fine. I wouldn't want to wear them all the time as even the best ones become uncomfortable after few hours, but that's also not really needed in a small shared room.
This is untrue for even small teams in my experience.
> For the times where you really needed some time for yourself, headphones work just fine.
Also not my experience.
There would be a large room off of a hallway, divided into 8 offices, arranged like this:
+---------+---------+
| | |
| | |
+-----+ -+- +-----+
| |
| | | |
+-----+ +-----+
| | | |
| |
+-----+ +-----+
| | | |
| |
+-------| |-------+
Each office had floor to ceiling walls, with a door and a large window. Need to be left along to do some deep work or deep thinking? Close your door. Want to be more sociable? Open your door. Put nice chairs or small sofas in the common area in the middle so people can hang out there when not doing something that requires being at their computer (e.g., reading printed documentation).The larger offices at the top can be used for more senior people, or the group manager, or for a lab, or a library, or a break room.
You could extend this to two teams working on different projects but under a common manager or senior engineer by putting them in separate clusters side by side, and merging the adjacent top offices so that the common manager or senior engineer's office is part of both clusters:
+---------+---------+---------+---------+
| | | |
| | | |
+-----+ -+- +-----+-----+ -+- +-----+
| | |
| | | | | | |
+-----+ +-----+-----+ +-----+
| | | | |
| | |
+-----+ +-----+-----+ +-----+
| | | | | | |
| | |
+-------| |-------+-------| |-------+
What we were doing was video games for early consoles, mostly Mattel Intellivision but later also for Atari VCS, and also later for the Commodore VIC-20 computer. That kind of work required a mix of brainstorming and collaboration with periods where you really need to concentrate without being disturbed to figure out how to actually make it work on the hardware (weird processor, weird graphics chip, under 200 bytes of RAM (although later cartridges could have RAM which allowed some games to have more), a couple K ROM, and all programmed in assembly language). That office layout supported that quite well.If collaboration occurs spontaneously and your door isn’t closed, it’s easy to join in. If it turns out that someone is essential, turn it into an actual design meeting.
The best teams I’ve worked on had this arrangement and developed their own cadence - morning walks for cofeee, water cooler tv show commonalities.
Having the refuge of a known private space made group participation easier - I would seek out and benefit from the social technical in person interactions, as opposed to an open office plan where I would start out with determination of defending my personal mental space at all costs.
I work in a large company, and team is spread out over multiple cities.
We actually will often to group video calls to have a similar thing to what you describe - being able to ask a quick question, run ideas by other, etc.
However, going to the office I'm just with people who are working on different things, often doing calls which I find distracting...
Personally, I've experienced open office, fully private office etc. Private office/remote are my favorites, followed by small room with a few people (I also had that in the gaming industry, it wasn't too bad) and, in a distant and humiliating last place, open office.
Making that solid foundation requires a lot of work though and not everyone has the communication (or empathy) skills to make it work.
Has worked for me, but I'm an outlier in that I grew up on IRC chatrooms before more rich-text and composite media communication methods were available.
Most people on this site in particular are likely to be outliers too: as the way we are communicating right now is as stripped down as possible and people will self-select for this.
Online games work well, because you have a visual and full engagement.
Compare that to work communications... You are totally async on slack, it's just a simpler version of email at this point. Just because people are online in Slack today, doesn't mean that they'll respond within minutes.
If someone is online playing a game, you know that they're there. Old IRC was pretty much the same.
I hate open office space as much as the next person, but small team rooms are great. Can have the walls plastered with post-its, screens, drawing boards etc. If I hear two coworkers discuss something, I can chip in if relevant. Information flow just happens by itself.
That was an unwritten rule the last time I worked in an open space.
I wonder how many of these remaining 5 people have a take similar to me. WFH is where I'm most productive and most happy to work. Doing the kind of work you describe above "with 6 people on one project" is for 90% of the time an exercise in babying the least up to speed team member at the cost of distracting everyone.
I get it, some people just like being around people and doing stuff "together", and some types of work may even benefit from that when stars align(brainstorming etc). Most types of work I do in software don't. Especially now, post covid when WFH became normalised and people who were opposed to it on various grounds were forced to learn how to use it effectively.
>* asking quick questions and getting an instant answer. vs chat where I may not get an answer for hours.
That's what the phone is for, with additional benefit of status from everyone. If I see someone is busy I don't phone them I look for someone else, If I see they are "green" I do and I get my answer instantly without disturbing anyone.
>running ideas by others. This doesn't happen on chat for me, and VC is too scheduled
Again, same thing. Pick up a phone. If you just want to run something "by everyone". Wait for your daily/weekly team meeting and ask then. Yes, it forces you to write ideas down not to forget them (if they can wait), but it's massively more convenient to everyone else.
> * brainstorming. Same as above
I had many a good brainstorming session online (mostly with voice). What do you need to accomplish it is: - good audio equipment, Internet access and a quiet location for everyone. No calling into a meeting "from my car, while going to the doctor", or "from the office while people are talking in the background", no "crappy headphones etc". All this ruins productivity for everyone. If people are using cameras(which is nice) everyone has to have the bandwidth for it. Also if you have more than 5 people in your meeting, make use of the "raise hand" feature. Then brainstorming can happen very well. Especially while looking at a document/whiteboard together with systems that show you in real time what everyone does.
In fact above a certain number of people (8 maybe) brainstorming sessions seem a lot more effective to me online than in person. Why? Because you have few communication channels. You have the shared whiteboard/document, voice, and chat so while someone is talking you can post a question to the chat without interrupting.
>getting a feeling for what everyone is up to
That's what regular planning meeting is for.
>feeling part of a team, working on the same thing
I suppose that's a personal thing, but I always felt that including during my 7 years of WFH 100%.
Edit: there is only one real disadvantage to WFH, and it's for junior people wanting to learn. It's much harder to gather knowledge by osmosis, just by being in the office if most senior people are WFH. But then as a leader one has to decide what is more important.
I also probably helped him brainstorm ideas with me and debugging, since he would just say what's on his mind while doing it, and I'd do the same, and sometimes this kind of ping pong debugging/brainstorming together yields way better results than solo work. I really like one time he was trying to see how to open the chrome debugger to debug the chrome debugger, and I just knew how to do it (same shortcut while focussed on open debugger) since I had done it by mistake :D
I am convinced that you get more in a collaborative environment having a few devs sitting next to each other in pairs/small groups that they enjoy being with than anything else. IMO with remote work you get hidden inefficiencies that the company can attempt to fix by just hiring more people in the team (and a culture of let's do less meeting, less face to face, more work) takes over and that 1+1=more than 2 environment I was very excited about is gone..
Can someone who is a fan of remote work tell me how a new grad excited about writing code could find a mentor and really up their game in the remote world with what's becoming "standard" way of doing meetings etc?
A counterargument to what I describe is how successful open source projects have always been remote with passionate people working on them
That said, I can attribute one positive effect in my career to having worked in an open office. Early in my career, I happened to overhear someone on the phone dealing with an Open Source licensing issue (and I genuinely do find Open Source licensing interesting), went over to chat with them afterwards, ended up finding out about the company's Open Source review process, one thing led to another, and not long afterwards I co-ran that process company-wide (for a 100k+ person company), which I really enjoyed and which provided a great deal of visibility into all the work happening in the company.
I don't think "happened to overhear one side of someone's phonecall and strike up a good conversation about it" is a "benefit" I'd say is worth the pain of an open office, but I still want to acknowledge it.
At IBM working in a satellite office, I wanted to contribute to Jenkins. The fact that any person with the authority to allow me to do that was "behind an office door". Multiple emails back and forth - I ended up ditching the idea of getting the approval and quit IBM.
Closed doors should be for focus time, which should not be "all the time". Having small team offices and quiet rooms - can contribute to people's ability to focus. But personal offices is just another door that stops people from collaborating will inevitably stop a lot of valuable collaboration.
Everyone's different, you wanted a mentor next to you, many don't enjoy that relationship. To answer your question, looking at the fresh graduates we take, extremely detailed code reviews, a lot of chat and some pair coding on the overly difficult parts seems to be working good enough for them to reach a decent level within about half a year.
Maybe look around for an active open source project you'd like to contribute to, and ask around its community and propose a regular pair/group coding session?
Edit: Crucially, we all took turns "driving", even during a single meeting. Sometimes someone wanted help on a branch, and they started driving and then someone else "took the wheel" for a few minutes then passed it back.
I found our interactions were similar to session-style sports, like skateboarding or bouldering. We all attempted a challenge together and could see how each other approached the problem. As in sports, sometimes even knowing something is possible is all you need.
Like an open zoom meeting where people unmute themselves only they need to ask something?
With the additional focus-aiding utility provided by services like focusmate?
Similar to people gaming online with audio chat but more disciplined.
Combining home office with virtual open floor communication on demand.
I'm curious to see if there's been studies on its efficacy, and whether or not those studies agree with my entirely anecdotal experience.
It may be a bit harder now because as programming became more high level, the cadence of development went up. However I think the skill set that you gain when you are force to work at a lower cadence (and spend more time "sharpening the axe") is still valuable.
I'm sure it's useful for training and mentorship, but that's frankly not your employer's problem these days. People switch jobs every year, and if you train up staff only their next company is really going to reap the benefits. If learning on the job raises retention then it's only marginal. If anything it makes people "worth more" and they more easily find the next gig that comes with a pay bump
You can easily skill up by:
- watching conference videos on YouTube
- during code review
- go on your lang subreddit or forums and read about how other people skin their cats
What you want is basically unstructured interruption based code review ~ which is nice for the junior but horrible for productivity over all
I can't even count how many times I had to tell other engineers, that they have to run a clean build locally...
Not to mention, that mentorship can be useful just for the processes that are present within the company.
I had the luck of working with a dude who was extremely good at analyzing data, simply by loading json files in sublime text, doing a mix of pretty-printing, multi-cursors changes (with usually 1000+ cursors), regex-foo, playing with buffers and other linux commands. It was a weird set of skills that was truly magic to behold, and not amount of Youtube conference or code review could have replaced that.
There are some coding livestream that can help with that, but it's not as efficient as being in the room as talented peoples.
The bad: it's a little too cutesy, a little too "gamer" targeted. It's a little tiresome.
The fantastic: In a call, you get individual volume sliders (and mute buttons) for every single participant. I cannot use Zoom after experiencing this, it's simply intolerable to be at the mercy of the person with the loudest and most obnoxious mike/background noise
You're confusing collaboration with physicality. Too many people make the mistake of thinking that they need to be sitting next to somebody in order to ask them questions, or have a quick chat, or get them to teach you about a project. Those are all things you should be doing in remote work as well.
They consistently happen at greater frequency with proximity.
Three years of wfh with terrible results before we started returning to the office one day a week, has shown me that proximity is a deal breaker for anyone who wants to progress into roles that require mentorship of others.
As far as excitement and collaboration goes: this is a culture and communication problem. If your company hasn't done a good job of training people to use the proper tools of collaboration they're not doing it right.
Same with mentorship, it should be done as a (possibly rotating) thing by people who are trained to do just that: be good mentors. This is not a burden that should fall on the uninitiated. This should also have concrete expectations for everyone involved. Its a job in and of itself, after all.
All of these things point to cultural company deficits, they're not an inherently immutable thing that is a downside of remote work.
Some remote workers here dismisses even that, because it disallows them to take residence at the other side of the world from the office. Mileage truly may vary.
When the CEO is away, the graphic designer and secretary frequently engage in loud, casual conversations, discussing everything from personal matters to home decor, like curtain colors. They also have a habit of yelling over the office partitions, adding to the disruption. Despite using noise-cancelling headphones, these distractions, including both the conversations and the yelling, consistently hinder my concentration.
Interestingly, the secretary has expressed concern about the perceived level of activity in the office, especially when the CEO is present. The secretary has mentioned to both me and the graphic designer that there might not be enough typing noises, suggesting a worry that the CEO might not think everyone is working hard. This concern about appearances adds another layer to the already challenging office environment.
This sentence sums up the biggest headache of my professional career.
I have never worried about appearances, but instead focused on doing good work.
To my detriment. I know I've missed out on key assignments and at least one promotion at my current employer because I don't sell myself or focus on perception management.
I guess what I'm saying is, this exists everywhere, in every field of work.
I sympathize, but I haven't yet had the pleasure of working with other people without the existence of those kind of friction layers.
At my age I just assume now that it's just part of the human condition -- but maybe it's just me.
If I ever hire a team that isn't remote, that'd be something I'd want to explore. That and giving them assistants. I want to find out what an experienced dev team that doesn't have to bother with any admin or other distractions can do.
Freeing people up as much as possible to just think and build in peace. I like to think that it would make a difference.
I would love to have someone else sit in on meetings, but i suspect I'm there in the hope that I'll ask an incisive question to shake a hidden requirement loose.
You can already do that with remote staff. Stuff like planning travels or dealing with reimbursement of expenses is almost always extremely annoying for those who only have to interface with the arcane systems twice a year.
Writers need flow. People studying need flow. I could imagine techs looking at breast cancer scans need flow. It isn't only programmers who need this.
I've noticed this some times ago and now I cannot unsee it: this all discussion is too often about "what is best for me and my flow even if it ruins other people's flow" rather than discussing a proper solution.
Flow as most are using it here, also known as being "in the zone", is when you achieve a deep state of focus on one particular task, and everything else seems to melt away. You reach maximal energy and enthusiasm for the work. It is where you reach peak productivity and creativity.
Most people cannot just enter this state at will, and when they do achieve it cannot maintain it for more than an hour or two. Getting into this state takes 20 to 30 minutes or more.
When you are in this state it takes very little to knock you out of it. A ringing phone, someone talking to you even if you just tell them to come back in a couple hours, a beep from a messaging app...all of those can knock you out of the zone.
Getting back in after being knocked out takes another 20 to 30 minutes. This means that if you are getting one interruption or distraction every 30 minutes throughout your time at your desk it is unlikely that you will get any time in the zone.
>> In the same vein, an office with a door won't help at all if you have higher-ups who expects instant responses to any messaging/e-mail query every five minutes
> Well, if you don't answer instantly, then you are stopping them in their flow
In the case of a manager interrupting you they probably weren't in the zone. But even if it is someone who was in the zone that is interrupting you them having to stop and message you was probably enough to knock them out of it.
It will almost certainly be more productive for the organization overall for them to work on something else until you naturally exit the zone.
I used to work from another time zone for a few years. That was highly efficient. The first half of the working day there were no interrupts and I could go into the flow and be productive. The second half, or more like the last three hours I would have video meetings and back-and-forth emails etc. and just doing "normal" slow programming - not the type needing concentration and flow. People emailing me about stuff would do so when I was sleeping, and when I started working I could start by going through that, plan, start working, and have it ready for them when they got up and began working. It was ideal, in many ways (except that I couldn't physically drop by the office whenever I wanted).
That being said, it's really the crux of the issue with work from home that the trajectory of the company doesn't really depend on individual workers hitting their maximum output. An individual having the best coding experience is rarely the ideal option for the company. It is far more important that the team moves in a cohesive formation. If the distractions truly cut productivity in half we can double the number of seats. Going too far and too fast without focused guidance results in deadtime and technical debt. It's a tortoise and the hare situation. Would we rather have 10 rabbits moving one brick at a time or 20 turtles strapped together towing a trailer with a full stack of bricks.
It's also not like we haven't tried to make remote work and other options be successful. The reality is that it's something we can pretty effectively A/B test. The results have been fairly consistent across fields and even companies. Physically collaborative environments yield better and faster results.
Usually salaries cost more than offices.
> Going too far and too fast without focused guidance results in deadtime and technical debt.
Focused guidance requires intentional communication. Not hoping people will overhear the right conversations.
> It's also not like we haven't tried to make remote work and other options be successful. The reality is that it's something we can pretty effectively A/B test. The results have been fairly consistent across fields and even companies. Physically collaborative environments yield better and faster results.
Show the data.
Yes, they do. But productivity is not linear.
> Show the data.
I don't have the data, but the reasons behind agile are exactly that - extremely collaborative environment.
I think a company that wants to keep talent for as long as possible without offering FAANG level salaries should reconsider this position. Hiring is super expensive and risky. If you have good people, you want to keep them. I think offering flexible, meaningful and enjoyable work is a great way to keep people around longer and if it matters to them that they have a space where they can focus, I would give it to them. Creating an environment where they are less happy probably will make them look elsewhere.
That said, I do agree that siloed work comes with a set of issues, but I think there are other solutions to the problem.
> It's also not like we haven't tried to make remote work and other options be successful. The reality is that it's something we can pretty effectively A/B test. The results have been fairly consistent across fields and even companies. Physically collaborative environments yield better and faster results.
I have never heard this and I don't even know how you would measure it. There are so many variables this would affect, not to mention, how do you even measure productivity short and long term? Do you also measure turnover? I don't think we actually know nor do I think results from one place translate over to another. I've done both and both have worked and have had their own set of challenges. My personal take is that hiring good people matters more than whatever setup you have. Remote gives you a bigger pool of people to pick from and is desirable by many, so based on that I think that it can give a very big competitive advantage.
No. Not everyone wants or needs a private office with a door. It doesn't always make us more productive. It is not always better to work from home. Open plan offices are not always bad. Most of my day is not spent working on something so complicated or advanced that interuption will screw me over. I am spending most of my day building block towers because I can split most of my work into small pieces.
On the other hand, if distraction is a problem, as someone else said, it isn't the open plan office which is at fault. It is planning your time; setting DnD when you are actually doing something difficult; it is making sure that people don't randomnly call your best engineers on the phone whenever they have problem but they instead use chat or email as an async method instead.
I don't have to work on some advanced grand vision to not like being available all the time. I am also not claiming that I am going to be super productive when I close the door.
It is not my fault not setting DnD it - this is what triggers me - no I don't have to set DnD if someone wants something from me they should make sure it actually IS important, they should make sure they got their stuff right by trying out things and thinking about what they have to do and what tried and what they really want to ask.
Then they can also send me an email, send me IM so I can reply as soon as I get to it.
Coming to me 9:00 when I am still taking my coat off and opening laptop - asking questions well that is not my problem not setting DnD.
I can see way down the line there'll be a problem with Engineering vs The Rest because we'll be remote and they'll be in an office. But tbh there is always a problem with Engineering vs The Rest regardless.
I want my devs to be able to switch Slack off, not answer emails, go for a walk in the park, and stare at the ceiling for hours while properly thinking about what they're building. Too much code is written in haste.
You sound like my current employer. Working for them the only worrying thing I ever think about is that I don’t want this gig to end, ever.
Pandemic restrictions have ended. You could eat lunch with a neighbor who hates working from home also. Or rent shared working space.
This includes deriving the actual wanted goals early in the project, planning properly and the violently shield the engineers by keeping external factors like the management microcosm, stakeholders and non-developers busy with busywork, placated with blatant lies and overall away from doing damage. Regarding the engineer team organiziation - they will work something out.
They don't need that car-production-belt whistle and whip.
I would love to hear more about how people actually changed their situation, other than the obvious way of looking for another job.
A programmer starts with a couple of these, gets them in the air, then adds more and more concepts. When I am good I can juggle lots of them and see how they interoperate.
Once all the balls in the air, whirling around like some sort of planetary system orbiting a sun, they can coalesce into -- an idea, a solution, or something.
If this gets disturbed, all those balls come tumbling down. This is not a 30 second thing, this can be an hours thing. Or more.
Non programmers do not understand this process. I believe.
However, I don’t think she will still able to understand and empathise.
The norm here in German startup world seem to be open floors. And if you do have rooms they get crammed full of people.
It's not the end of the world though. A room full of engineers is tolerable, and if they're on your team this is even desirable.
The trouble only comes when the CEO wants to see everyone sweating, so you get stuffed together with Sales or Ops.
Working from home made things a lot easier though. And if the company is big enough it's usually also possible to just book a meeting room if you need to work in silence for a while :-)
Until one of the engineers who has no social awareness decides to eat at their desk instead of taking lunch elsewhere, or you just need some silent time and there's just no option for it.
I'm very reluctantly pursuing on-site or hybrid positions as a last ditch (desperate) effort to find some work, and I'm not the slightest bit optimistic about being in a room full of anybody. I used to think an open room full of people was the better choice, but that was when I was young and naive. Serious focus demands control over your senses, and there's a difference between setting up at a bustling cafe and going in every day to sit directly adjacent to the same people with no concept of real private space.
Maybe he's aware, and just doesn't care because the company has already made him miserable by 1) not having an "elsewhere" to take that lunch, and 2) putting his desk right next to the sales team.
What? How is eating your lunch at your desk a social awareness thing? If it doesn't smell and isn't loud, what's the problem?
In one case, an adjacent developer was bringing in hard-boiled eggs and cracking them against the edge of his desk while wearing headphones and chewing with his mouth open, while the smell of the eggs wafted over the 3ft to mine, and then he'd get started on the apples. He'd do this 3-5 times a day, so needless to say I'm not enthusiastic about open offices. I did also awkwardly bring this up directly with him, but it's tricky to navigate a situation in which it's not just the food, but also the mouth sounds and occasional burps. If I did get a break from this specific person, it would just allow the sounds from everyone else eating chips or having conversations to be more prominent. By the time covid roled around, I was already burnt out from trying to compensate from all those things, and the respite I could have got from working at home just arrived too late to save me.
I guess that's exactly the problem. The only food which doesn't smell is cold food.
In all seriousness, sweating is the biggest factor for me. My clothes smell so much nicer ever since I began working from home
For high level stuff like architecture design and writing application functions, I appreciate pair programming. I think that is more effective and creative than working alone. But still everyone doing their own stuff in a big room is not my kind in this situation.
I find myself largely incapable of doing so, open-plan office or not, and have compensated by adopting development approaches that break problems down in consistent enough ways (into small enough pieces) that the structures I have to pick up and put down are never all that complex. Which is good, because they fall out of my head just all the time. ADHD, a very poor memory for detail, and a role that has me responsible for juggling many tasks concurrently would _destroy_ my productivity if this article were universal truth.
Don't get me wrong, I _hate_ working in an open-plan office. But the impact it has on my output is not because the interruptions affect my flow, it's because the constant social contact stresses the heck out of me >.<
It's not the open floor plan office that's the main cause of the problem for DnD type work, nor are offices with doors a general solution.
It's all about policy. A separate office with a door doesn't do you any good if every ten minutes someone drops by to knock on it. A private office also doesn't help if you're constantly bombarded with "urgent" messages from various people and are expected to instantly reply.
Most of the issues can be solved by simply implementing reasonable policies. Can't deal with the noise of an open plan office? Provide ANC headphones. Need time to focus? Define binding "focus hours" each day during which no meetings are scheduled, no messages are sent, and people are left alone. Keep the inevitable exceptions to an absolute minimum.
In addition to that, it also helps to have separated spaces (e.g. meeting rooms) available that can be booked for DnD sessions if the need arises.
Depending on the circumstances it isn't always possible to provide a work environment that everyone considers to be a "nice place to get work done". Some people don't mind background chatter, others can't concentrate if someone as much as coughs somewhere.
It's also a bit hard to not being being cut off in your own bubble as you put it, while simultaneously wanting to be connected to everyone else. Being in a separate, single desk office is no different from being in a bubble in that sense.
And I have sometimes seen people saying things similar to you, and then being loud or distracting when it was more convenient for them.
I understand your position, but as usual with these discussion, everything seems to always centered about "what I would prefer" rather than trying to understand everyone's needs.
Company-issued PPE for hazardous offices?
First key feature - 50% of the exterior building walls was windows, the other 50% had offices.
Second key feature - cubicle design. It was staggered duets of cubes. Great for privacy... and at best made it easy to turn around and talk to 2 other people if needed. Best of all... each cube had a full window instead of your classic wall. And these windows would all allign so that you could see straight out to the outside if you wanted. You had privacy - but still daylight.
Most "cube farms" I see are a sea of interior cubes completely surrounded by wall of exterior offices. That's depressing. Or we see an open office concept where everyone has light but 0 privacy which is hard for concentration.
This particular design that I got to work in circa 2002-2005 was delightful at least for me (and then we moved offices and that design sadly didn't carry over).
I miss well designed cubes.
It worked well, as long as the other people were devs or admins who didn't phone all the time.
Getting paid to waste time not doing your job is considered work now?
Pretty much the definition of 90 % of all the meetings. Just putting on bluetooth earpieces and doing the laundry doesn't deduct the value of me hearing another round of very efficient 'cost savings' that they thought about somewhere up the chain or other administrative ideas.
You mean commuting? Getting commuting hours back each day allows you do to hobbies.
What matters is the culture. A culture of “I’m working, only interrupt me only when necessary and keep the chit chat to a minimum, and retreat to a private space for long conversations” is basically the key. That and noise cancelling headphones.
Most arch stones are precisely cut. Or at least we pretend they are precise. The keystone is different because it’s an oversized wedge that you slide in at the end to pick up the slack. You can’t cut it precisely because you don’t know how big it needs to be until it’s doing its job. Once in place though, you can trim it down to make it look like you knew what you were doing all along.
There’s a metaphor here, I think, for the style of “engineering” we see in software. It’s not a value judgement other than to acknowledge that, with software, it’s ok to be good enough and to iterate. Lots of real world engineering is like that, but keystones may be an exception.
The identification of flow state in programming was known well before Graham. Steve McConnell's Rapid Development (1996), https://archive.org/details/rapiddevelopment00mcco/page/506/... , has
"Flow time. During the analysis and design stages, software development is an ephemeral, conceptual activity. Like any conceptual activity, the quality of the work is dependent on the worker's ability to sustain a "flow state" — a relaxed state of total immersion in a problem that facilitates understanding of it and the generation of solutions for it (DeMarco and Lister 1987). Converting brain waves to computer software is a delicate process, and developers work best during the hours they spend in this state of effortless concentration. Developers require 15 minutes or more to enter a state of flow, which can then last many hours, until fatigue or interruption terminates it. If developers are interrupted every 11 minutes, they will likely never enter a flow state and will therefore be unlikely to ever reach their highest levels of productivity."
DeMarco and Lister 1987 is "Peopleware: Productive projects and teams". I can't find a first edition but you can read the relevant part of the second edition at https://archive.org/details/peoplewareproduc00dema_0/page/62... .
As I recall, in one of McConnell's books was a chart showing relative performance effectiveness of closed offices vs cubicles vs open floor plans, which got progressively worse. I can't now find that chart though.
This happened at least a dozen times/day. We were allowed to wear headphones, but could not listen to anything streaming online. I would record 8 hours of streaming radio the night before and then transfer it to my Ipod nano in the morning. I was usually so sleep-deprived that I didn't have any time to check the recording before work. Once/month, my Internet connection would go down and I would have 8 hours of white noise (those days were a nightmare).
I eventually figured out that I could RDP into my server at home and stream audio from there, and listen to it through the RDP connection. The Internet filters they were using couldn't detect it.
I think what finally made me quit was when I found out management had screen-monitoring software installed on all of our computers and would review it every hour.
A co-worker discovered it by accident and due to my inquisitive nature (which sometimes gets me in trouble), I tried to telnet into the listening port we found on his computer (to see what it was) and it completely crashed their monitoring software (must have been really shitty software). I was hauled in the next day and questioned to see if I did this with malicious intent and he was fired )I guess they were watching him for awhile and were gathering evidence. He had worked with the company for 5 years).
I got out at a good time. The company in question was in the loan industry and it melted down a year later in 2008 and the whole development team was laid off.
I hated this office experience so much, that since the job I had after this, I've only worked remote jobs (and still do) in my home office or office space I personally rent. I don't think I could ever go back.
However, what it sometimes sounds to me is that there is this hope of a magic combination to crack productivity effectiveness through open offices or closed offices (or any other low level leveraged idea, like return to office vs remote office). The reality is that any configuration can work if the leaders of the organization are cognizant of the ramifications on the different employed individuals and address them accordingly -- but I believe most skip this chapter in leadership training.
I'm starting to consider these sorts of low-effort, divisive titles as click bait these days.
But I still have to do something to control my time. A door isn't enough, because someone will just knock or open it. You have to put in effort and plan ahead to control your workflow.
A lot of people seem to believe that work should be easy. It's actually difficult and complex to work really efficiently. It requires knowledge of how to work efficiently, and then it requires a lot of people to stick to a process, someone to measure it and keep people on track, and continuously changing it to improve. That's a lot more than just "don't interrupt me".
That said, I have enjoyed the offices where I had an office with a door I could shut the best, as long as there were enough common areas so people could meet without a lot of hassle. I have found office arranged like that a lot less frequently because office space is a cost to be minimized so any space that isn't over used immediately is a waste.
Conversely when I am debugging or doing more creative stuff like systems design work, I love distractions. For some reason the momentary interruptions really help me reapproach the problem from a new angle.
When all else fails a crack open a beer, my very best work has always been done while sipping a cold one.
At which point I might as well work from home, and sell the extraneous office space.
Oh sure you can talk about high comp and career mobility. But where does all of the vaunted labor power of software engineers go when they ask for something as simple as a cubicle?
I get that unions were/are necessary for things like mining workers or so, but SWE is quite different. I'd expect a union to be net-negative in our sector.
Further, has anyone talked to one of these persons before on changing the office layout to a developer-friendly design?
I've really wanted to do this but I'm not sure who in my company I would talk to about it.
The issue is large open offices where I'm also privy to all the other distractions from other teams that aren't relevant to me.
Equally, sometimes it's better to be quiet. Sometimes, quiet can be at home but sometimes homes are not quiet or uninterrupted.
Flexibility would be great, but I think a private office will always be seen as more prestigious, so those with that facility are unlikely go give it up so sit in a cube / open plan with the team, even where that would actually be beneficial.
I called the environment: one developer for the price of two.
For hard problems (months/years), I think it requires cycling through both context states for a time. This is something nootropics proponents often tend not to recognize.
Some hard problems will persist, no matter the amount of resources thrown at the issue. At some point a Plan B becomes C though Z, and its time to prune the project scope to ever hit a launch date.
https://en.wikipedia.org/wiki/Sisyphus
Quickly recognizing when a team has lost is important. =)
Pomodoro technique also helped me shape my focus state into smaller, less efficient, but more predictable portions. By scheduling interruptions, I figured out it's a lot easier to handle breaking out and into flow stat when you're training that every 25 minutes.
If the interruptions happen early in the morning so I never have the 2-3 hours boot up time, then that day is pretty much a zero from lines of code produced perspective.
Note: if it's some trivial boilerplate code then I can even be productive without booting up and with constant interruptions, this only applies to things I don't know how to do and need to research/think
You think nobody sees what's on engineers desktops?
Of course they're all Carmack-level geniuses...
Literally sandwiched between breathless "How Github CoPilot produces 80% of our code" articles from the likes of Shopify and "How laying off a thousand more fixed my stock" from the Spotifys.
I had great results working in 'team rooms' where people wheeled their cabinets in and out as they joined or left project-oriented teams. But I was young.
The staffies all had separate offices then. And today, I find myself most productive for the company when able to shut myself away and think.
Workers policing other workers . . . the ideal office of the pre-COVID 21st century!
But it highly depends on who you're getting as an office mate. I've had mostly good experiences, but I've had one very bad experience too.
I'll talk personally. I'm autistic(like what 75% of programmers?). Interruptions can potentially ruin my day.
If I'm working in an open concept or cube office, there needs to be perfect silence the entire day. If not, I basically can't work.
I think we may mistake the annoying feeling of plummeting, from the lofty domain of engineering complex software into the banal, as a major loss of productivity. The feeling is very annoying. But does it take so long to get back into your dreams of that perfect ci/cd pipeline, or high throughput system? I'm not sure.
But not nearly to the degree as my old job pre-pandemic that was roughly 3 days a week all in the office and 2 days a week whatever you wanted.
Most devs, myself definitely included, don't wanna sit there with another one while they work on a single problem. We both have our own respective tickets to worry about, who's got time to split entirely dedicating to 1 ticket that isn't yours?
Instead if we hit a major roadblock we'll shoot out a message like "hey dude got a minute?" And hop on a huddle on slack, but I definitely wouldn't call that pair programming the way it's usually implied
[0] https://duckduckgo.com/?q=team+working+programming&iar=image...
Pair debugging does exist but only when stuff goes wrong. This is the vain hope that perhaps two people can make up one competent person when the shit has hit the fan.
Still. It does often work, specially if the other person has better knowledge of technology or code in question.
I prefer open plan setups and am glad that working in trading environments has ensured my career has been spent in them, so my natural reaction to the title here is "erm, not all of them do". I actively enjoy being interrupted to discuss something unrelated to my current task, and often return to that task with a fresh insight afterwards. I enjoy helping my colleagues with things, and doing so helps me build a positive reputation in a way that has helped my career. I enjoy camaraderie and conversations about my colleagues' lives outside work. I would refuse a job in an enclosed office or cubicle unless there were very strong compensating factors.
I don't require others to feel the same way, and I don't think people are wrong or bad if they prefer greater separation from colleagues. Humans are diverse. However, someone who views their colleages, their work-related questions and their attempts at broader conversation with active disdain is unlikely to be someone I want to work with.
> I enjoy helping my colleagues with things, and doing so helps me build a positive reputation in a way that has helped my career. I enjoy camaraderie and conversations about my colleagues' lives outside work.
This can be achieved with all manner of offices!
> Humans are diverse.
Yes, but there are still distributions of opinions. It seems like there are many thinkpieces on why people don’t like open plans and why they’re bad for productivity, but never any in defense of them. Perhaps you should write one to give voice to that contingent and then we can see how many others have the same opinion.
wat
At least you openly admit it.
> asking quick questions and getting an instant answer. vs chat where I may not get an answer for hours.
Basically like having a toddler around. Sorry for the negative take here but how it's written it feels like you don't necessarily realize that some people do need deep work, and prioritize your quick satisfaction to other's focus. Or I might be projecting, but I simply can't stand incessantly being asked questions, I view it as a type of interruption.
> running ideas by others. This doesn't happen on chat for me, and VC is too scheduled.
Yes, because who needs order in their time when somebody just wants to ask the group from their opinion, without even bothering to write it down. Also, whoever is sick that day and missing from the office, that's on them, whatever discussion happened, no evidence of it, so sucks to be them I guess.
> I don't feel connected to me team at all working from home
I...am sorry.
Also, please don't post in the flamewar style generally. It's not what this site is for, and destroys what it is for. We want thoughtful, curious conversation in which people are open to learning from one another.
We detached this subthread from https://news.ycombinator.com/item?id=38693114.
This is very one-sided. If you can unblock someone now so they don't spend 3 hours searching through the local intranet for some information, then that makes your team faster. There's a balance to be had, of course, but your team's overall delivery is what's important.
> I view it as a type of interruption.
It's not your view. Of course it's an interruption. That doesn't make it bad.
I'll be blunt here. I have very little interest in how the team I'm part of performs in general. Trying to make one person feel guilty that someone else can't do independent study is very toxic in my opinion, and I usually remove myself from under management that approaches leadership like that.
Asking questions should always be done, in my opinion, _after_ you tried to unblock yourself by RTFM-ing. If people feed you information every time you're stuck, it seldom sticks to your mind as well as going through the motions yourself.
Past your training period you are responsible for your own productivity. Don't make it the problem of your peers.
> Basically like having a toddler around.
I changed jobs during lockdown. When I've joined other companies earlier, everyone knew to step in to help the new guy. So people would constantly ask me how I was doing, see if I were struggling and ask to help me, or I could just poke someone in the room.
But getting onboarded remotely during lockdown (in a non-remote-first company), I didn't know who to ask. No one could see me being stuck. I couldn't just ask out in the open room. Writing a message in a chat channel meant it could take ages before I got any help to get going.
Yay to me for at least not "disturbing" people. But the tradeoff here is that the whole team suffers as a team, just so people can have personal productivity. Which I think lessens speed in the long run. We're not code-monkeys picking Jira-tasks and dishing out features. We're working on a project together.
At the very least they should have assigned someone to be your mentor for coming up to speed.
That way you have someone you can ask (and you're aware you should) and you're not just forgotten about and left to you own devices, which is rarely successful.
Surely there must be ways to balance these things?
When you want to ask someone a question it shouldn’t be too hard to infer whether it’s a good time to do that now or you should wait (if it is, well it’s exactly a very hard skill to learn if you put in some effort)
If I'm deeply focused on something else, I'll just ignore the notification, if I'm available I'll respond.
Bonus points for just posting it to a team group chat or CC-ing everyone involved so someone else might be able to handle it.
Unnecessarily condescending response to the OP, to be honest.
I am not trying to be condescending here, but it's hard to view this behavior as anything but overly disruptive.
https://www.businessdit.com/distraction-work-statistics/
Instead of "just a quick question", the OP could prepare a list of their questions, and ask them all at the allocated time. A scheduled deep dive into the questions the OP has might even be more productive than multiple unscheduled disruptions of others' time.
And in an open office, even if you ask only a single person something, others might hear it too, despite the question not being intended to them.
We are talking about multiple people's brain cycles being dragged out their focus space, we are talking multiple conversations happening next to you, we are talking about click clack of people's keyboards next to you, and people moving going to take a coffee in your peripheral vision. It's a nightmare.
https://theconversation.com/returning-to-the-workplace-heres...
I'm always confused by people who struggle so much with being able to quickly answer a question and get back to what they were doing.
Also, here you're prioritising your work over someone else's.
> I simply can't stand incessantly being asked questions, I view it as a type of interruption
Well, you are being interrupted. But you're being paid to be interrupted.
> Also, here you're prioritising your work over someone else's.
That's what the whole article is about. The struggle is that holding a context in your mind is easily broken by small interruptions. It's not by choice. So the question is how do you reconcile people on both sides working together.
When management evaluates my performance, delivering my projects carries much more weight than helping yours (which they might not even be able to measure).
Managing or working with ICs with this perspective is also a lot like having a toddler around.
People that state what OP said should go into sales or customer service. Want to talk all day? There's your new job.
The funny part here is that the companies expect you to help onboard new employees AND do your other work at the same time, while at the same refusing to give you the time to build on a proper onboarding, with documentation to read, what software to install, etc.
In my current company we assign a "buddy" to the new onboarders, we have a handbook + a (supported and tested) onboarding installation toolkit, and pretty good documentation. The buddy does the handholding via scheduled and ad-hoc sessions, the onboarding material does the rest. During the pandemic we got to test this approach out on people who haven't even visited the office, and we improved it iteratively on every new onboardee. It's surprising how just improving such a small thing makes onboarding so much more pleasant for everybody, and how this, when done well, works both for office AND remote new employees.
Open plan might work great for some types of work, but for highly technical and mentally taxing work it's quite litterally the worst possible working environment you could be providing.
There's a reason that many programmers prefer to work from home. Working in a busy office (and that includes open plan offices with even light chatter) is extremely counter productive.
- literally 100s of publications showing how disruptive and destructive to focus it is to be working in an open office work and how much distractions it brings:
https://theconversation.com/returning-to-the-workplace-heres...
https://hbr.org/2019/11/the-truth-about-open-offices
https://www.businessdit.com/distraction-work-statistics/
https://www.psychologicalscience.org/news/minds-business/eve...
https://juliety.com/effects-of-distractions-at-work
https://news.harvard.edu/gazette/story/2019/11/why-open-offi...
- A bunch of extroverts who just can't wait to tell you what they did over the weekend. Backed, of course, by C-level dudes who simply can't bring themselves to believe work can be done if they PERSONALLY can't see you at your desk working.
The sight of people in an open office plan is merely an expensive therapy session for these guys
People will often be pairing nearly all day long, any claim that you need a moment to focus and think about a problem is met with perplexity, every idea should be shipped to prod asap, while tests exist the idea of performing basic QA/manual testing on your own work is only used in the most extreme cases.
Contemporary startup engineering culture is best described as frenetic. It certainly feels hyper productive (if not extremely exhausting for a more traditional, introverted programmer), but I've started to notice a fairly large amount of that "productivity" is fixing mistakes a more focused programmer would have avoided.
I suspect the long-term impact of open offices my be even more deleterious than it's impact on the focus of individual programmers.
Holy cow this hits home. I've been on a number of teams like this going back years (decades) and ... I just don't get it. Had I been 'allowed' another 30 minutes, or an hour, or a day, on problem X... we'd have avoided weeks of unraveling problems later. But... no - gotta keep pressing on, hitting those pre-defined deadlines at all costs.
And the following year, the whole office switched to open office plan. I think the ability to micro manage people and the power trip for managers explains this logic.
It might even be a significant part of why software quality isn't where it should be these days.
Firstly, everyone had free, good quality, sound blocking headphones. Not just free as in standard equipment on your first day free. There were buckets of the things lying around and if you needed a new set you just grabbed some, no questions asked. VC funded opulence, yay!
Secondly, there was an understanding amongst everyone on the shop floor that “headphones on” meant do not disturb, just as much as a closed office door. Violations were not tolerated but it was a social norm thing not an HR write up thing. Maybe people were getting the latter behind the scenes though?
In return you end up with an office architecture that’s considerably easier to manage at the expense of turning the physical challenge of giving everyone an office into a — potentially intractable for some teams — people management challenge.
I'm fully aware that commercial real estate is expensive and that old office floorplans are not entirely conducive to offering everyone an office with a door. There are certainly compromises that need to be made when renovating the office to give people what they want without simply moving to a brand new building. While I'd prefer my own office, just having a noise-proof cube where I don't have to stare at everyone walking past would be a huge step up from the picnic table style desks where it feels like you're sitting at a library computer desk. There are plenty of ways to track productivity that don't involve a manager being able to stare at everyone working like a sweatshop foreman.
Why are we still having this discussion fifty years later?
Just for fun, let me try to one-up that: working outside, in a scorching desert, hung upside down, just barely reaching your laptop on the sand, with scorpions crawling over the keyboard.
But thinking about it, even in that situation, I guess I would still prefer not to have to deal with people having unrelated conversations around me.
All I could think was, "What you see as vibrant is really your employees shooting the shit and not getting any actual work done."
He went with the plan and I found myself staying until 7pm and 8pm most days because I got more work done in those 2-3 hours at the end of the day than I did the other eight because of all the interruptions.
I think it’s more fair to say that they’re making some of their jobs significantly harder and improving the experience for others. Plenty of jobs aren’t interested in optimizing for anyone’s personal productivity and happiness — they’re optimizing for their business goals.
> There's a reason that many programmers prefer to work from home
I think there’s many reasons this seems to be true (I say seems because the ones who prefer it are very vocal about it and tend to (at best) shout down those who disagree) and maximizing productivity is probably one of those reasons that they’re willing to tell their employers.
I have worked in older organizations, and the culture there is that the most productive workers spend relatively more time on their work chairs. That is the only way managers have traditionally known to get work done from their teams.
An open office is a natural way to ensure everyone is working, at least in how those organizations measure productivity.
If these companies move to a closed office, they will have to change how they measure productivity, and their culture may not allow that.
I think the real reason open floorplans are popular is money. It's MUCH cheaper to cram 20 people into 200 square feet than to let 3 people sit in offices (in the same square footage).
Now you know why 50% haven't returned to office spaces like corporate america (and specifically corporate real-estate owners) would have hoped.
I was not well-liked at that job and was happy when they let me go.
I'm curious to know: why types are, or people consider to be, good for open plan?
Generally, office type jobs tends to be one where people need to use their brains to concentrate on something, and open plans tend to be able to create / not block distractions, they would be antithetical to being able to concentrate.
For the majority of work of an average programmer in an average corporation, deep focus is highly overrated.
But yeah for companies which just employs senior folks this should be the norm.