Hacker News new | past | comments | ask | show | jobs | submit login
Why do programmers need private offices with doors? (blobstreaming.org)
354 points by signa11 11 months ago | hide | past | favorite | 572 comments



I worked for a Japanese corporation.

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.


I worked for a Japanese corporation where each floor had different rules.

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.


We kind of have that, but it isn't by floor since its a one-story building, but we are an American small tech company. The engineering department (department I am in) is separated by a long glass wall. In side of there, we are expected to keep it quiet. Now, we are not discouraged from conversation, say I need to tap another engineer's shoulders and discuss some architecture. But it expected to keep it relatively quiet and not distracting. Other side of the glass wall, its a free for all.


Sounds like the Amtrak quiet car for early morning routes. I loved the quiet car.


this is how most university libraries are set up


In the USA, perhaps. An amusing statement really, given the context.


Rakuten was the first and only bigger corp I've worked at (my life has been startups and boutique shops) and so I have had a hard time understanding why people don't like open office floorplans. Thank you for making me realize why I enjoyed it and might not, at another org.


Was it a Japanese office or a foreign office following Japanese customs?


I would say it fits in a third category. It’s a Japanese office that switched to English as its official language and hires a lot of foreign engineering talent. These types of companies are becoming more and more prevalent in Japan.

It is interesting to note that they can integrate the best and worst elements of both aforementioned work cultures.


You worked in kevinmershon's office?

Either way it's interesting such offices are becoming more common in Japan. Could you say more about how they integrate the best and worst of both cultures?


I worked at a similar type of office, but I had coworkers who also had interned/worked for Rakuten.

These are based on the accounts of my local coworkers, but their experiences with previous traditional Japanese companies involved strict social hierarchies, long working hours, constant overtime[0] and overall a very oppressive work culture (though this is slowly improving in general). Getting a chance to escape all that while still working for a local company that really understood them is a huge win. As a foreigner, they made it really easy for me to integrate into their work without feeling like an outsider (which is unfortunately a common trope in more traditional offices).

There is a spectrum to this. For example, I’ve heard Rakuten has a lot of bad rep with a bunch of foreign engineers I’ve met. They still have a lot of “traditional” influence in their management culture that I’ve heard has created a high turnover rate on the foreigner side. This Reddit thread last year also was a hot topic that led to a small exodus[1] and some of their Glassdoor reviews are scathing.

On a side note, the government actually takes some interest in these companies too through inspections, as they seem to observe how well-integrated foreign talent can be with Japanese offices. I’m assuming they’re looking long term to increase immigration to compensate the decrease in local talent from the declining population…

Please do take these as stories and not fact. Experiences can wildly differ from company to company and I’m just one perspective.

[0] I recall a story where a company made employees “tap-out” but not actually leave the office to get around government regulations.

[1] https://www.reddit.com/r/japanlife/s/LmIxQUPakW


Your mention of working culture is quite interesting. I am a Mexican and have had the chance to work in "open offices" environments in UK, US and Mexico.

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.


I would hate that due to the visual distractions and lack of privacy, but "quiet as a library" is absolutely essential.

It does sound like that office layout (as with most US office layouts) is designed to clearly reinforce the status hierarchy.


> clearly reinforce the status hierarchy

Oh, yeah. Hierarchy is very important, in Japanese business culture.


To emphasize hierarchy, it's common to give cheap office chairs without wrist rest for who aren't at high hierarchy in traditional companies . It's one of the worst way, it harms health.


I did a year as an exchange student in secondary school/senior high school in Japan. We were close to 50 pupils per class room - yet it was much more quiet than my Norwegian classroom with half as many pupils.

Not a praise of the outdated Prussian high school system in Japan - but another illustration that the culture is different.


Is it outdated? How do the results compare?


Which results? Evaluating school systems is an unsolved problem.


Japanese business culture is a standard that I hope we never follow. It results in extreme stress for their workers and one of their leading times for suicide is the yearly hiring/firing/moving people around cycle; Japanese industry is an extremely well oiled machine, but in order to achieve that, people are treated like machine parts.

I think there's a good balance to be struck, but I prefer Western work culture by far.


Leveraging my extensive rapid-paced AI-augmented automation experience*, I have discovered an innovative, self-service solution utilizing a revolutionary, modern material that dynamically shapes itself to fit an external acoustic meatus and turn even the loudest office into a harmonious, quite garden of productivity.**.

* I did manual labor on a factory production line to pay the bills in college

** Put 20 cent earplugs in your ear


"one-size-fits-all" solutions are the prevailing business strategy of investment bankers: Make every company run exactly the same, and save on cost by commoditizing the materials and people.


I have found that North American divisions of Japenese companies will be setup the same way. The managers sit at the front facing into the room. All of their subordinates will be facing towards them.

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.


Aah yes this is why I work in an open office yet very confused on why this website hates it so much.


May I ask what you think of life in Japan as a foreigner? I’ve heard it can be very isolating.


I wouldn't know. I just visited. Sometimes, two or three times a year, for about twenty years. Always the Tokyo area.

I probably spent three weeks there, max.


Some do, not all do. I do much better in a room with ~6 people that are working on the same project. Much better than working at home. Much better than a private office (which I've had).

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.


All of that is fine, the problem is that most places with shared space will have people not working on the same project in that room. Instead everybody is working on different projects, and they may be in Teams meetings and talking and talking about things with zero interest for you, and that can't possibly be productive. Even worse if you're in an office with one guy constantly on the 'phone on customer support or whatnot..


How about when they put the software team right next to the sales team?

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.


Did you have the head of sales ringing a bell for a sale every few hours too?


Airbnb was open plan (it still is, I’m just not there anymore). They also have an amazing Food team who would occasionally, randomly, bake treats for us (this is relevant, I promise).

There was no sales bell, but there was an outage gong. Any time we had an outage affecting the “Book It” flow and revenue stopped flowing that gong rang out. Hearing the gong meant engineers would abruptly leave meetings or lunch to come help fix the issue.

As we scaled and hit the limits of various systems we had periods where the gong rang out semi-regularly (a few times per month). These were hard times for engineers.

Soon, engineering started to push back on Product requests, took the time to re-architect and build better systems, and calm was achieved. Months went by without hearing the gong ring out, then years passed. People joined the company and got promoted, never having heard it ring. Until one day in 2018.

I was working near a pod of project managers, and I hear the gong. Like Pavlov’s dog, it triggers an immediate wave of anxiety in me: something is very wrong. But my blissfully unaware PM colleagues have no idea, it’s the first time they’ve ever heard the gong.

One lady looks up from her laptop and asks: “oooh, did the Food team make cookies?”


Love this story! As someone that joined the industry remote, its stuff like this I sometimes worry im missing out on.


[flagged]


this kind of content-free hate has no place on hacker news


To me, this seems like a positive problem.


Of course it is good, if the sales team succeeds. But it is bad if that means that the developers are unable to do their work.


I think what ends up happening is that you sell a lot of stuff that gets steadily worse over time.


Depends how you feel about $NOISE


> asking quick questions and getting an instant answer. vs chat where I may not get an answer for hours.

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.


> 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.

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


Isn't what you say contradictory?

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.


If the question is truly simple it can probably be answered by the codebase or the internet. Otherwise the flow is ruined anyway when you stop it to ask someone in person. One has to load the context that was subconscious into the foreground for explanation of why they're asking.

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.


If one requires interrupting 6 other people to maintain flow, it's probably a good idea to start phrasing (hyperbole intentional) it like:

'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.


> If one requires interrupting 6 other people to maintain flow

Where is this "6" coming from?

Again:

1) You may be incapable of doing work when someone walks next to you, but this is not the case of a lot of people. It's like driving and then going like: 'Gee, when these cars are putting their blinking lights on and it is distracting me, they should all quickly park before I arrive'.

2) My flow is fine, thank you very much: I don't get distracted by people passing by AND I also rarely ask quick simple questions (people needs to understand my work rather than me needing to understand theirs). It's telling that you cannot conceive that someone may disagree with you without themselves participating to a caricatural behavior that you have in mind.

3) THAT'S EXACTLY MY POINT: the world doesn't revolve only around anyone. If you are inconvenienced by something that is convenient by someone else, then, outside of your little person, THERE IS NO REASON TO CHANGE THAT. If situation A means that employee X gets 6/10 and employee Y gets 8/10, and if situation B means that employee X gets 8/10 and employee Y gets 6/10, then situations A and B are the same.

4) I know that your argument is that your inconvenience is huuuuuge and touch everyone in the office and that the benefice for the distractor is smaaaaal and that the distractor is a terrible human being that should be thrown in jail. That's what self-centered people tends to believe.


> 'Gee, when these cars are putting their blinking lights on and it is distracting me, they should all quickly park before I arrive'.

No! Because the accepted thing is to use your turn signal, as it's acceptable to do some research on yourself before asking somebody, or try to keep your voice down in shared rooms, or to not tap people on the shoulder when they have indicated deep work (headphones).

I am upset from people who DON't use their blinkers, who tap you on the shoulder while you have headphones, and who discuss Game of Thrones loudly next to you while you are trying to work, and I have every right to be. People like that make their lack or desire of understanding or following etiquette everybody else's problem. And that's not okay!

The etiquette of new workers is to try to follow the onboarding documents, and the guidance from their assigned "buddy", and if something is missing, distill the questions they have and go over them with the "buddy". If that's what OP's post saying, fine. But I got the impression they simply like to ask questions cause it's more convenient for them. Let the company, however, use that as a learning and drag itself kicking and screaming to update their onboarding.

> That's what self-centered people tends to believe.

The people who don't use blinkers ARE the self centered people, making their hurry everybody else's problem. A person who asks questions can be doing so for many reasons: not complete documentation, getting bad understanding of something, wanting to clarify some info or to be in the same page as the team, etc.

But if they do so incessantly, then there is a problem, and the problem shouldn't be simply solved by saying: "Yeah, just ask John, he's always available and ready to help". As senior devs and leads and VPs of Engineerings or CTOs, we should foster a place where most questions can be answered easily in a self service manner, and our meetings have clarity on at least the big picture stuff.

If all that is already there, asking many questions all the time can rightfully be labeled a "disruption". In that situation, the person asking questions always makes their problem (not wanting to do some work themselves) the problem of everyone else, and that's what self centered people do. In much the same manner, people not using blinkers (illegal, by the way) make their refusal to follow rules everybody else's problem.


> ... as it's acceptable to do some research on yourself before asking somebody, or try to keep your voice down in shared rooms, or to not tap people on the shoulder when they have indicated deep work (headphones).

Again, nobody is pretending that they want to do that.

> I am upset from people who ...

And I'm upset from them too. In fact, I'm upset from people who have childish behavior and ask other people to adapt to their needs. In this conversation, you call "toddler" someone who did not propose anything that corresponds to what upset you. You just work differently than this person, so you childishly reacted.

You are clearly not better than people who don't se their blinkers or discuss Game of Thrones loudly: you also don't have considerations for the needs of others around you.

As I've said in my first comment on this thread: what if someone is in their flow and just need a quick and simple answer to a quick and simple question. You call these people "toddler" even if they will never ask someone they know does not like to be disturbed.

> But if they do so incessantly

Who is proposing that they do it incessantly?

All I'm saying is that when A needs to ask a question and get an answer immediately and B needs to not be distracted, both to keep their flow, then, logically, there is no solution where someone doesn't lose their flow. And my point is that you act as if someone here has more right to their flow than the other, which is just self-centered childishness.

> and the problem shouldn't be simply solved by saying: "Yeah, just ask John, he's always available and ready to help".

Should it be solved by "if you have a simple and quick question and Jack told you several time that he loves answering these questions and that you should not hesitate, you NEED to book a meeting, otherwise, according to ath3nd, you are a toddler"?

> If all that is already there, asking many questions all the time can rightfully be labeled a "disruption".

WHO IS SAYING INCESSANT QUESTIONS IS NOT A DISRUPTION?

This is very simple:

yes, incessant not pragmatically useful questions is disrupting, and people who do that are self-centered.

yes, asking people to "book meetings" or "write a message and wait hours before getting the simple unblocking answer" is disrupting, and people who do that are self-centered.

Just be a grown-up and accept that, no, people have no reason to cater to your little comfort. Someone tap you on your shoulder when you hear your headphone? Though sh*t little baby! Are you really arguing that these people are the problem when you are the one not able to deal with that. There, a little trick to you: "hm, John, next time, maybe you can ...", and problem solved (and if John does it again, guess what: WE ALL HAVE THESE KIND OF PEOPLE IN OUR LIFE, you are not special enough that the human condition should not apply to you. And based on you calling "toddler" someone while not even saying anything bad, I'm pretty sure you are the "John" of someone else)


> WE ALL HAVE THESE KIND OF PEOPLE IN OUR LIFE, you are not special enough that the human condition should not apply to you.

And I (and most other people in this thread) am fed up with them and trying to actively remove them from my life. Hence, when people suggest I should deal with it, I tell them that I will most certainly not deal with it. That there are things that can be done to make their and mine life easier.

There are people who put their soda cans on the ground, there are people who talk loudly in the train, there are people who park their cars wrongly. Yes, it's a mild inconvenience. But I won't be dealing with it and accept it, I will actively shame them for the spoiled babies that they are, making a spectacle of their needs and accepting everybody to cater to them. Follow.Societal.Rules or get out of society!

> Just be a grown-up and accept that, no, people have no reason to cater to your little comfort

Me putting out all possible social clues that I don't want to be asked questions at the moment is not people catering for my comfort. It's people going through my boundaries so they can get their little comforts themselves.

> Are you really arguing that these people are the problem when you are the one not able to deal with that.

Yes, because they are breaking established social norms and work etiquette. I have clearly indicated by wearing headphones that it's not the time to be asked questions and I have indicated what's the best possible way for me to be asked questions: email, slack, a scheduled meeting, and many questions in bulk.

I most certainly will not cater to how somebody prefers to ask ME questions just because it's more convenient for them to do it ad-hoc. The same way developers of open source want you to use THEIR issue tracker, and fill THEIR code of conduct, and follow THEIR coding guidelines, and not you doing whatever the heck you want.

If you want something from somebody (like information), better follow their preferred approach of how to be asked, and not act like a spoiled little baby when you are told NO.


> And I (and most other people in this thread) am fed up with them and trying to actively remove them from my life.

And OP does that too, but suddenly, when OP does that, they are a toddler, but when you do it, it's fine.

> There are people who put their soda cans on the ground, there are people who ...

and there are people who will call "toddler" people who have just a different way of working and are not imposing nothing bad to anybody else.

> Me putting out all possible social clues that I don't want to be asked questions at the moment is not people catering for my comfort. It's people going through my boundaries so they can get their little comforts themselves.

Again, the person YOU called a "toddler" has done nothing wrong. YOU are the toxic person who jumped on the conclusion that just because they have a different way of working, they will "ask you incessant questions even after I've said it's not how I work".

It is very very difficult to believe that you are not a little baby just after you acted like a little baby when no one proposed anything that has any negative impact on you.

> because they are breaking established social norms and work etiquette.

Breaking established social norms and work etiquette is one thing. Throwing a tantrum because someone has broken established social norms and work etiquette is something else.

Personally, I would say that the socially handicap person that get upset because someone tap them on their shoulder is the one who is breaking the established social norms and work etiquette: socially, the etiquette at work is to try our best to get along, even when the person in front does not deserve it (I dislike this norm, but it exists).

> I most certainly will not cater to how somebody prefers to ask ME questions just because it's more convenient for them to do it ad-hoc.

Let me use an as stupid and as caricatural view as you here:

I most certainly will not cater to how ath3nd prefers to be communicated to just because they are incapable to provide proper onboarding and proper documentation. If someone tap you on your shoulder, it is because you are not able to do your job. Why someone will have to adapt to your failure?

End of the caricature view, now something more meaningful: you deserve to be communicated with in a way that is respectful of your needs and ways of working. BUT you need to respect others people needs and ways of working too and accept that sometimes they will not read your mind.

You keep coming back to the caricatural picture of someone asking incessant questions after you explain them your way of working. As I've said, these people are disturbing and we should not cater for their childish behavior. The problem is that you are treating EVERYONE that way (as proof is you treating OP as a "toddler" when OP did not show at all any behavior you complain about here), and it makes you a child also.

As already said, 2 things can be true at the same time: 1) people asking incessant questions are toddler, 2) ath3nd is a toddler.

> If you want something from somebody (like information), better follow their preferred approach of how to be asked, and not act like a spoiled little baby when you are told NO.

You are talking about people who will say "NO" because they have been tapped on the shoulder. Who is the baby here?

Again, we are talking about tapping someone on the shoulder _once_, and not doing it again if you explain you don't like it. You are just a grumpy baby, the existence of other babies will not change that.


> Again, we are talking about tapping someone on the shoulder _once_, and not doing it again if you explain you don't like it.

I don't think I should be touched in the first place. I have put a clear signal that I am deeply working: headphones. The accepted social norm is NOT to bother somebody when they have indicated they don't want to be bothered. I am, of course, going to answer the questions, but can't you simply wait until I indicate I am ready to accept your questions?

The benefit of remote here is palpable: you simply don't have the option to tap me on the shoulder, and you can only call me (in which case it's important enough to call), write me an email (which forces you to have a coherent point, and I can respond to it later) or slack me (which, again, I can postpone for later).

> You are just a grumpy baby, the existence of other babies will not change that.

I don't know about babies, but do you know who doesn't like being said "NO" to and who throws a fit ever time when somebody expresses a boundary? Bullies! People who gets upset when you express a boundary and expect that you should just submit to THEIR way of answering, those are the real babies!

Occasionally asking questions (for which it doesn't matter whether it's office or remote) is okay, especially when starting your job. On the other hand, expecting others to be readily available for your ad hoc queries repeatedly, day in and out, trying to actively persuade them that it's okay, and guilt trip them to continue doing so because it's "their work duty", and throwing a fit when people express a boundary to you, that's what real babies are made from!

Learn to ask questions like a decent worker, batch them, write them down, and with as little disruption as possible, and don't bother people who are deeply focused. Your question can wait, the world doesn't revolve around you, and value your coworkers time! I won't back down from this!


> Your question can wait, the world doesn't revolve around you, and value your coworkers time!

…right, but the world doesn't revolve around you either though. You should be willing to sacrifice your time to help your coworker and value their time as well.

Headphones, in my experience, tend to indicate a person is listening to audio, not that they don't want to be bothered by anyone. Maybe your expectations do not line up with societal norms? Just something to think about.

You could consider adding a visual indicator to your workspace that says "focused on something, please do not interrupt" or "available for questions". Our offices have little stoplight things by the door that can be used to tell someone whether or not it's a good time for an interruption. Having something easily visible like that can communicate more clearly to your coworkers that you're trying to focus without interrupting your focus.


What are you talking about?

OP said "asking quick questions and getting an instant answer. vs chat where I may not get an answer for hours"

It's ALL they have said.

They did NOT said they will "touch your shoulder", they did NOT said they will "interrupt you when you clearly don't want to be interrupted", they did NOT said they will "interrupt you after you made clear you don't like working like that", they did NOT said they will "ask incessant questions that are easily found in the doc", they did NOT said they will "ask you to answer day in day out", they did NOT said they will "guilt trip you to do something obviously unreasonable", ...

And, YOU, YOU called them "toddler". YOU DID THAT. If now you are changing the goal post to "people who guilt trip other people are not nice", yeah, everyone agrees with that, but WHY DID YOU CALL OP TODDLER?

WHY

DID

YOU

CALL

OP

TODDLER?

What is the thing that OP have said (really said, not something in your mind) that according to you is not compatible with a respectful and sane work relationship?

> who doesn't like being said "NO" to and who throws a fit ever time when somebody expresses a boundary?

Yep.

Me: your colleague needs to work, if they are blocked by something that can be easily solved with a simple quick question and that they are being reasonable with their requests, they should be authorized to just ask you. They should not have to walk on egg shells to cater for ath3nd social inabilities, it's not their work, it's not their mental charge on their shoulders, there are boundaries.

You: NO, they should just submit to MY way of being asked a question.

The situation is EXTREMELY SIMPLE: just don't be a prick. You and everyone else.

Don't ask incessant questions.

But also, don't ask people to care for your fragile person who is not able to get one or two questions a day that will help everyone progress.

Not liking question is fine. Just act like an adult about it: discuss and tell them. Don't jump on the first person who passes and says "I find quick question convenient" and yield "well then you are a toddler" without even knowing if this person is a prick or not.

ALL your explanations, ALL OF THEM, they are ALL about YOU, YOU, YOU. You only present situation when you are reasonable and when the interlocutor is a prick. Yes, we know, incessant questions are disruptive (daaaah, it's obvious). But there is more than one way to be a prick. One other way is to be a self-centered idiot who is incapable to help the team because they view everything into distorting glasses (like when you call OP "toddler" for behavior they never had) or because they view their work relationship in a competitive way instead of collaborative (like when you say that the person who ask the question "owns" something to the person who has the knowledge)


If the majority of people are babies about an issue, then perhaps you should start running a nursery.


If Alice wants to focus on her work uninterrupted, but Bob wants to interrupt and ask a question, what should happen?


That's exactly the question.

My solution is: Bob should try to ask with moderation, and Bob and Alice should work together in a situation where Bob does not need to distract Alice. If Bob needs to distract Alice, then Alice just needs to live with it. If Bob has questions but does not need to distract Alice, then Bob should not ask the question and just needs to live with it.

What confuse me is that some people here just answer: obviously Alice is right and Bob is wrong, all the time except exceptional cases.


I believe we should examine why Bob needs to distract Alice on a regular basis, and attack that problem with the might and fury of 1911 raging bulls and 420 mosquitoes.

> What confuse me is that some people here just answer: obviously Alice is right and Bob is wrong, all the time except exceptional cases.

Joking aside, I do agree with your point. It's not black and white and there shouldn't be fear/hostility connected with simply asking a question. However, 100% being open to questions all the time is simply disruptive for everybody.


If I was Alice's employer and valued her (and other employees) being able to do deep work, I'd have a policy whereby employees could schedule do-not-disturb time (large blocks of it, depending on their needs) where they could shut their doors and turn off IM. Have a red light on the outside of the door, like a film production booth. Book end the day. First 1-2 hours are disturb time. Middle of the day is DND time. Last part of the day is disturb time.

All scheduled meetings have to happen in disturb time.

Now, that doesn't really work for a customer-facing role, at least not without the cooperation of your customers, but having managed a customer-facing team before, I'll say I encouraged my people to schedule office-hour time with their customers to try to channel the interactions in a more predictable period of time.


Email


…Don’t check it during your DND time…

…Set an expectation that the turnaround time for an email response is 24 hours…


The “6” is coming from the original comment in the thread.


In my experience, the typical picnic table sized open-plan/hotdesk furniture usually seats six (three per long side) so, in practice, six people seems like the most common group sizing.


there are 6 people in the room, but as I said, it does not mean that the 6 persons are all distracted. (by the way, the initial comment was implying that the question is coming from one of the 6 persons in the room, so at worst, it's 5 persons distracted)

the question can also be useful for one other person in the room, so instead of being distracted, the person has been helped.


No worries. Was just answering your question.


I can only second this. I honestly had the best time of my (professional) life when I had a little room with the rest of my team.

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.


> 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.

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.


That's so different from my work. I work in a team of about 30 people on 1 feature of a very popular app. None of us are working on the same thing at any given time. Most projects have 1 person that works on it or knows how it works. It's sad and isolating. And the company forces this culture by virtue of how promo works.


I worked at a place with a great office layout. A group of a few people working on the same or related things could all have private offices with doors, but it was also easy for people to call out questions to others or gather together to discuss ideas and see what others are up to.

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.


I had the privilege of designing a small 4 office space exactly like this for our small bioinformatics developer core. It was beautiful and worked very well. Then the company's legal department decided Legal would benefit more from it and kicked us out. It goes back to how much a company values its developers.


This is the best. Offices with doors, as a semaphore for availability, and a close by common area for collaboration.

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.


This layout seems common for graduate student offices in academic buildings. I was jealous.


I think the key part of that is working on the same thing.

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...


I'm glad you like it. Let's just all remember that other people feel differently and will be productive in very different circumstances. I don't need to feel very connected to the team, they are just business partners who are trading their time for money. If we can be friendly, that's awesome, but I'd much rather be connected to my family.

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.


I always find it surprising that so many people struggle to make effective human connections over chat. I think it must be generational, as I believe these are the connections I and other young people prefer.


Once you have a solid foundation, text chat is almost as easy at maintaining that connection as in person conversation.

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.


I've made numerous friends over IRCs, Warcraft 3 chat channels and whatnot and had preferred it over face-to-face (and I still prefer chat over zoom calls!) but as I've gotten older, I started appreciating talking in real life more and more, and now struggle to form connections over chat. I wonder if there are others who are in the same boat.


You cannot compare an open chat, with a strong interest in a particular topic vs you team's Slack channel.

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 get what you are saying but I seem to find it hard to engage with anyone, even my old friends, over chat these days. We end up hopping into voice chat when we want to catch up.


I've also never had particular problems making connections over chat (I'm not old and not young); particularly in companies where I've had a chance to meet people in person even once or twice, I've found online communication no problem at all


You'll need a new theory. I've worked with two late millenial/gen-z developers who couldn't hold up a slack conversation to save their lives, so we went to zoom very quickly when they needed anything.


And I struggle to understand how can you make any real connections without seeing and hearing other person. There is so much communication hidden in body language and voice that for me any kind of text communication is just poor substitute. And I am not even extrovert that loves interaction with others (rather the opposite) and still know this intuitively to be true.


Old person here, been using some form of chat since 1984 (The talk command on VMS).


I agree. If I have a personal office I might as well sit at home.

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.


When I was junior I shared an office with a senior. I was constantly asking him questions. He pretty much knew everything, I'm not kidding, this guy was amazing. So this arrangement worked out really well for me, but not sure how much he liked having his work interrupted so much. Could be that between the two of us, the benefits averaged out to zero.


This is where headphones can help. Headphones on, don't bother the person or only chat.

That was an unwritten rule the last time I worked in an open space.


I find people don't care and will talk to you with or without headphones on and expect you to take them off.


About half at my last job always had headphones on to be able to concentrate.


This is the way


Demanding an instant answer is often a burden to teammates. If they have spare time to answer they will answer in chat. Be patience and be respectful to working routines of other people.


>Some do, not all do. I do much better in a room with ~6 people that are working on the same project. Much better than working at home. Much better than a private office (which I've had).

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.


Phone? I'd always leave my status as do not disturb then. I don't know when I'm about to enter a state of productivity. Only once in a blue moon do I spin around in my chair quietly asking someone to come bug me because I'm bored/don't have anything fun to work on.


[flagged]


Please don't post in the flamewar style, and please edit out swipes. This is in the site guidelines: https://news.ycombinator.com/newsguidelines.html.


I'm not at work to make friends, but also being connected to the people around you who you are spending 8+ hours a day with is important, I believe. What happens when you need something? Relationships ease communication, and reduce the chances of miscommunication.

Do you just want to sit in silence all day making money for the company? Do you never need to blow off steam? Do you never need help?

> i dont want to hear your quick questions

I'm not trying to be hateful with this next sentence, but I struggle to even understand who would act like this, and for what reason that isn't a diagnosis.


I never understand this. Why being so focused on work, to the detriment of building some relationships with the people you work with? Is this a HN/spectrum thing? Or capitalism-simping where people aspire to be robot-workers with no humanity? Why not enjoy your time at work? After all, you're spending 8 hours there a day, and see those people almost as much as your spouse, and probably more than your friends.


The second reason. Companies that are worse at getting people to self-exploit tend to do worse financially, and thus tend to disappear. Of course, if too many people quit or burn out, then the company will go bust, too. The optimum will be just one step short of that. And whenever someone starts a new company, they will look at the existing successful companies for how things are done.

There is no evil master plan. The processes that lead to self-exploitation will sound reasonable and well-intended. (If this wasn't the case, people would refuse to adapt it. Most people don't like exploitation when they see it.)

For example, in most of Europe there is a law that requires employees to record their working hours. This law was created to prevent (unpaid) overtime, and it does that. Now company X implements this by making you write down how many hours each day you worked towards which task. Doing this every day makes you think where you put this one-hour chat you had with a co-worker. It was nice, but which task did it contribute to? (It didn't...?) If you bother to ask, everybody will actually encourage you to have those talks, that it is even in the interest of healthy company culture, and remind you that maybe it's part of the paid break (you didn't forget you have that, did you? it was never anyone's intention that you skip your break). Nobody will be responsible for nudging people towards efficiency. It's all the fault of the individual who feels pressured into efficiency. It was never anyone's intention to prevent you from having those occasional nice chats, and nobody will stop you if you keep doing it.

Still, every day you get to think about how long it took and which task it belongs to, and it feels a bit like lying to just add the time to a random task. This kind of habit can shape your thinking.


Just want to add that I only became (at least in my opinion) a good programmer by sitting next to a very good and passionate one that I was able to question from time to time and may have interrupted his work some days.

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


I am a huge fan of mentorship; I benefited from it early in my career, and I strive to offer it to others now. I don't think that requires an open office at all, though. I think mentorship works even better if you're in a quiet environment where you can talk comfortably and not worry about bothering the people around you.

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.


Well... I have a counter example of a failure in FOSS, because of remoteness of the responsible department:

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.


If you want to collaborate, that’s what setting up a meeting with an agenda is for.


> how a new grad excited about writing code could find a mentor and really up their game in the remote world

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.


When I onboarded a junior engineer in 2021 I had a one hour scheduled Zoom call every morning for the first three or four months, and we'd Zoom usually at least another hour ad-hoc in the afternoon. He would screen share, I would screen share, and we got a lot of learning and programming done that way. You have to have a culture of people dropping Zoom links at any time and being ready to respond within say, five minutes most of the time. Or at least that's what worked for me.


In the past I've participated in weekly pair coding sessions or group coding sessions, say 2-4 hours on a Friday afternoon. That was with an open source project. The meetings included both maintainers and newer contributors.

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.


> 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.

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 think pair programming is way better remote, when you can share screens.


The primary means I've seen it happen by is by being part of a team that does pair programming rather than code reviews. In general I've seen it do wonders for team alignment, integration speed, and ramping up new colleagues, junior or otherwise. It does take a concerted effort to learn and do well though. There are best practices, and putting two random programmers behind the same computer does not necessarily mean they'll find and apply those.

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.


Mentorship doesn't have to be interactive. My first boss mainly mentored me over email. In fact, my first job largely worked over email and it was a bit of a culture shock when the next one was largely instant message based and also had daily meetings as well. I felt a bit like I had gone back to infant school.

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 think the interruptions in a group setting have huge disastrous effects as nobody really ever gets into a good flow state.

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 highly, highly disagree. Getting advice on the spot is often critical. And rarely will you get good practical advice like "always do a dry build locally from the command line" on the forums.

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.


Too much interruption is bad, I agree, but there are some type of skills / mindset that are 100x times simpler to gain by contact with colleagues than by training on your own (even when looking at forums). Especially on the things that you wouldn't not think about improving.

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 most in sync i've ever been with a team was playing end-game raids in MMO's using ventrilo. huddles, meet, and zoom just aint the same. I've never tried discord though.


Discord is funny.

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


I mean if you set aside the mere theming, Discord is everything Slack should be


Yup.


You got more, maybe the company got more, the senior got less: two jobs, only one pay. Now with remote work, companies really have to carve out budget and time to train people. They don't like that.


> 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.

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.


Should and do, are two different things.

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.


A DM will never be as compelling as asking someone something in person. People can and will entirely ignore DMs about topics that they would never ignore in person.


You could reach "generals effect" by being a listener to skilled dev's musings - sometimes all one needs to unblock is to tell somebody else about what the problem is and the solution suddenly pops up without any contribution from the listener. So you could form a symbiotic relationship with a skilled dev - you'd learn their tricks and they'd use you as their "unblocker".


Biggest thing is changing cultural dynamics to make maximal efficiency of remote work. Which includes that sometimes, you get a team of people together temporarily in person to really focus and iterate on issues, but we all know the majority of time, this isn't needed for proper collaboration.

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.


> Which includes that sometimes, you get a team of people together temporarily in person to really focus and iterate on issues, but we all know the majority of time, this isn't needed for proper collaboration.

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.


I work at a 30 person company in a partitioned office designed for four people, including the CEO, a graphic designer, and a secretary. My role involves focused programming tasks, which are frequently disrupted by the office dynamics.

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 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.


Thats one reason I prefer small companies. Less bureaucratic BS, more accountability, etc. Sure there isn't as much room for career growth and other downsides, but much simpler.


>This concern about appearances adds another layer to the already challenging office environment.

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.



I like to think that providing a team with private offices and all the old-school perks would help create a working environment where they'd feel more appreciated, and thus end up working better.

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.


This strikes me as very thoughtful, though I imagine I'd end up concerned about whether I was feeding said assistant sufficiently meaningful work...

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.


> 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.

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.


Although I am sympathetic overall, it really isn't about programmers, it's about anyone doing mental-flow work with focus. Open plan is for a different state of mind and product. It can be condusive to some good outcomes, but the cost is the loss of flow.

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.


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.

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.


I'm not sure you are talking about the same thing when you say "flow" that I think most of the other people are talking about when they say "flow".

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.


Hm, I think I have the same definition of flow.

For example, you can be "in the zone", and then suddenly realise you need answer X than only John can provide. In the office, you can look at John and he does not look busy, so you quickly ask. Sometimes, people don't even realise they are asking, they are still in the zone, checking if John is available is done by another part of the brain. After the answer, you continue, you are still "in the zone", you still have everything you need in your head, you are still juggling with different variables, they are still there.

Now, if you cannot ask directly, you have to send a message on Slack. And then what? Well, you cannot continue to work on the part you were working on. So you have to switch task, drop all of the variables you juggle with in your head, get out of the context you were in. Then John answers you on Slack 10 minutes later, you have to recollect everything in your mind.

So, yes, that's my point, not being able to ask a quick question will destroy your flow. The effects are the same as being distracted by a question when you are "in the zone". I don't think that asking someone about something is enough to get out of the zone, as in practice, developers "ask" their computer or internet things continuously. A simple "ls" or "ctrl-f" is as disturbing as asking the colleague sitting next to you.

Of course, it may depend on people, but I think it's just not a smart way to approach the problem as if everyone is always working exactly the same way you do.

I also think that some people will think stuffs will break them out of the zone when it does not always really do, just because they don't even notice the thing happened when it does not. It is a bit like those people who say "I always wake up when the cat pass next to my window" just because the 5 times they woke up, the cat was indeed passing next to their window, but the cat passed there 50 times without waking them up.


This is the manager's or marketeers version of flow. It is not the kind of flow we're discussing here.


Agreed. Even back when I had my own single office I got interrupts all the time. And I need flow when programming. Every interrupt cleared the cache and I had to spend time building it up again.

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).


Senior programmer on management side. Personally when I'm coding, yeah, isolated, distraction free environment is my demand. I'm knocking stuff out, achieving flow state. Anything else I feel frustrated that I'm not performing at my peak. I liken it to brain surgery. You wouldn't expect to be well received if you just pop into the OR to discuss getting new scalpels in the middle of an operation.

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.


> If the distractions truly cut productivity in half we can double the number of seats.

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.


> Usually salaries cost more than offices.

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.


> An individual having the best coding experience is rarely the ideal option for the company

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.


And so the can of worms opens again!

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.


Everyone wants to be in some control of their space and thoughts.

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.


Surprised not to see a link to Joel Spolsky’s (20 year old!) on the bionic office with private space for all programmers : https://www.joelonsoftware.com/2003/09/24/bionic-office/ this has been known for decades.


But, why offices at all? All my productivity problems are solved by just working from home.


This. I'm about to build a dev team next year, and my co-founder is kinda disappointed that I want them all completely remote. He's the old-school "let's have a big office where we can all get together" and I'm "let's not and say we did".

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.


may your project prosper.

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.


Have you guys ever thought about the fact that there are nerds that like so socialize and hate working from home, because it gets f'ing lonely after a while? I want to see people. The corona pandamic where I worked almost 2 years from home drove me into a severe depression.


Yes, I have a theory based on this. I think that roughly 40%-60% of developers prefer remote, the remainder prefer in-office. So if you mandate in-office, roughly half of your developers will be unhappy. If you go full-remote, again, roughly half of your developers will be unhappy. So what do you do? I think you have to pick one and stick with it. Over time, you'll collect people who prefer remote or in-office. It won't be easy, but doing "hybrid" is absolutely the wrong decision, that makes no one happy.


The reason I like the office is mostly for the free food and events. I don't get much more out of my coworkers by being physically close to them. They don't like to be bugged (I don't either, usually). Maybe a little at lunch when I can pick their brains about random crap that doesn't warrant a meeting but not much.


I really believe your number is more like 80%. But yeah, the overall idea stands.


Have you ever thought about the fact many people like to work from home because it leaves more time to socialize with family and friends?

Pandemic restrictions have ended. You could eat lunch with a neighbor who hates working from home also. Or rent shared working space.


On the other hand I have no interest in socializing with my colleagues, and I'm no intravert either. I have plenty of actual friends outside of work, and the nice thing about working from home is that I can catch up with my mates during the workday while still working!


Yes? And people like you have enjoyed an office environment that by default catered to you. It's not those of us who finally found productivity in a controlled, quiet environment that lack empathy, it's you, the group that can't imagine that "normal" might not be universally healthy and that for the first time are finding themselves not the default perspective.


Well, yes. I used to have my own office, for most of my career. Then when we had to move offices there wasn't enough room for that, so now we have smaller or larger rooms with from a few to many people. In general I'm much less efficient when working like that (the only exception is when I, for specific purposes, join up with another person to do work in tandem with something. That can be highly efficient, but it's limited to just those specific cases). So that's one reason I use my home office most of the time. But it is useful to meet up with the others once in a while (and not just by Teams), so after this morning working from home I'm heading to the office for a few hours.


The older i get the more i think, the project management paragdigm should be one of protecting the productive core at all costs from external disruptions.

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 read maybe two or three of these articles here on HN, and I am totally convinced that this is true, but my boss is not reading HN and has a different opinion. A shared office is also cheaper for him, so I need more than forwarding a link to an article to convince him.

I would love to hear more about how people actually changed their situation, other than the obvious way of looking for another job.


In my case, eat heavily seasoned high fiber foods. 6 weeks tops.


You can't you vote with your feet unfortunately.


My analogy for some kinds of programming is mental juggling. Good programmers, juggle lots of balls at one time: the problem components, constraints, other problem elements, production issues, reliability issues, all the possible solutions.

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.


Wow, this is the best way to describe the flow state to my non technical manager. Thanks.

However, I don’t think she will still able to understand and empathise.


In my whole professional life (last 15y) there was not a single time where I had anything resembling a private space where I could just close the door and work in peace.

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 :-)


> A room full of engineers is tolerable, and if they're on your team this is even desirable.

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.


>Until one of the engineers who has no social awareness decides to eat at their desk instead of taking lunch elsewhere

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.


Could very well be, in which case that would be even worse.


>no social awareness decides to eat at their desk instead of taking lunch elsewhere

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?


It requires social awareness to be conscientious of the fact that it might smell or produce noise. I'd wager that anyone who's worked in an open office and is sensitive to these things could attest to the prevalence of people who underestimate how often they chew with their mouth open, for example.

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.


> If it doesn't smell

I guess that's exactly the problem. The only food which doesn't smell is cold food.


Ya that's what I meant there. Someone who is both eating lunch at their desk and who lacks social awareness about the sounds and smells.


>the CEO wants to see everyone sweating

In all seriousness, sweating is the biggest factor for me. My clothes smell so much nicer ever since I began working from home


Current writing something like BLAS from scratch for 2 years. I admit that my house is a better work place than my lab. Writing loops and let compiler to optimize that for you is easy. But thinking in terms of vector, tensor, broadcasting, parallel and then convert everything into bit operations is hard. Seriously I can't do any low level implementation in office environment.

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.


While I don't really _disagree_ with any of this, I want to raise a point from the other direction - it's possible (and for some of us, absolutely necessary) to build software such that holding a large "structure of thoughts and possibilities" in your head is not required.

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 >.<


The article oversimplifies things a little, IMHO.

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.


I always see noise cancelling headphones put forward as a solution to noisy office environments . . . I don't want to wear headphones. I don't want to be cut off in my own bubble. I want to be connected to my environment, and I want it to be a nice place to get my work done.


It's not the solution (plus they have an "aware"-mode that doesn't shut you off completely), it's a possible solution and a rather simple and cheap one at that.

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 some people don't want to stop interacting just to cater to you, and some people want you to answer their question immediately so they don't break their flow.

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.


> Can't deal with the noise of an open plan office? Provide ANC headphones.

Company-issued PPE for hazardous offices?


DnD? I can't not read Dungeons and Dragons. Debug and develop?


Do not Disturb.


Once someone scheduled a meeting with me on focus Friday. So uncool. I almost declined.


Favorite office setup as a programmer - was early 2000's.

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.


I worked in an office with 10 other people once.

It worked well, as long as the other people were devs or admins who didn't phone all the time.


The shittiest thing about going back to the office after the long WFH period has absolutely been the normalization of taking calls at your desk in the open office environment. At least before we had the mutual understanding that it's loud as it is and calls are to be taken in meeting rooms or anywhere else really.


When I graduated from college, never have I envisioned once that my optimal workspace is just a laptop, working from home, while spending time with fam, and get some hobbies done at the same time.


>while spending time with fam, and get some hobbies done at the same time

Getting paid to waste time not doing your job is considered work now?


> Getting paid to waste time not doing your job

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.


Ever notice how the free range chicken tastes better?


Instead of wasting time browsing news sites playing on your phone or just zoning out during downtime, actually being able to take a break and do something you care about instead is _awesome_


> Getting paid to waste time not doing your job

You mean commuting? Getting commuting hours back each day allows you do to hobbies.


I should mention that listening to heavy metal music very loud is my hobby. This is impossible in a work setting.


We're always doing our jobs, even while we sleep! You can't switch off your brain (well I suppose you could try meditation).


Having worked in both open floor plan and private offices (9 vs 8 years respectively) I’ve come to the conclusion it just doesn’t matter.

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.


The arch keystone got me thinking. What is a keystone and what makes it different to any other stone in the arch? Surely all the stones in the arch are needed to hold the structure in place. If any stone were to be removed the structure would collapse after all.

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.


> These two types of work were first identified, to my knowledge, by the programmer and essayist Paul Graham.

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.


My first job out of college (~2007) had an open office plan. The development team sat right next to all of the sales people making phone calls during the day. When someone made a sale, they would scream loud and then ring a bell (loud cheers then proceeded from the rest of their team).

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.


Open office layouts might work for some jobs like sales or similar, but I always argued that even the desk placement has an impact. For example, I personally prefer to have a wall behind me instead of others walking or standing or chatting behind me. It’s just a big distraction, plus the usual interruptions that you get because you are sitting next to them. Additionally, if you are sensitive to noises and sounds like me, it’s even worse. In one of my jobs, it was like that and - since it was in engineering - the workshop was next to the office and you can imagine all kinds of noises. The worst part is I tried to explain that this environment is the worst for anything beyond just filling forms or doing presentations, but they never changed anything and even remote work was discouraged. I had to leave that eventually


It feels like there's a lot of productivity theory associated with private offices versus open office but I think the issue is rooted deeper than that. This is an organizational decision and it's one where it needs to be made with the organization's core objectives.

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.


> Why do <demographic> need/want <subjective thing>?

I'm starting to consider these sorts of low-effort, divisive titles as click bait these days.


The internet repeats itself a lot. If you want truly novel and thoughtful content you will want to turn to books. Audiobooks are fine, so are obscure technical corners of the web, what you want is the deep and expert content that is not surfaced in the short feedback loops of the internet.


I work remote, so I control who interrupts me. I can turn off Slack notifications, I can close my email, I can put up a calendar entry for 4 hours.

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".


This ignores that in many organizations private offices with doors are status symbols and programmers aren't of the right status to get those. Office politics play an overweight role in way to many places for something like individual preferences to see the light of day.

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.


At has been echoed in the article and in the comments, so many people are different. I write and run software in my head long before it gets into a text file. This is very mental work but I could do it at the Super Bowl successfully. I zone out like a pro and can get completely lost in my head with no fear of distractions.

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.


Working from the office ONLY works when everyone else is working from home and I'm the only one there.

At which point I might as well work from home, and sell the extraneous office space.


Similar issue: My small-ish company used to hand out the emails and phone numbers of its programmers. After enough of them threatened to leave because our customer-facing offices were constantly distracting them from projects, their policy changed entirely. Now there is a Jira firewall, managed by a liaison, and we get to things when we get to them. A distraction-free environment is the only way to get your money's worth from a good programmer.


Not to create too much of a political tangent, but the lack of private offices, or rather the ubiquitous mandatory nature of open offices, and its universal unpopularity with non-managers, is evidence imo that tech could use a union or professional association or guild or something.

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?


In my opinion, you might have an overly optimistic view of unions. And you might also be ignoring the downsides of unions.

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.


Systemic problems require systemic solutions. For over a decade now we’ve seen a steady supply of blog articles, studies (e.g. https://arstechnica.com/science/2018/07/in-open-offices-work...), and choruses of comment threads all agreeing that coders do not like open offices. Yet all of this is empty sentiment because managements don’t seem to care; they might not even notice. Now, a union might not be the solution to this. I already mentioned alternatives. Maybe there should just be more general participation in the ACM/IEEE and give it lobbying power. But the principle is that some sort of collective action seems to be in order, because there’s collective disgruntlement, yet the issue is still unaddressed.


Who makes the decision on office layout? Like specifically, what is the name of the role in a company that does this?

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.


From my personal point of view, expecting a union to force large corporations into modifying their office layout is irrational.


So is complaining on blogs uselessly for over a decade while expecting things to change.

And the overall point isn’t simply that unions will fix open offices so much as some sort of solution rooted in collective action is required.

It’s also an illustration that as a professional class, software engineers and tech workers in general really don’t have as much power in their industry as their comp and perks would illustrate. Especially in times of economic pullback.


I think it was Fred Brooks, in the classic The Mythical Man Month (all the back in 1975), who noted the importance of not interrupting programmers' trains of thought. One of the general recommendations was to turn off phone ringers, for example. If it takes 15 minutes to get back into a concentration groove, being bothered 4 times an hour is a guarantee of destroyed productiveness or quality or both.


My ideal is somewhere in the middle. I don't necessarily need a private office, but a shared space with a small team. This way, I'm privy to all conversations relevant to me. Knowing what's going on often trumps the productivity gains of a quiet work environment.

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.


I know opinions differ. My best experiences have been when sharing a office with one developer, both working on the same project. That way, if we had to discuss something, we would not disturb anyone else, and if not, we both could work in peace. It was easy to see how busy and "deep" the other guy was, and not to interrupt him at the wrong time.


Stack Overflow / Fog Creek famously embraced private offices: https://stackoverflow.blog/2015/01/16/why-we-still-believe-i...


I've definitely seem benefits from working in open plan. Sometimes it's helpful to overhear what others are doing because maybe they're lacking some information or maybe that thing has already been done elsewhere. Does a fresh graduate with no experience really want to be in an environment where everyone is shut in an office?

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.


À previous employer decided to switch from single to two person cubes with announced objective of enhanced collaboration. This intense developer got mated with a non technical social butterfly. Interruptions verging on harassment.

I called the environment: one developer for the price of two.


This monkey user comic illustrate it very well: https://www.monkeyuser.com/2018/focus/


Some prefer chaotic backgrounds, while others consider the Monastic silence of a monastery truly divine.

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. =)


Can we be done deriding cubicles now? And how about we put saloon doors on them that enable occupants to communicate "not right now"? And if they're left open it means: "come on in and interru me!" ?


I think it's also important to recognize that companies tend to accumulate people with very little respect for other people's time. Sometimes you need to Pavlov your coworker into writing things down to discuss at a later time, and that you're not mad at them, just busy.

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.


It really depends on individual. Some, especially juniors, needs to have a sentry behind their back because the moment you will look away, they will start doing something else, like watching YouTube videos


Those ones need to be fired, not babysat. Well... If they're hourly anyway. If they're salary and want to take breaks but they get their shit done, they can do what they want.


For me if I get into a topic (like 2-3 hours focus time) then interruptions are OK, I won't drop context until end of the day.

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


i'm the same, the morning is the most important time and i hate when people initiate small talk when i want to focus


Has office with door - but 15 Slack channels with notifications on. Plus a twitch stream for some game plus a endless youtube of a "relax/study" channel.

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.


Open floor plan is why I am way more productive working from home. Because of that I go into office about once every three months, just so we have in person white-boarding sessions (no actual coding work is possible). Hard wood floors, sales guys talking loud on phones, people buzzing around the office. It's impossible to focus on any non-trivial coding. And no, I'm not going to wear noise cancelling headphones all day.


Not directly related but I noticed that I can be most productive and focus best in a cafe where there is a continuous white noise. Why doesn't this happen in an open office? Also as I see in 40's movies, the newsroom of newspapers were open offices and I can imagine concentrating there. That must be an interesting collection of noises, typwriters, telephone conversations, joking around etc. etc...


"Team" does not appear once in the article. I find open plans to be superior as it makes the team go faster. People can unblock others, people can stop others from wasting time, people can immediately work together to think about a problem. And for times where you want to just pump out code you can put some earbuds / headphones on and use body language to signal that you are in deep focus.


There's no one-size-fits all for people nor problems.

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.


> people can stop others from wasting time

Workers policing other workers . . . the ideal office of the pre-COVID 21st century!


I am referring to stopping someone from investing time into an approach that will not work or is not a good idea. If someone spends a couple days working on something that just gets thrown away, that person wasted that time.


I smell troll


Use of the phrase "pump out code" tells me you don't understand the problem and makes me wonder if you've ever programmed anything nontrivial yourself.


The fact is that there are different sorts of people. Some people know what it's like to do deep, sometimes difficult, independent work on their own. These people have all been ICs in some field. There are also people who have been ICs who have never known such a feeling. And then there are people who have only ever been managers, who also have never known such a feeling.


In defense of the distracting open plan office, I find that I can only really be productive when I am being disrupted semi-regularly. My talkative boss or my noisy coworker are distracting and theoretically take me out of flow, but ai wouldn’t even reach that flow if they weren’t there to make me want to get there (or just provide enough stimulation to sate my hungry brain).


I find working in shared office of up to 2-3 people to be doable. 2-3 people can learn and agree to be quiet most of the time. If you have a meeting, do it in a meeting room, respect each other's privacy, etc.

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.


We don't, we can work from home instead.

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.


Nobody should have an open office policy. Anyone who says they have that is either lieing. Either they don't believe in such a policy and hope you don't interrupt, or they really do believe in it - except they are never in the office anyway.


I often go in so that if necessary, I can pop in and code on their computers a bit if my teammates get stuck somewhere. Yes it’s like babysitting but it takes so much longer to walk them through & explaining how to fix it over chat


I think there's something to be said about the benefits of a collaborative environment. Junior Devs may be discouraged to approach senior devs with questions if it feels like they're walled off from one another


If I had an office with a door that I could shut, I would go to it. No offices are like that, unless you are some big wig that, doesn’t code, and hence I am not going to any office any time soon.


God. That website literally has one ads for every few paragraphs.


My favorite work environment is being in a team-sized conference room (3-6 people). Conversations tend to be relevant and I can tune out any that aren't.


I've found open plan works well when it's a quiet environment. but putting programmers together with the sales folks.. probably not a good idea.


Open plan is great for juniors, but not so much for seniors with a ton of responsibilities already, and who now, the juniors look to for mentoring.


Doors, kind of furniture I'm missing lately... With kids at home doors need to be equipped with a lock. And it helps to have ensuite too...


Because my ADHD means that if I don’t have a closed door I will literally never get anything done.


Honestly I've heard this idea rephrased by many different people, but I think it's unexamined. If someone interrupts me from a complex train of thought, after, it only takes a few seconds of minor confusion before I can get back to where I was - and I doubt I'm unique this way.

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.


Undiagnosed autism and adhd


Silence among silence is emptiness. Silence among noise is true silence.


Private office with doors? I don't need an office at all, I WFH!


For me it’s because my cat won’t stop trying to step on my keyboard.


I ctrl + f the article for porn, that didn't satisfy me


so many screens of text and not one mention of slack, which is the real productivity killer. Something that no amount of doors or offices can protect against.


Slack can be closed or at least crippled by muting every channel.


unfortunately that's not all, my coworkers in all of the last N places have been conditioned to treat you as an evasive hostile psychopath if you don't respond to their DMs within minutes.


Very good article, and well explained I thought


To me, it's not so much offices with doors, but rather some sort of barrier between work and distraction. I don't want to hear about TikToks or food if I'm actually trying to work. An open office layout would work if everyone spoke in hushed tones about work-related stuff, but when it's about stupid shit it's impossible, and "putting on headphones" to ignore everyone is cuck tier and emasculating when other people are giggling and having a great time. Naturally what tends to happen is that no work gets done. Over time what happens is that I stop caring about work entirely and enjoy the office environment exclusively for the shit talk aspect. Whenever I need to get anything done I work from home.


Headphones are my virtual room with door.


I have to pass gas all of the time due to my gut so if you insist on me being in an office setting of any kind... prepare yourself for the worst.


I e actually never seen an office with that setup from startup, to mid and multi nat corps.


Judging by the comments here, nobody is doing pair programming / mob programming?


My team is fully remote and we definitely do pair programming from time to time. Not so much mob programming as much as mob code review on occasion to understand significant code changes and their related decisions.

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.


Pair programming is one of those things you hear about so often, but I've never worked somewhere where it was actually done.

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


Nobody is doing pair programming / mob programming. At best, some people are talking that it might be interesting to do.


There are people who dream that programming looks like "team working programming" stock images[0]. I've no idea why they want this to be true but it wouldn't be the first time people have tried to force others into their bizarre dreams.

[0] https://duckduckgo.com/?q=team+working+programming&iar=image...


I don't think pair programming exists in reality. It is talked about a lot.

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.


And quite often pair programming could be done by single programmer and inanimate object.

Still. It does often work, specially if the other person has better knowledge of technology or code in question.


Mob programming is so easier in a call with shared desktops that at the beginning of the pandemics when we were wondering how we would work after people returned I was pushing for we never do it in a conference room again.


I can’t even imagine creating my own ideas while someone in my personal space is talking. At best I can only sanity check his ideas.


You can do pair programming/debugging great remotely with VSCode or Visual Studio live share.


As I read some of the aggressive, cynical and unpleasant responses here to any suggestion there might be some benefits to an open plan arrangement, it's dawning on me that one possible benefit is that it tends to filter out people with attitudes like these.

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.


There is no “filtering out” when open plans are the de facto standard in an industry and there aren’t alternative workplaces for those who don’t prefer it to go to.

> 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.


> I actively enjoy being interrupted to discuss something unrelated to my current task

wat


> Humans are diverse.


it just sounds like you might have ADHD.

how many browser windows and tabs do you have open usually?


So you're an active participant to the company's office politics instead of economic output.

At least you openly admit it.


... is precisely the sort of aggressive, cynical and unpleasant response I'm talking about.


It's because they make up a minority whose needs have gone uncared for during their entire working life.

Not everyone is like you. Some just want to go to work and finish their own tickets because the company's culture actively disincentivizes collaboration. Some have ADHD and lose their focus to every little movement in the room. Some are introverts who become much more mentally exhausted from such an environment than their extroverted colleagues. Some have a life besides work that sufficiently fulfills their social needs. Some are utterly disinterested in hearing about Bob's ongoing kitchen renovation or Netflix preferences. Some are employed at a place with poor camaraderie. Some have a position that makes the supposed collaborative benefits of open offices a moot point (work in a distributed team? On a single person project?). But always, they have a people-person manager who thinks everyone should work in-office because water cooler conversations are just so creative and open offices are so dynamic and vibrant. The office is dominated by extroverted people who love these ideas, and they tend to be the ones having their voices heard. Meanwhile, the little man or woman who just wants to work in peace resorts to Hacker News or a personal blog.

And you effectively propose that these people should be filtered out because a few have grown tired of it to such a degree that they misdirect their frustration at colleagues or use toxic language.

The west, especially the US, is so obsessed with diversity but only of the superficial skin color kind. Not diversity of the mind. Imagine if someone had grown cynical and tired of the lack of inclusivity for <insert-race-here> and someone suggested the lack of inclusivity is good because the people with bad attitudes would be filtered out.

Have a good day.


I don't think "they" are the minority, but rather the GP who you're responding to. That may be one of the very, very few times there's been a comment that's been stridently pro-open plan. I suspect most people are at best, indifferent towards open plans, though would probably prefer individual or at least team-only offices, or even cubicles. Very few individual contributors actually prefer open plans.


Yes, I do want people who "misdirect their frustration at colleagues or use toxic language" filtered out of my working environment, and I make no apologies for that. I haven't criticised people who prefer greater separation from their colleagues. I've explicitly said I have no problem with that at all. I've only criticised those who hold their colleagues in "active disdain", and I only criticised them in about the mildest possible way: saying I don't want to work with then.

I don't want to work with people like the one in this post that likened their colleagues to toddlers for asking questions, or the one that said people who try to have conversations with them should "get a life". I certainly don't want to work with the one that thought the fact that I enjoy interacting with my colleagues was evidence I engage in office politics and don't contribute economically.

I work in a field that requires many people with different skills and personalities to collaborate in realtime to do something an individual simply cannot do alone. That's why open plan offices are near universal in this job, and if it also discourages people with the attitudes described in the previous paragraph that's a plus for me, personally. I hope those people find a place they can "contribute economically" without being bothered by "toddlers" and "office politics" but it's not my job to provide it.

The most amusing thing is the assumption in these responses that I'm an extravert, which couldn't be further from the truth. I find solitude restful and company hard work, the characteristics of an introvert (look it up). But being an introvert doesn't imply being a misanthrope or being unable to enjoy company. Collaboration is an essential part of my job, i.e. literally work, which I enjoy, just as much as I enjoy restful solitude away from it.

I'm not a manager, either, or any other sort of professional "people person", and I'm certainly not somebody who will ever be in a position to force anyone into any working arrangement they're not comfortable with. I'm a programmer who has made a point over a >20yr career never to move away from coal-face programming and never to have line management responsibilities. I've had the good fortune to work with many excellent managers over that time, though, and contrary to the cynicism you frequently read on HN (presumably in some cases from people stuck in incredibly toxic working environments and in others from people who maybe, just maybe, are themselves assholes) I recognise that they do something real, needed and highly skilled. Something I know I would be extremely bad at, hence my career choices.


People like you are the reason I personally don't want to be in an office.

> 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.


Please don't cross into personal attack. We have to ban accounts that do it repeatedly, so if you'd please review https://news.ycombinator.com/newsguidelines.html and stick to the rules, we'd be grateful.

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.


> it feels like you don't necessarily realize that some people do need deep work, and prioritize your quick satisfaction to other's focus.

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.


But it's not a dichotomy between 3 hours or instantaneous. It's a dichotomy between instantaneous and when someone has a break in flow to peek at messages, which IME is more like 15-30 minutes (and i think it's probably fair to ask people to peek around that frequently if they normally wouldn't)


There's a very clear benefit of asking someone for help, when you're blocked.

WFH comes with a lot of issues, when it comes to a timely response from people.

I had many of colleagues in the WfH world, that just ignored me for a month...

The idea that all engineering is highly focused and non-social just feeds the rockstar developer culture. And most of us aren't even close to rockstar status.

There is always a balance between collaborative discussions and focus time. I thought that we learned it 20 years ago, that devs should not hide away in cubicles?


Paul Graham would disagree.[1]

[1] http://paulgraham.com/makersschedule.html


> 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.

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.


>I have very little interest in how the team I'm part of performs in general.

Your job security is extremely dependent on the health of your company and team. If the structures which provide your employment contract start failing, and you do nothing about it, don’t be surprised if you get bitten.

I don’t expect appeals to empathy will work based on your posts, and I hate “we are a big family” smoke and mirrors too, but let’s be pragmatic here. The fact that your job even exists is predicated on a social and legal contract to provide your expertise for the benefit of a multi-person entity.

Team health does also depend on nudging those who can’t RTFM to do so… you can be an asshole, but you need to be a prosocial one as far as the company is concerned.


> I'll be blunt here. I have very little interest in how the team I'm part of performs in general.

Don't be surprised when others show the same level of empathy towards you, then. It's not about making you feel guilty, it's about making you do you effing job. Unless you're in a very junior position, your job is not to pump out code day in and day out.


I'm not sure what exactly you're reading in my words, but I don't really understand why you think it's my "effing job" to provide training for inexperienced developers. My contract stipulates no such thing, and despite what you seem to assume, I have been in fact hired to find solutions, and write code.

It's a little disconcerting to see someone make such self assured inferences about me, based on a single comment.


when i hire someone, their job is to do whatever it takes that is in their capacity to move the project forward. if it takes a larger team, then getting new team members up to speed is part of that. and if that new team member is unfamiliar with the frameworks the team is using then training them on that is part of the job too.


Aka "hands off management", "or absentee boss" or "sink or swim". Love it! Let me float an idea though, I might be dreaming here, but what if there was a better way than just dumping people and resources and hoping for it to work?

How about you encourage the team to actively monitor where onboarding takes time, year by year, learn from that, make onboarding materials which encompass institutional knowledge, and make the process as much self serve as possible?

Or assigning a "buddy/mentor" like persona that is responsible for this specific onboarding, so the rest of the team don't get distracted + the expectations on delivery are lowered for the "buddy"?

> it takes that is in their capacity to move the project forward

It takes quiet and uninterrupted work and focus time, and spending effort on making onboarding as smooth as possible. Just hoping your devs will do all the work of onboarding + their own work, and you doing nothing, that's just...what I expected I guess.


you are reading way to much into what i said. nothing what you are suggesting has anything to do with it. we all have work todo and we all need to contribute to training the new hires in some form. this has nothing to do with hands off management. i am not saying: here is the newbie, get them up to speed, but: we hired someone new, and we need to figure out the best approach to get them integrated. for me that includes that they work with everyone on the team for some time. including me if i am still involved in the development myself. i'll do my part of the onboarding and everyone else will do theirs.

being that buddy/mentor is part of your job, and i expect everyone on the team including me to be able to take on that role as the situation demands.

moving the project forward takes quiet and uninterrupted work and focus time

and it takes making sure that all team knowledge is shared with everyone. where do you get the idea that i do nothing? it is my job to allocate resources properly, but it is also my choice how to to do that.

you seem to look at onboarding as a kind of burden that i throw onto you on top of your other work that you'd rather not have to deal with. i see onboarding as part of the process to grow our team, exchange knowledge and experience and enable us to do ever better work.

when i am starting a new team then i onboard/mentor everyone myself, until the team is grown enough and some of the team members have enough experience to share that role. eventually, the team will be large enough to divide up into multiple teams, but i am still the one doing the hiring, and i'll be involved with onboarding until the company grows so large that it no longer makes sense to do that personally. but at that point i'll still make hiring decisions because i feel that hiring the right kind of people is to important to completely delegate.

the attitude that i expect from my team is that everyone is made welcome and we all do our best to get them integrated. onboarding materials can't replace that attitude which i see as necessary for the team to work well together.


Are you just telling me that you don't want to do your job properly as a hiring manager, which in my opinion would be to get the best people for the job, and that you prefer to pass the buck to your team to train them?

I mean, sure, that's fine if this is stipulated from the start, but if you expect someone to solve leet code, do programming homework, and then when they get hired they have to also navigate your extra requirements and teach people the basics of their job (because probably you couldn't be bothered to pay enough) then in my opinion you're taking advantage of these people pure and simple.

And to top it off, I know managers sometimes fools themselves that the team is invested in the "project moving forward", but that's rarely the case. As an individual I probably don't give a damn about the project, unless we're solving one the big issues of the world. The bullshit CRUD application you work on, or the latest cryptocurrency is just a means to get a paycheck for most of the people, and if you expect anyone to fake enthusiasm for it you're just deluded.


the best people for the job are not necessarily those that need no training. there are a lot of things to consider. part of that is that while new hires may need training, they also bring experience and knowledge to the team that others can benefit from. training doesn't only go one way.

you seem to prefer working on your own, neither willing to teach nor learn from others. that's fine if you can find a job as a lone developer, but i don't consider this a suitable attitude for working on a team.


I care, but I care as a result of some projects moving forward being part of my annual goals and affecting my bonus. I agree with the spirit of the post though.


> Are you just telling me that you don't want to do your job properly as a hiring manager, which in my opinion would be to get the best people for the job, and that you prefer to pass the buck to your team to train them?

Not all jobs are simple enough to hire people into with generic skills. People need training. Even if it's just "I think that other team should prioritise this feature for us; who do I ask?" People need to ask questions and bed in over time. If you've just done simple CRUD apps in small orgs you may not have seen this, but that doesn't make it not the case.

> And to top it off, I know managers sometimes fools themselves that the team is invested in the "project moving forward", but that's rarely the case. As an individual I probably don't give a damn about the project, unless we're solving one the big issues of the world. The bullshit CRUD application you work on, or the latest cryptocurrency is just a means to get a paycheck for most of the people, and if you expect anyone to fake enthusiasm for it you're just deluded.

You seem to keep on inventing things no one is saying to respond to. If you have a load of unrelated things to get off your chest that's fine I suppose, but it seems you actually think people are saying this and you're making points in response to them.


I'm as frustrated as anyone with "let me Google that for you" style interruptions but you don't ship anything alone. You need a team.


> I have very little interest in how the team I'm part of performs in general

In a lot of situations that would be considered fairly toxic itself. :(


How so? The camaraderie that companies try to enforce on their low lever employees with this kind of manipulation is nothing but a ruse.

Why do you think that a whole team of people should be responsible for the inability of some? I have empathy for individual people that start their careers and struggle, but I also believe that if you apply for a job, you should be qualified to do it independently.


camaraderie in a team is a job requirement for me. without it i'll be out of there in no time. i simply do not want to work with people who can't be bothered to be nice and helpful to each other.

i do not want to be just a cog in a machine that grinds out work without any consideration for the project as a whole.

it is also needed to allow new team members to get onboarded faster.

as a hiring manager i find your attitude unwelcome.


That's perfectly fine. I think the world is large enough so we can coexist in peace.

Also I don't dismiss camaraderie that appears spontaneously between coworkers, I was complaining about the company enforced fake camaraderie that gets pushed down everyone's throats with trite team building exercises, company parties, team goals and other methods of hammering people into conformity.

> it is also needed to allow new team members to get onboarded faster.

Of course, it's fine to have team members absorb domain knowledge through interactions with their peers, but if that's the only way to on-board them, I most definitely don't want to work for you, but again, that's fine, I'll just look elsewhere.


> I was complaining about the company enforced fake camaraderie that gets pushed down everyone's throats with trite team building exercises, company parties, team goals and other methods of hammering people into conformity.

This is nothing to do with what you said before, about not wanting team performance to be important. Unless you're there to do a very specific job, a lot of performance is actually about team performance. If nothing else, the bus factor on people who want to do things solo makes them an automatic liability.


i agree with the forced stuff. but i expect a level of interaction to be naturally there so that enforced camaraderie is not even needed.

it's fine to have team members absorb domain knowledge through interactions with their peers, but if that's the only way to on-board them, I most definitely don't want to work for you

ok, you lost me here. what other way is there? it's not possible to assess all the knowledge a new hire has. if i have to hire a trainer to get them up to speed it will just cost more money and they will not learn the company specific domain knowledge.

in my experience specifically onboarding can only be done by others on the same team. it's a teams responsibility.

for more thoughts on this topic, see the discussion here: https://softwareengineering.stackexchange.com/questions/1190...


Of course there is a balance needed. But spending once 3 hours to search something might increase familiarity with the resources the intranet provides. So the next question could be answered way faster. Or it could be the occasion to improve the local intranet with some missing cross reference or some comment.


> But spending once 3 hours to search something might increase familiarity with the resources the intranet provides.

Assuming your company even has an intranet.


Or it might be 100% wasted time that could be bypassed with a 5 minute conversation across the room. =)


Or, via chat or a phone call. No physical presence required :-D


> If you can unblock someone now so they don't spend 3 hours

Past your training period you are responsible for your own productivity. Don't make it the problem of your peers.


I think if we constantly interrupt each other, we should very critically ask ourselves if that's the proper way forward. Often people physically being there is used as a "crutch" or a "band aid" to bad onboarding practices and big knowledge gaps. I am tired of people seeing their team drowning, distracted, noise, responding to the same question 31040041 times and then simply saying: "well, I need to be there in person to help Josh, he just started". While that's a good team spirit, you gotta look beyond that. There are things you can do to make it easy for yourselves and the new starters.

Of course, people are responsible for their own productivity, but there is also such a thing as a team. And the team itself will benefit if people are less disruptive of each other.

My point is that teams should retrospect aggressively on where they spend their time, and if they find that lots of their time is spent on answering questions to onboarders or big knowledge gaps between one another, they should do something about it.

I won't waste space here outlining what can be done, but there ARE things that can be done. Do those things, and then the argument that you:

A) "must" be in the office to do good collaborative work

B) and you "have" to ask 5 min questions all the time

loses any validity and becomes just corporate laziness and bad management.


You are clearly not a team player.

The goal is to make the team succeed, not to be individual rockstars.


Sure, and if you can't keep up then you should reflect on that. Meetings and discussions are great. Constantly nagging your coworkers because you can't figure out how to do your job on your own is not.


> Constantly nagging your coworkers because you can't figure out how to do your job on your own is not.

This is the problem: you've invented this scenario. There is a gaping middle ground between what people are describing and your stereotype of what they "must really mean"?


I think the problem is that too many of us have experienced this scenario, and had it described much in the way that the OP of the thread did.

Too many people are too un-self-aware to recognize that their "just a 5-minute question" is being asked because they have not internalized the knowledge, rather than because it's genuinely something that they haven't had an opportunity to learn—too un-self-aware to recognize that this situation is unnecessarily stressful and it's their fault.


Yeah people do this simply don't recognize that they are annoying other people. From long time ago I have figured that there are two kinds of people in this world. One is more aware to him/herself and one if more aware to the outward world. Group 1 are usually tagging other people for their benefits (or, for the team's benefit as they so see it) while Group 2 do not do that very often.

Of course this has nothing to say with selfishness or else. It's simply that each Group project their own ideas to the outward world -- so people who like to outreach think other people like that too, while people who doesn't think the inverse. But taking a step back as a third party, we would realize that Group 2 is usually more harmed than benefited.


> Too many people are too un-self-aware to recognize that their "just a 5-minute question" is being asked because they have not internalized the knowledge, rather than because it's genuinely something that they haven't had an opportunity to learn—too un-self-aware to recognize that this situation is unnecessarily stressful and it's their fault.

This is just assumptions though. Too many? Compared to what? Narrators are just as unreliable as anyone; some will be unreasonably opposed to any questions. Complaints aren't all 100% trustworthy. And complainants can also be un-self aware in that when they were more junior, or new, then they also asked questions. They just maybe had people answer them who were more happy to invest in them.


I think I would be fine not having you in the office, given your condescending response..

> 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.


When I read your account of your onboarding at two different companies, I can only see a company with a good culture and another company with a poor culture. If you had onboarded the first company remotely, I bet you would have got check-in messages. Similarly, if you had onboarded the second company on-site, nobody would have cared about how you were doing.


Yes, but that's the company culture the one I'm replying to is advocating for. A culture where you never should dare asking anyone for help, as you're inconveniencing them. Just sit silent with your problems and schedule a meeting the next day, and they might find it in their heart to help you. Or also get annoyed by "all the meetings destroying their focus time"..


I advocate for another culture, as I've seen everybody beihg happy with it.

I advocate for a culture where onboardings are mostly self service and most documentation is up to date, frequently available, and easy to access. A culture where people are not afraid to ask questions, but they rarely have to, because most of the stuff is at the docs, and they never wonder who to ask, because they've been told who their onboarding "buddy" is. The person being onboarded is also aware that it's probably a good idea to batch their questions into a list, so they can discuss them with their buddy during their scheduled meetings, but is also not afraid to ad-hoc ask questions, because no documentation is perfect. If these ad-hoc questions are too much and too often, it might be that something in the self service is missing, and that is remedied accordingly.

In the culture I advocate, everybody's satisfied, learned well, and mindful of each other's time and flow, and it has nothing to do with being in the office or not. In fact, I have anecdotally noticed that in-person companies are more likely to use existing people's time and attention as crutches for compensating for a the lackings of a comprehensive on-boarding plan, which is what I believe the OP experienced and wrongfully thought to be the solution.


Sounds like the remote company wasn't that good at it, or at least the team you were in.

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.


> you don't necessarily realize that some people do need deep work, and prioritize your quick satisfaction to other's focus

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)


I feel like that's exactly what email or pinging someone in a group chat is for, or at least that's how I prefer it.

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.


That's no different from being in an office though.

If someone taps me on the shoulder and says they need a few minutes of my time looking over problematic code or whatever, I can say "sure just give me about 15 minutes to finish off this X/Y/Z"

When someone is relegated to doing this over Slack/Teams/whatever, the other person might have their notifications muted and rarely check for new ones. So it could end up being several hours of waiting.

Just because someone checks in with you IRL and asks if you have time to help with a question doesn't mean you need to be interrupted from "flow".


A notification is a quick glance in the corner of the screen, a tap on the shoulder is turning around to look at and focus on the person talking to you.

The latter is a full context switch to me. It will often leave me having to try to remind myself what I was just thinking and having to rebuild that thought.


Yes. It is easy to balance these things. Ask the question in an asynchronous medium.


I used to work in an open office and one guy had a light mounted to his cube. When it was red it meant do not disturb. Green meant he was available for whatever.


You need it to be a good time for all 6 people


No, you don't. You need to communicate it effectively to 6 people and be open enough so they aren't waiting for the 15 minutes you claim to have free. IN general, if folks have a question and can easily see that you don't want to be interrupted right then, they'll wait a bit.


>Basically like having a toddler around.

Unnecessarily condescending response to the OP, to be honest.


Fair take.

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...

https://hbr.org/2019/11/the-truth-about-open-offices


So what you are asking is that OP destroy their own "deep work" a lot just that you don't get a mild distraction in yours.

> 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.

I guess I'm special, because when I'm in a "deep work", I just don't hear people around me. I know it's not the case of everyone, some of my colleagues just put noise-suppression headphones, which is yet another easy way to solve your problem without forcing others to cater to your needs.

Of course, open space can be bad, and there are numerous examples of crazy open space situations. But what OP was describing is clearly not to the extend of what you are talking then.


Propensity for distraction varies a lot between people.

For me it varies on a day to day basis. Some days I could focus through a hurricane while others people buzzing around me is enough to make it difficult to think at all, let alone deeply. It averages out to normal productivity but I’d rather have fewer low productivity days, if I had the choice.


> some of my colleagues just put noise-suppression headphones

Great. Now the rest of us have to put up with even more noise.

People wearing headphones make a lot more noise themselves. Presumably because they don't hear the noise they make. Suddenly there's heavy breathing, sighs, grunts, moans, inaudible and sometimes disturbingly audible mumbling, humming &c.


You might have Misophonia. It's not normal to be extremely irritated by sounds other people make.

The "normal" state is to be able to tune those out.


I'm not when it's normal noises, made by non headphone wearing people.

Normally people are conscious about the sounds they make and restrict them a bit. If you're coughing in a group, you try to do it softly, or you leave the room. Things like that. When people wear head phones this kind of subconscious self control seems to be a lot less effective.

I'm certainly not the only one to have made this observation.


I sometimes start audibly breathing with headphones on. Something I never do without them. So I won’t wear them around others when I can avoid it.

That’s aside from tapping I might not realize is making noise with headphones on, or a particular motion in my chair that’s making it squeak and I don’t know it because headphones, et c.


Loud breathing is one of my biggest concerns when wearing noise-cancelling headphones around others. Partly because I dislike hearing it from others and don't want to subject them to that, and partly because I don't want to sound like a smooth-brain mouth breather.


> So what you are asking is that OP destroy their own "deep work" a lot just that you don't get a mild distraction in yours.

Yes! I believe the OP should write down all their questions in a structured format, and then schedule a meetings with 1 person helping them onboard, where they can discuss the questions at length and go on any tangent, rather than interrupt colleagues ad hoc. That's a normal, grown up thing to do, and it will also help them crystallize and distill what knowledge is missing.

> I know it's not the case of everyone, some of my colleagues just put noise-suppression headphones, which is yet another easy way to solve your problem without forcing others to cater to your needs

I do put noise suppression headphones, but they can't stop the people moving in front of me nor the taps on my shoulder.

> without forcing others to cater to your needs

Not wanting to be interrupted is not forcing others to take care of your needs.If you are unsure what I mean, let me call you in the middle of the night because I want to have a conversation with somebody and discuss economics. You not wanting to pick up is completely normal, right, or are you forcing ME to cater to your needs of being left the heck at peace? How dare you forcing me to have normal boundaries and call you at reasonable times!

No, it's the people who interrupt others and forcing to drop everything else so they answer "just one tiny question" and expecting it to be done on the spot. That's forcing people to take cater to their needs! Hence me liking the OP's behavior to that of a toddler.


> I believe the OP should write down all their questions in a structured format, and then schedule a meetings with 1 person helping them onboard, ...

Let me guess: that 1 person will of course not be you, right? Because if it is you, I bet you will complain even more.

Also, it's ridiculous to pretend that all questions require deep dive at length. Some do, and, yes, I agree we should do that for those. But what about the majority of the questions? If these questions still exist, then you will still be interrupted, so it will not solve the situation.

Also, it is quite telling that you did not also consider another solution: if they need to ask you a question, you could have avoided that by properly sharing the information before hand. But of course, it's always someone else's fault. (just to be clear: it is sometimes someone else's fault, but your way of reacting of just thinking that everyone else should adapt is just giving me the impression that you don't care about solving the problem in a fair way)

But it does not answer my question: what you ask them to do is very inconvenient and inefficient, as the large majority of questions do not correspond to big dangerous lack of knowledge that needs 3 hours lecture course to be solved. So we still have the problem: why should the company pay for one person being less efficient because of needing to do all this useless process, instead of paying for you being less efficient?

> I do put noise suppression headphones, but they can't stop the people moving in front of me ...

As I've said, I don't understand how people can be in "deep flow" and be so easily distracted by people moving around. People are different, so I can understand it can be a problem for you. But my problem with this reaction is that everything is centered around what is best for you, without any considerations of how it affects others. I reacted because you first mentioned that GP was behaving like a toddler, but in your reaction and the description of the problem, you seems to focus on you, you, you, which does not look very grown-up either, don't you think?

> ... nor the taps on my shoulder

If they tap on your shoulder, you should simply answer, like a grown-up does.

> Not wanting to be interrupted is not forcing others to take care of your needs.If you are unsure what I mean, let me call you in the middle of the night ...

But you are not complaining about being interrupted in the middle of the night to talk about things that is not related to you, you are complaining about doing your job: working with colleagues and sharing information so that they can progress.

What I'm saying is simple: 1) you can be a toddler and interrupt someone constantly for no good reason. This is not good and unprofessional 2) you can be a toddler and cry when someone interrupt you for a good reason. This is not good and unprofessional 3) the good situation is in the middle: you WILL have some level of interruption, it is just unreasonable to expect otherwise and it is childish to ask people to jump through hoops to care to your need to never be interrupted.

> How dare you forcing me to have normal boundaries and call you at reasonable times!

You don't have normal boundaries. Grown-ups at work know that they will interact with other people. You inventing that people should not interact with you, or interact only in your own terms even when it is inconvenient for them.

> Hence me liking the OP's behavior to that of a toddler.

OP's behavior did not even mention if they interrupt people that have inform them they don't want to be interrupted. As far as we know, OP's behavior is 100% compatible with what you want.


> Let me guess: that 1 person will of course not be you, right? Because if it is you, I bet you will complain even more.

I don't mind it being me, as a matter of fact, it's often me, as I am in a more senior position and have a lot of historic context. However, a lot of time has been spent on documenting most things, so often I am just going over the docs with the new onboarder, which is okay, as long as it's done in a structural manner.

> You don't have normal boundaries. Grown-ups at work know that they will interact with other people. You inventing that people should not interact with you, or interact only in your own terms even when it is inconvenient for them.

I don't mind interacting at all, nor do I mind onboarding. I do mind, however, being interrupted all the time, on information, that could easily have been condensed in an onboarding package if the company gave people the space, time and initiative to create such a package.

What I am pointing out is that the OP experienced bad onboarding and thought the solution to that is being in-person in the office. I would argue what they simply had was a badly planned onboarding, with randomly shared responsibility across the team, and an ad-hoc learning plan. If the OP's company uses that lesson and makes a better onboarding process, that'd be great and they might even reconsider the need to be there in person.

> you are complaining about doing your job: working with colleagues and sharing information so that they can progress.

I would love share the information, but I want to do it in a structured manner, and not in chunks and without disruptions.

That's why schools and unis have classes, and classes have predictable and scheduled time frames. It's not just a building with teachers, and random children entering ad hoc and asking whatever question came to their head, then leaving, and coming back 5 min later.

And what's wrong with wanting lots of this information to be self-service? That's the whole idea of knowledge bases, of onboarding docs, of developer handbooks. What does it have to with people being in person or not? I'd argue if the OP's company spent the effort in actually putting all that knowledge in writing, they will have an easier and less disruptive onboarding to the team, with reduced bus factor, and clearly documented steps.


Everybody thinks their question is simple and quick, then it takes 30 minutes of time at minimum. I dunno why you are getting so much push back, must be a bunch of managers. Developers need to be left alone.


The push back is because it's extreme and one-sided. If you have some information that unblocks a team member, or another part of the business, say to make a sale, yes you should be interrupted. Your salary comes from somewhere, and your delivery is as a team, not an individual.


Because, you bring up sales, I am assuming that is your area of expertise. If a big sale can be unblocked by asking some specific employee an important question now, do it. If that happens five times a day, those sales are neither big nor are these very specific questions. Developers are most productive when in deep working mode. A simple question like "What time is it?" can be answered in 5 s, but it may cost a developer 30 min when in deep working mode. Because of the lost focus. On the other hand, many questions (not onboarding questions) could be answered by the colleagues themselves, if they would spend a bit more time on them. Thereby, they would learn more than just by getting the answer.


> Because, you bring up sales, I am assuming that is your area of expertise

I'm not in sales at all. Having an overview of the different bits of the business isn't a sales attribute. It's just an example of "what your job is" - which might range from weeks of uninterrupted detailed technical work at Microsoft Research, to presenting to clients, to running teams, to making technical decisions and getting agreement, to writing code.

Thinking every engineer's job is "writing code" and anyone who thinks wider is wrong is what the pushback in this thread is all about.


> I'm not in sales at all.

My fault.

> Thinking every engineer's job is "writing code" and anyone who thinks wider is wrong is what the pushback in this thread is all about.

Writing code is not the only activity of an engineer that requires focus and concentration. Most of my activities require that.


We all have access to the exact same information. Sure, for a first time on boarder, I'll point them the right way.

But 90% of the time someone taps on my shoulder, they want me to think for them. You can do that by yourself. Just send an email.


> We all have access to the exact same information.

We might have the same access, but rather than dig through 20 medical textbooks, I'll go ask a doctor. Access is a really poor way of thinking about things.

> But 90% of the time someone taps on my shoulder, they want me to think for them. You can do that by yourself. Just send an email.

Why send an email when they're thinking for themselves?


Because an email allows me to field it when I am not working on high-focus tasks.

It also

1) forces (or at least encourages) laying the whole thing out in a coherent order

2) leaves a record of both the question and the answer, so that the asker can refer back to it if they forget

3) leaves a record so that if the asker is asking obvious questions, or repeatedly asking the same questions, or failing to formulate their questions in a sane and coherent manner, there is documentation to take to their supervisor, not only to prove it, but to show exactly the shape of the problem, and have a possibility of getting them the kind of help they need


You don't go to ask a doctor.

You get an appointment. Here noone is against appointments, here people discuss the notion of going to ask a doctor in the middle of a surgery a "quick question".


> Why send an email when they're thinking for themselves?

Because, the act of writing down a question --- with the necessary details to state the question precisely --- is often enough to find the answer yourself. Unless it is simple matter of a missing fact. But that is rarely the case in my line of work.


I think assuming everyone's situation is the same as yours, or your imagined stereotype of what people must be like if they don't agree with you, constitutes a lot of the content that's being pushed back on.

Some businesses have huge depths of technical content to understand that can't all the memorised in a training session. Nothing difficult can. Even knowing who to talk to about an issue is going to be found out via a question.


If I am a doctor in this situation, then you can create a JIRA ticket and I will see it .. eventually. Do you have instant access to all of your doctors?


But why would you see it if we have access to the same information? That's the point you made that I'm disagreeing with. Are you now saying that yes, even though I and my doctor might have access to the same information, that doesn't mean I should never ask my doctor things?


If we have the same access, we are both developers? You can ask things, just.. asynchronously. If it takes a long time for me to respond, you probably could have found the information yourself in that time.


It really isn’t though. OP has been pretty clear.

Need help? Send an email or make an appointment and he will respond with help.

How is it your assumption that the team member asking the question can’t possibly be delayed 30-45min for them to be available. Seriously? Are they in an active shooter situation and need to phone a friend or something. Lives on the line?


> I don't mind it being me, as a matter of fact, it's often me, as I am in a more senior position and have a lot of historic context. However, a lot of time has been spent on documenting most things, so often I am just going over the docs with the new onboarder, which is okay, as long as it's done in a structural manner.

So, according to you, no one would ever need to ask you a question. So, obviously, GP will never ask you a question (they will ask other people if they want to).

So why are you calling them "toddler"?

> I do mind, however, being interrupted all the time, on information, that could easily have been condensed in an onboarding package if the company gave people the space, time and initiative to create such a package.

This is not at all what OP was presenting. You realize that?

> What I am pointing out is that the OP experienced bad onboarding and thought the solution to that is being in-person in the office.

That is not true. Plenty of people are having a very good onboarding and still like to fine-tune their understanding of the situation, which is arguably a very good way to reach good software.

> would love share the information, but I want to do it in a structured manner, and not in chunks and without disruptions.

But that is exactly the point of my initial comment about workflow. When your colleague Johnny needs the quick and simple information X to allow him to finish his code (for example "I've read what ath3nd has written in the doc, but it is ambiguous because sometimes it is, obviously ath3nd is not a god who can read mind and think of all the interpretation of their comment, especially when ath3nd is also not expected to not introduce a bug in the code from time to time"), you are asking him to break his flow, write some kind of ticket, wait for it to be triaged and come to you and wait for you to answer.

Your initial point is that you need to not be interrupted when you are in your flow, and you are now arguing that we should use a very flow interrupting process for the other participants.

> That's why schools and unis have classes ...

Are you seriously pretending that GP that just said "asking quick questions and getting an instant answer" is in fact in favor of not having any structure at all?

In fact, guess what, in a lot of classes, students are allowed to ask questions during some part of the lecture, even during exercises. Yes, incredible, right: some students are concentrating on solving the exercises while others _talk_! They _talk_! In the same room! Instead of writing a written letter to the teacher and wait for the post return so they can proceed with the exercise they have a question about.

> And what's wrong with wanting lots of this information to be self-service?

No one here is arguing against that. Simply, you can have as much self-service you want, it will never make a quick and simple question not the most efficient way to go.

It is just incredible that some people are so self-centered that they cannot understand that asking simple and quick questions is just, SOMETIMES, a super pragmatical and efficient way of progressing.


You sound extremely self-centered yourself. Its fine if you thrive in a collaborative open office environment, and noise-cancelling headphones are all you need. But that's not true for everybody else.

Your argument that you need to maintain your flow by actively interrupting other people is incredibly selfish and frankly just ridiculous. Also, flow is overrated. If you are in flow-mode, you are probably not doing the hard parts of your job. Not having to context-switch is different from flow, but more important, I would say, but you are forcing that on your fellow developers. If they don't mind, that's fine! If they do, you should respect that.


I think you did not got my point. My point is not that it is self-centered to "break the flow" (or whatever you call the reason that makes asking a question disruptive).

My point is that we had a situation where at least one person is going to adapt. The person self-centered is the one saying "the good solution is to have the other person adapt".

I'm NOT saying that the good solution is to have the other person adapt, I'm saying "why are you saying that having the other person adapt is the best solution? That's self-centered".

You answer me by saying "you are asking me to adapt to you, so, you are self-centered".

But I don't ask that. I don't force anyone. I'm just saying "why are you upset that this guy is forcing you to adapt to him but think that you forcing him to adapt to you is not self-centered".

I see the situation as very very symmetrical:

Some people needs A to be efficient, some people needs non-A to be efficient.

One aspect of the problem is that some people say "I like A, so let me just do A, and I let you non-A". But in reality, they don't let them do non-A. If you are a team of 2, and that you like not receiving questions but that your coworker like to ask question, there is no situation where we satisfy both.

The only solution is to act like adult and accept that I will do less A than I would have liked, but my coworker will do less non-A that they would have liked.

But here, some are saying "no! I want to do all A and it's to my coworker to adapt fully".


I'd say two people like that shouldn't be on the same team, at least not on their own. If it is possible to find some sort of compromise, that's great, but it might not be. You are going to make each other extremely unhappy, and why would anyone want to put up with that?


A scheduled list of questions at a preset time is often pretty bad too. Scheduling a 30 min VC for 1 simple little question sucks and conversely sometimes you have no idea how big of a can of worms you're about to open or who even has an opinion on it. Chat messages are best IMO but the team needs to make an effort to respond when they aren't in the zone.


Calling adults "toddlers" is condescending, don't pretend you didn't know that.


> could prepare a list of their questions,

Unless 90% of the questions you spend time coming up with become entirely irrelevant after you receive the answer to the first one


> 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.

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.


> 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.

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.


If you make me think about some technical problem other than the one I have halfway solved in my head, anything I didn’t write in code is gone and I need to reinvent it almost from scratch.

When management evaluates my performance, delivering my projects carries much more weight than helping yours (which they might not even be able to measure).


>When management evaluates my performance, delivering my projects carries much more weight than helping yours (which they might not even be able to measure).

1. Your project is generally the same as those you work with. 2. Management often care about how you work with others. If you have someone who is helping everyone else, they're a lot more important than the person who just focuses on their task. Not just on team work but overall their knowledge is generally better than others.


This is a pretty common anti-pattern with how technical ICs view their work. No matter how technical or silo’d you are, your work is always going to be inherently collaborative, and your ability to collaborate with others is a hard bottleneck on everybody else’s ability to extract any value at all from the work you do.

Managing or working with ICs with this perspective is also a lot like having a toddler around.


I support this 100%. Programming and most tech work is pretty solitary. If collaboration needs to happen there's nothing wrong with hopping on a call.

People that state what OP said should go into sales or customer service. Want to talk all day? There's your new job.


This shit about being connected is killing me, people goes to work as part of their social life and are ruining everyone else existence, if people doesn’t have connections therapist is where they should go not coworkers


To be fair, I was a bit overly harsh with the OP, and it's purely due to reactionary reasons, as I've been far too often on the receiving end of a barrage of questions from multiple sides, while trying to meet deadlines. And I don't blame the newcomers, they are simply finding their way in a bad situation, I blame the company.

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.


I agree that this is the case, though the causes are pathological to the system, not the individual. You have to spend all your time at work, so you depend on it for social stimulus.


[flagged]


> mildly inconvenienced

Judging by GP comment, they sound like they are heavily inconvenienced. Am I reading it wrong?


I'm pretty sure that if you write down a list of inconveniencing things, this cannot be anywhere but at the bottom. The fact that some person will cry and shout that it is very very inconvenient seems to just confirm this person is acting like a toddler.

But in fact you are right, "mildly inconvenient" may not be the best way to put it, it could have been "because otherwise you are as inconvenienced as they are if they follow your wish". After all, that is my point: I don't say it's not inconvenient for you, I'm just asking why should a group prefer the solution where A is inconvenienced and B not inconvenienced over a solution where B is inconvenienced and A not inconvenienced.


I think one is more inconvenienced than the other. If someone doesn't answer your question immediately, search harder. The answer is out there somewhere.


[flagged]


Emotions are running high in this comment.

I think it doesn't really have much to do with what anyone wants. It's funny that I am inclined to think OP would be annoying, but this comment almost is doing the opposite of what you intended and swaying me the opposite way. Knowledge should be shared, and not under a list of very capricious conditions.

But, I get it, that's how you work and we've all got our things. I've never worked at an office, and I'm just realizing that all the discussions here could be solved by simply having a guy like OP paired with a guy who enjoys sharing their knowledge and unblocking these problems ASAP. A people person, which I get coders tend not to be. A guy whose flow is that, not just being an island out of a krazam sketch.


Hm, one could as legitimately argue: if the person who has the knowledge FAILED to document it properly and give it to the person who needs it. Then the person who has the knowledge is the one who deserve to have their flow disrupted instead of the person who notice they haven't done their work. Why should the person who demands the knowledge pays for the other person failure?

But more importantly, a grown-up would say: the two persons are collaborating, they are not fighting each other. The person who has knowledge is a grown-up, they will want the work to progress correctly and they will want to see their colleague succeed professionally and socially. The person who needs the knowledge is a grown-up, they will not ask over and over again when they see it disturbs the person who has the knowledge (and no one here is against that, obviously).

That's a sad way of seeing professional relationship, but also not a very smart way too: in real life, your own position is biased: when Mr X asks Mr Y a question, it is because Mr X truly believe it's a legitimate question. But maybe Mr Y has written the doc somewhere and Mr X missed it (which can and will happen). In which case, Mr Y will think Mr X is "wrong". But how Mr X can be sure he is not "wrong": Mr X does not know what he does not know. Or maybe Mr Y has written the doc, but badly. In which case, Mr Y will incorrectly think Mr X is "wrong". Or maybe ...

In short: grown-ups understand that communication is messy and that "counting points" is just ridiculous, inefficient and just something that a person who has poor understanding of the reality will think is fine.


> if the person who has the knowledge FAILED to document it properly and give it to the person who needs it. Then the person who has the knowledge is the one who deserve to have their flow disrupted instead of the person who notice they haven't done their work

Hard agree!

> But more importantly, a grown-up would say: the two persons are collaborating, they are not fighting each other. The person who has knowledge is a grown-up, they will want the work to progress correctly and they will want to see their colleague succeed professionally and socially. The person who needs the knowledge is a grown-up, they will not ask over and over again when they see it disturbs the person who has the knowledge (and no one here is against that, obviously).

Hard agree!

> In short: grown-ups understand that communication is messy and that "counting points" is just ridiculous, inefficient

Agreed. However, as engineers, if we see communication within the team being messy, you also need to judge is that okay, or could we improve it, by setting some ground rules or improving some process or maybe having more dedicated sessions for creating a good shared understanding. OP's thread, it felt to me, thought that messiness in communication was solvable only by being on-prem and able to ask quick questions, while I am convinced it can be solved far more elegantly and with less overall effort with a good, focused onboarding experience and even (or especially) in remote settings.


It is not like you asked a waiter for another beer as they walked back to the kitchen. They may have 1kb of level 1 cache they need to purge from their brain to help fix your eslint file.


> "we should just force people to go back to the office, just to teach those toddlers to behave like adults". (not always, it's just a knee-jerk reaction "oh come on, stop behaving like babies")

Sorry for the adversarial tone, but "we should just force people" to me shows you deserve to be chastised a bit. First of all, you are not an employer (luckily), so there is no "we", each company decides for itself how to handle remote, and luckily, many have weighed on the benefits and have decided to go with that.

Second, the premise of you saying "oh come on, stop behaving like babies" shows to me that you think that "behaving like a baby" means:

- not wanting to waste an average of 2 (unpaid) hours of your day stuck in traffic commuting (which, by the way, is also bad for the environment)

- wanting peaceful and quiet atmosphere where you can focus on your work without noise and people tapping you on the shoulders

And I don't want even to argue with that, it's that bad of a take. Based on your views you are either young and full of energy (not having children), or old enough (boomer) and with people taking care of chores for you (wife) that to you it is the norm and we are all snowflakes unreasonably complaining. I don't see our views and incentives aligning on this.

> The number one problem I see at my work place is devs that are good at coding but that are very bad at even understanding what is the goal of the code they are doing.

That's just bad developers. They can't be good at coding if they don't understand the goal of the code, that's an oxymoron.

> Between a great coder and an average coder, the one who is good at being interrupted is a better dev. Coding in itself is just part of skill, but it is not the most important.

Doing good work, for which you require peace and quiet and a focused state of mind, is what being good at coding is all about. Also, most of the times it's better if a discussion is in a written form (e.g slack/PR/ticket) so others can use it as a reference in the future, rather than a chat you and Josh had at the whiteboard. Being a good coder also means being able to document well what your reasoning are, what your design is, and how to implement it, both things which require you to write it the HECK down.

> For me, you are the one who sounds like a toddler who asks everyone around them to be less efficient just because otherwise you are mildly inconvenienced.

The premise that everyone is more efficient with constant interruption and questions pouring from every direction, all the time, is laughable at best. There is ton of research that office interruptions drag down the productivity of the group, while all you have is some boomer's feeling that people are working better where they can observe them.

I started this response by saying I am sorry for the adversarial tone of my response, but the more I think of this now, the more I am not sorry. I see opinions like yours as a part of the problem why the rest of us can't have good things and a quiet and productive work life. If you want to go the office to get immersed in the beautiful, inspiring atmosphere of rows of desks with guys with headphones click-clacking away on their keyboards and discussing the last season of Game of Thrones, be my guest and go for it, but I am happy that the rest of us can choose not to.

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...


> Sorry for the adversarial tone

From someone who called other people "toddler" ...

> - not wanting to waste an average of 2 ...

If you read my comment, you see that I called it a "knee-jerk reaction", it is not sometimes I will really defend. It is just when I see people like you, self-centered and unable to accept that someone can like interacting at the office without calling them "toddler" and inventing that these person will interrupt you for no good reason after you make clear you don't like it.

> Based on your views you are either ...

None of these descriptions correspond to me. This just confirm my feeling that you "think you know all" but don't really.

> and we are all snowflakes unreasonably complaining.

Let's be clear on that: I have nothing against you complaining. My problem is that you are complaining about what others are doing to you but you are also complaining that others don't accept you doing the same thing to them.

> They can't be good at coding if they don't understand the goal of the code

That's my point: people need to communicate A LOT, ask questions, interact. Bad developers are the ones who quickly create a picture in their head and then run with it. I see that a lot in my work (I'm a scientist in the R&D of my company, working with developers to create implementation of the models and algorithms my team design).

> Doing good work, for which you require peace and quiet and a focused state of mind, is what being good at coding is all about

And yet, I see developers focusing only on that and yet producing shit software.

> ... written form ... document well ...

But this is not what we are talking about. No one here is saying that this should not exist. But is not sufficient.

Let me demonstrate to you why. In software development, the whole process is based on the fact that bugs will happen. There are linter, code reviews, version controls that allow reverting, logs built in the code, advanced ticket system to deal with bug raising, ... Coding perfectly in one go is hard, impossible. Documentation and communicating things are obviously worse. Code are logical instruction with mathematical significance. Communication between person A and B can easily be misunderstood with both "being right", simply because human being cannot read minds and consider the thousand of possible mental pictures that the interlocutor has in mind. Because of that, documentation is bound to be more often incorrect than the code. It does not mean it should not be done, but it means that we should continue to continuously fine-tune our understanding, and it includes asking quick and easy questions.

Again, you are misconstruing the situation: no one here is arguing that writing things down is bad or should not be done. Simply, different mode of communication have different purpose and different pros and cons. Asking questions is sometimes the correct and smart thing to do.

> The premise that everyone is more efficient with constant interruption and questions pouring from every direction, all the time, is laughable at best.

WHO IS SAYING THAT. Can you show ONE, ONE person here who is defending that?

GP was simply saying that they like solving quick problem with a quick question, it avoids a lot of problem down the line or a lot of useless inefficient process.

Your reaction was to invent that GP would bother you all the time for information that exists somewhere else. You just have to realize that the world is more diverse than your own little person: some team works with little questions and it works very very well. The fact that you have to call GP toddler because their way of working is not the same as yours is why I think you are the toddler here. In fact, it is not even that their way of working is not the same as yours: you even seem to be asking people to do things that you will refuse to do yourself.


> That's my point: people need to communicate A LOT, ask questions, interact. Bad developers are the ones who quickly create a picture in their head and then run with it

Hard agree!

I do, however, believe there is lots of merit in establishing proper communication channels and protocols. Things written down do tend to stick more as institutional knowledge, and can be referred to later by other newcomers or when you simply don't remember why something was done. Contrast that with: "Oh yeah, Barry told me to do it like that last week while you were sick".

> But this is not what we are talking about. No one here is saying that this should not exist. But is not sufficient.

Also hard agree! Written docu and knowledge bases can never (and probably shouldn't) fully encompass all the institutional knowledge. Talks and clarifications are constantly needed. But let those work in an async manner, or in a focused effort, not random questions flying around. When you are done refining something, and the questions keep pouring in, sit together again to create a shared understanding, update the shared understanding, and 9 times out of 10 you will see the questions subside to a reasonable volume.

> Let me demonstrate to you why. In software development, the whole process is based on the fact that bugs will happen. There are linter, code reviews, version controls that allow reverting, logs built in the code, advanced ticket system to deal with bug raising, ... Coding perfectly in one go is hard, impossible.

Hard agree. I'd go as far as to argue that pre-planning everything in advance is insane as reality hits back pretty hard.

> Because of that, documentation is bound to be more often incorrect than the code.

Also hard agree. Tbh, I don't believe in documentation too much (gets too stale, quickly) unless it's autogenerated (API docs, for example) or set of often tested instructions what to run, or even loosely describing what this repo is all about. Another type of useful documentation out there is "aggregator" documentation, which simply gives you a list of all relevant things to do/check/read to get a good understanding of a problem at hand.

> It does not mean it should not be done, but it means that we should continue to continuously fine-tune our understanding, and it includes asking quick and easy questions.

Agreed 100%. However, if you see the quick and easy questions coming at too high of a volume that it overwhelms the team, then the team's institutional knowldge is being used as a crutch, or somebody is unsure of their understanding, and we should address that, rather than simply accepting it as an unavoidable fact. Maybe the person is too junior and needs dedicated handholding and going through the docs/repos/code together for a longer (scheduled) time? Maybe the docs are wrong? Maybe the consensus of last meeting was not really a consensus? All of these are things to be addressed, and not simply accepted that your colleagues always need to be there to enable your flow.

> In fact, it is not even that their way of working is not the same as yours: you even seem to be asking people to do things that you will refuse to do yourself.

I am asking for being mindful of other peoples' times and not advocate for people being at their disposal because of a bad onboarding experience they had. The OP is, in a way, advocating for returning back to an old way of working that was deeply inefficient to me and my team, just because they like it, without providing a notion whether his team mates liked it (I guess some did, some didn't).

I am simply sharing the viewpoint that while some people really LOVE to ask questions and to immerse themselves in the office space, some don't, because it cab be really disruptive to their own flow and wellbeing.


> I do, however, believe there is lots of merit in ...

Nobody disagrees with that. What are you talking about?

A quick and simple question can also be "naturally" followed by documentation. For example, when someone asks about an ambiguity in the doc, they will naturally immediately amend the doc after the clarification. Another example, they will write the code and the own existence of the code will clarify the situation for other users.

Some small questions are also not worth documenting. For example: "yesterday you said you will work on X and Y this week, and we are the middle of the week. Today I realize I'm interested in X because it is related to Z, did you started working on it already?". At the end of the week, the information answering this question will not be relevant for anyone ever.

> sit together again

This is very very inefficient to book meetings all the time at the first simple question. I really cannot see how you are able to work in such conditions where communication is over-burden with so much process.

There is pros and cons in a lot of way of communicating. Your position that quick and simple questions are not fit for any purpose is not really realistic, and you now need to grasp at straws to find argument to defend this position. Even if "a hyper-planified communication plan where everything is written down" would be ideal (which is still arguable), I doubt the benefice of it are big enough to be perceptible.

> However, if you see the quick and easy questions coming at too high of a volume that it overwhelms the team

Which is a dysfunction. You had someone talking about a process that you seems to now agree makes some practical sense, but you call this person "toddler" because of the remote possibility of pushing this process in absurd direction.

> I am asking for being mindful of other peoples' times and not advocate for people being at their disposal because of a bad onboarding experience they had.

You are calling other people "toddler" based on something that only happened in your head. It's a bit ridiculous to then talk about "being mindful of other peoples' [stuff]". Nothing in OP indicates that they are not mindful of other peoples' times.

> The OP is, in a way, advocating for returning back to an old way of working that was deeply inefficient to me and my team, just because they like it, without providing a notion whether his team mates liked it

No, OP just said he like one way of working, nowhere I see they advocate for forcing other people to do as they like. On the other side, YOU are calling names to people who don't do as you please.

> I am simply sharing the viewpoint ...

You are calling other people "toddler". You are now backing up on that now that you have to admit that your initial position was self-centered childishness.

Honestly, I think forcing people to work at the office is a very bad idea, but, karmically, for people like you, while I don't wish that upon yourself, you just don't have the ground to complain: you are a self-centered individual that calls other people "toddler" at the first occasion, if you end up with a boss that has a similar behavior and ends up coming up with the bad idea of forcing you back to the office, how can you criticize your boss?


It has to be said, if you're employing programmers and making them sit in an openplan office you're willingly and knowingly making their job significantly harder, and their day worse.

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.


Who would win:

- 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.


Who wins? The CFO and corp real estate people (correctly) saying how much more expensive (and less flexible to changing team size) a building with enough private offices is.


Good news! They can let the coders work from home and massively cut down the amount spent on insurance, office space, and furniture!

Weirdly, that's not popular with the decision making extroverts either...


Or the friends of the C-suites who own all that real estate for some reason


They don't necessarily need to be big offices. It's just that corporations generally do seating based on seniority and status, not need. They have tiny cubes for worker bees and giant private offices for the queens.

Even small offices require more costly building materials than large cubicles. So even a high density might still be somewhat expensive. Fortunately, there are opportunities for cheaper commercial real estate these days, so someone has the opportunity to try something new.


> They have tiny cubes for worker bees [...]

Not sure if you're on the same page as this conversation.

Open offices don't really have cubicles.


Cube farms aren't really much better for programming work than true open-plan offices.

The article is about the split between "office with door" and "not that", not specifically open-plan offices, so talking about cube farms is absolutely valid.


What on earth are you talking about. No one is debating true offices are superior but a full height cube is about infinitely better than open office. Cubes are sound insulating, they're quiet, they're more spacious than open office. You have storage and three to three and a half walls. The only physical distraction is caused by people walking past the opening. It's not just possible, but quite likely to eliminate outside movement from your field of view.

I'll admit that plenty of cube farms are really just open offices in lipstick but true cube farms are far superior to open offices.


I worked for a few years in the full-height kind, and a few years in the lipstick kind. The full-height cube was awesome, I had as much privacy as I really needed but the barrier to interruption was just low enough that people weren’t afraid to come ask a question.


I think cube farms are substantially better than open office plans. I simply cannot function in an open office layout, but I can in a cube farm, albeit at the cost of productivity and the level of thinking I can accomplish.


Open plans have visual and auditory distractions. Cubicles with decent walls at least eliminate the visual distractions. On the other hand, glass-walled offices might have decent soundproofing but have the distraction of people constantly walking by.

There's also the question of form vs. function. A lot of people in leadership care a great deal about the workspace looking "modern" and care less about it being effective for the people working in it.


cubes have all the disadvantages of open plan offices and none of the advantages of private rooms. i prefer open-plan offices over cubes.


Having worked in both environments, cubicles are quieter. They also have much less visual distraction.


We have a floorplan with offices of all sizes. (Ok, the biggest ones are like a mini open space - mostly used by flexdesk people who come in only from time to time).

It was more expensive, but we have zero issues with seat allocation. We don't force it and make teams always sit together. People are free to choose and switch their places, so often a project is spread across several offices and mixed with other projects.

I think it's certainly superior to having an open space.


So you're saying programmers' time is not expensive enough?


It's probably closer to the outputs (and differences in output) not being measurable enough.

I had a private office setup in one place. It was phenomenal and by far the best work environment (physical and otherwise) I've ever had.

The biggest problem was: we couldn't double the size of the team without it being a half-year leasing and construction project. So, we'd sawtooth among "far too much space and lots of pent-up hiring; a Goldilocks zone; out of space; hiring freeze; lease/construct offices; loop".

My office now is whatever I want to do with my house. That's also good for heads-down work (and obviously for the commute), but terrible for collaborative whiteboard design work.


> but terrible for collaborative whiteboard design work.

Not at all.

If you think so, maybe try switching jobs to non-remote and let someone fine with virtual whiteboarding take your role on.


In my experience, there is nothing like being in a room with a team. There is something about the physicality of presence, the way the communication has both lower latency (because it is not intermediated by electronics) and higher bandwidth (because in person even things like the way someone shifts in his shoes or his eyelid quivers is information).

I have worked remotely for a significant portion of the past few decades. I work remotely. I anticipate working remotely for the remainder of my career. I enjoy working remotely. But working in-person has some real advantages. I just don’t believe that they outweigh the disadvantages.


Similar here. I expected to hate working remotely when my company decided to switch. It turns out that I love it overall once through the adaptation period (for individuals and for the company).

Even with that, I think there is an optimal number of times per year to get the team together in one physical space and that number is probably somewhere in the one to three range, but by my estimation it sure isn't zero.


I agree communication is better when everyone is present. If a remote team was required to be available that would solve most of the problems. It’s about the culture of WFH which currently assumes slow async responses.


That's a cultural thing. All my remote colleagues are present and responsive. I certainly do not think it's a healthy assumption.

WFH does not imply async.

Timezones do.


Ive always been very surprised at companies that want in-office but then spread the workforce across a handful of timezones


My new year resolution is to never do remote work at my next job. I wanna be that guy known for being always there, at his job, doing what he's paid to do.


This has seriously diminishing returns.

If a tree falls in the woods, and no one is around to hear it, did it fall?

If your the only one at work, did you work? Are you going to optimize to others view of your work habits or are you going to optimize to outcomes?


outcomes trumps all, however, I learned the hard way, as most of us do, that optics play a role.


You can be known for always being there, at your job, doing what you're paid to do, and still work remote. Just be there, at your job, doing what you're paid to do.


Fair enough. But I just can't replace real human interaction with remote communication. I just can't. Same way I could never get in a long distance relationship with someone. I need to be in the same room as them and look them in the eye when I'm explaining something to them. I actually like the 2-5 minutes of chit chat in the common kitchen every morning, talking about where my colleague went skiing that weekend.

And I am an introvert.


> But I just can't replace real human interaction with remote communication. I just can't.

That's entirely fair. You work best in a particular sort of arrangement, just as others work best in other sorts of arrangements. Nobody is wrong here.


For sure, I was just describing it the way I frame it for myself. I'm not gonna judge people who prefer to do nothing but remote


Honest question because I'm curious. What is your definition of an introvert and how do you know you are one?


Since GP has replied, I'll now add: I think of the divide as "extroverts gain energy from group social interactions; introverts lose energy during group social interactions".

IMO, it's not shy vs open, as my wife is on the shy side but clearly extroverted, while I'm more visibly/apparently comfortable but I find it exhausting to be in groups for a long period of time.


I don't care to be in the center of attention I guess and I'm very comfortable with silence.

When I socialize with friends typically 1h is enough.

I don't "collect" friends. I only get close to people when it makes sense. I am not socially inept however, just selective


Not sure why this is down voted. A decent virtual whiteboard can be better than physical. No more chicken-scratch text labels, plenty of pre-drawn widgets to drop in, easily shuffle things around, sticky arrows, everyone can have a different color pointer, etc. The learning curve is a bit higher than physical, yet worth the pain.

Also, no judgement about attire, eye contact, stance, or demands to stay during a fire alarm ("it's just a drill!").

Shame that Slack killed Screen Hero. Perhaps the founder's Pop.com effort will catch on.


I've been working remotely for most of my career and I intend to keep doing so, but if a "decent" virtual whiteboard can do that, I've yet to see it. FigJam, Miro, etc. all seem to be technically fine but unable to come up with flows that are as clearly obvious for collaboration as "two people standing there at a whiteboard". I can use all these tools quite effectively (I've got a LucidChart tab open right now) for solo use or semi-independently with close colleagues on the same board, but attempting to add other people creates chaos and a mess over the conference bridge because the affordances are so different from what people want out of rapid, high-bandwidth low-worrying-about-the-color-of-the-rectangle idea swapping.

Though I disagree with them and with you--I downvoted that post for its writer being a jerk, not for being subjectively wrong. "If you think virtual whiteboards maybe aren't very good you should give somebody else your remote job" is "man, shut up" territory.


When people are in a room you can have multiple voice conversations at once. When you are remote, you cannot. I know you can replace voice side channels with text, but this is a lossy proposition.

Turn-taking in general is better in person due to high bandwidth channels for nonverbal communication.

I say all of that as an autistic person who has trouble with all kinds of tacit communication (it may be that I have studied it so much in order to fit in that I really notice it), so yes there are downsides to being in person (I can pretend to make eye contact on a video), but I'm talking here about why the average developer or product person might have good reason to prefer in-person for a two pizza meeting.

Nice whiteboarding app affordances are great, but the low effort of onboarding to a physical whiteboard also encourages broader participation.


> A decent virtual whiteboard can be better than physical.

Interesting. I honestly assumed that virtual whiteboarding was universally considered worse than physical whiteboarding, purely because it is amongst everyone I've worked with.

It's interesting to learn otherwise.


> Not at all

The arrogance required to tell someone that their experience is false is something I have trouble wrapping my head around.


> The arrogance required to tell someone that their experience is false is something I have trouble wrapping my head around.

It's my least favorite thing about HN, but it's one of the opiates of the internet. Alternate phrasing like "not in my experience" might be slightly better.

I still think "downvote to grey" is a regression vs. simply letting popular comments be voted higher.


It's human nature to think that our personal experience and worldview is representative of the general population, even though it almost never actually is. It's a thing we have to consciously be on guard about.

"We tend to mistake the limits of our vision for the limits of the world."

If you allow the misperception to take hold, it's a short step to concluding that anyone who isn't like you is weird or wrong in some way.


When the execs of tech companies are still able to make several orders of magnitude more money than any of the programmers they employ, and their companies are able to make profits in the trillions, with a t, no; programmers' time is not priced appropriately for the amount of productivity we enable.


This doesn’t follow, at least not without a lot more analysis. The biggest tech companies have tens of thousands of engineers make anything from low 6-figures to low 7-figures. That’s a huge salary burden that dwarfs exec compensation. Systematically paying more could easily outstrip revenues if leadership is wrong about predicting the future, which would lead to either salary cuts or layoffs, neither of which is well received. And are you saying engineers deserve most of the value because they wrote the code? What about other functions, what do they deserve? These aren’t easy questions to answer. But the reality is we don’t have to because hiring is a market. You get paid what you negotiate. This is the same for execs as it is for worker bees, the only difference is the value of your skills according to whoever is holding the purse strings.


Thankfully there is nothing at all but entrenched competition preventing you from leaving and becoming one of those execs on your own.

This very website is here to help you achieve this dream.

The delta in your compensation to theirs is the effective price that you are willing to pay to not bother with that hassle.


It's not unusual if it takes 20 years for a software developer in the Bay Area to produce output equal in value to a 2-bedroom condo. Skimping on office space is not some kind of miserly bean-counting. Software development is just not all that valuable compared to Tier 1 urban real estate.


Real estate in the Bay Area is high valued because of it being a downstream stop on the trickle down of VC money being blasted everywhere by idiots in to a captive market.


AI does not need real estate, I wonder how hard they will battle it.

Well it needs server rooms but it is not office space in the city centers, maybe office space in city centers will be turned all out into server rooms.


Last time I checked, the data on offices vs cubes came down as offices being the same price or even slightly cheaper.

Cubes and open offices enable communication with people which companies value more than absolute productivity. Sure your best people get less done, but they often enable someone else to get more work down - or that is their claim.


That claim is dubious at best. I'm old enough to remember when devs had actual offices, and the amount of communication (even serendipitous communication) was the same as with any other sort of arrangement.


Second this. To be more concise the groups I was in had a norm where you'd leave your door open if you were down to chat or BS. Cubes take that choice away.


A lot of the popularity of open plans is driven by rapid hiring. When you are already large (think 2015 google/meta) and growing 50%/year it is very hard to manage the space for teams. Fixed offices make it nearly impossible.


“I can’t back it up with data, I just know I’m right “ of course


Yet people still make arguments based off the conceit that a profit motive means businesses act like rational hive minds.


You can actually act rationally on fake, imagined and fraudulent data.


I have an office with a nice, heavy door. I don't often close it, but just knowing that it's there and that I can close if I want to is a comforting thought. That said, I think if I did always close it, I'd be more productive by a significant margin....


idk who wins, but I'd assume extroverts need a quiet environment to be able to focus as much as anyone else.


Blaming extroverts/introverts is a red herring - it’s down to the nature of the work.

Whether they’re introverts or extroverts a programmer’s job tends to require a lot of solo focus. There’s collaborative aspects of course but it always requires windows of deep work that are deeply frustrated by distraction, introvert or not.

Many other areas of work (including much work in upper management) don’t require that focus. The work is often deeply collaborative and communicative, and it‘s work that can be dropped and picked up on a dime and iterated on without much loss of productivity. In a way it’s work that actively benefits from a “distracting” environment, because it’s often full of rapid-fire blockers best resolved by grabbing someone nearby.

The friction comes from the fact that the people who do either type of work don’t understand the other type if their whole career has only involved one type.


Most programmers understand the aspects of upper management work you described in my experience. And most upper managers choose to work in separate offices.


I wonder why...


Not if they have people facing roles. In that case their job IS talking to other people. Sure, they need to prepare, but the higher up they are, the more of that preparation is done by assistants.


The extroverts are always struggling to get conference room bookings. They'd be able to converse a lot more freely by just inviting people to their always-available offices.


The asshats holding the bags of money, obviously


Bingo!


> A bunch of extroverts who just can't wait to tell you what they did over the weekend and a bunch of C-level dudes who can't 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


Nothing more therapeutic than the sight of your worker bees, stuffed together in the noisy hive, making you dough.


Lord knows many of them hate their families.

Workaholism is a self soothe for those who should consider divorce.


Recent experience at a fairly young startup has shown me that open office culture has also started to breed a very different type of programmer.

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.


I was raised by the focused type of programmer, and modern startup culture is horrifying to me (and him). I have left that world and now am solo engineer in a non-profit where I'm responsible for a list of results, not a pile of Jira tickets someone made up to look busy.


That sounds like my ideal job. The longer I've been a developer, the more I've come to dislike work that doesn't address problems faced by end-users/the org.


I couldn't be happier. I am the in-house expert in my field, I replaced an agency that was far more expensive and incompetent, and I have great hours (9-4:30!) and benefits. Oh, and I'm fully remote in an org that's been remote since 2013.


Yeah, humans have a major need of purpose.


> .... a fairly large amount of that "productivity" is fixing mistakes a more focused programmer would have avoided

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.


Deadline Driven Development is foolish. Deadlines are good to have, but you cannot force good functioning software if more time is needed to craft it. You get what you pay for, you reap what you sow. If you just want to churn out code in unrealistic time spans instead of extended efforts, you're going to get a bad product. Instead, cut things that can come out later, have developers focus on polish. I would rather a very stable and polished MVP over a rushed dumpster fire as a dev an end-user who has seen some awful.


As a former programmer and now EM, I agree with this. Open offices definitely felt a lot more productive since everyone was always frantically working and communicating. I think people actually have gotten more done since WFH started, though.


>felt a lot more productive

This is the crux. There are people who want this feeling, at all costs seemingly, despite no data backing up the assumption that returning to the office makes a materially positive difference and produces positive outcomes.


The fact that working from home means I avoid wanting to put a rifle round through my skull during a commute to the office is pretty strong data that return to office doesn’t work for me


I once heard and now love the phrase "Don't confuse motion with progress".

A lot of us are constantly busy but get nothing important done!


The sweet spot is don't force people to work a certain way. I was in an open office place before 2020, was remote friendly, we mostly would come in except when we needed personal time or whatever, but if I wanted to focus, I'd pop in headphones and crank out code, as would anyone else. If I wanted to peer program I could, and if anyone wanted a quick laugh, we'd just talk for about five minutes, because sitting staring at code non-stop in an office environment can be draining too. I prefer WFH, and I can peer program with devs by calling them on Teams and screen sharing, but if I have to be in an office, it wont make much different to me, just the risk / wasted time from the commute.


I love WFH for this. It’s so much easier to plan my day according what best works for me like focus moments and current environment. We still do all the meetings and pair programming is so immensely better over a call with screen sharing.

All the energy I’d normally expend on “shielding” myself from the office environment can now go into focus and actual creativity.


I think the sweet spot is, let teams decide how often to meet if you're going that route. For example, last place I worked at we were mostly from various parts of the states, so we were considered remote, whilst others lived nearby and had to commute. I think managers should decide wholly how their teams work. If managers need to be onsite, that's reasonable too, though I would assume not always especially if their teams are remote.

I feel like the less technical teams might benefit more from face to face, but developers, a lot of us do our coding at home before our careers even start. It is a hacker's career path.


Not just startups. I was once hired as a contractor for a major bank in Toronto who were desperate to ship a product, which was way past its promised delivery date. The AVP got an idea to put all of us in a conference room huddled around a conference table , because obviously us lazy programmers were slacking off in our cubicles and the crappy almost daily changing requirements were not to blame. The entire team began falling sick one by one (pre covid era). This was also where I learnt the hard way that it is possible to get the flu twice in the same flu season. It was a hilarious mess. Curiously enough the AVP got promoted to VP the next year.

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.


My experience with Canadian “business man, doing business” culture supports this.

Their lives are mostly modeling what business is supposed to look like. Nevermind it achieves nothing.

When I go home to downtown Vancouver I’m startled at damn good-looking everyone is in their suits and pomade-hair, in great offices exuding power and dignity. But their GDP per capita is crap compared to us schlubs in Seattle.

They must have learned performative-salaryman from the British.


Those programmers just don't get that they are part of a managerial Broadway musical. They won't even talk, and if they do not talk, how can they siiing.

Chat gpt write me a musical about micro management in software in 3 acts.


I once had a manager consistently try to pressure me and a few other developers to work in a "war room" setting to complete a project that was slipping past the deadline. He wanted to be part of it too, despite being non-technical and consistently slowing us down with impossible prescriptive solutions. It took a non-trivial amount pushback from all of us that that was the least productive way to get the project completed. He was later laid off.


That's a scary depiction of the scene. I haven't experienced things that extreme, but close enough that I don't doubt you.

It might even be a significant part of why software quality isn't where it should be these days.


Inside Facebooks' offices in Seattle circa 2019: "Overcrowded pig sty" is an accurate description. The smell was overpowering. Two pairs of bathrooms for an entire floor of developers packed shoulder to shoulder in an open plan hellscape.


I actually really loved the Dexter building. Yes it was all that, but I’m an extrovert and some part of my work day needs have been unmet for 4 years now.


Great! Go work in an office somewhere.

Guess what? I'm not an extrovert and most of my work day needs for about 15 years have been unmet.

Since Covid they are being met.


Open plan offices took off in larger companies in the mid-2000s, and I think it's a classic example of a cargo cult.

Executive management looked at the handful of hugely successful startups who had open plan offices and thought, "It must be these open plan offices, that's their secret sauce! We just need to copy that and we'll be successful too!"

...ignoring survivor bias, because for every hugely successful startup who did open plan out of necessity, there was a big graveyard of startups who had the same practice and failed.


The awesome thing about modern programming culture is that rework due to the initial thing you shipped being rushed and shoddy actually looks really good on Tableau. Because you can assign more story points to fixing all the mistakes you made during the last 1-2 days of every sprint.


Bugs and unintentional design deficiencies get zero story points at my job. It's actually something I fought for because it's faux-progress - it's work that's actually a part of the original (likely underestimated) story someone already earned points for.


Everyone has a different take on story points, but the original idea was for them to record _effort_, not value.. more story points are actually worse. Delivered value is better. So digging a ditch and filling it in would get a bunch of story points but have zero value.

But managers want to look at the numbers they have, which is story points.


Doesn't that make it impossible to use story points for estimating effort and ensuring people aren't overcommitted?


There's no such thing for us. We don't work in "sprints". We have a giant list of things to do. If you need something to do, you take something off the top of the pile and do it. When you're done, however long it takes, you take another thing off the top and work on that.


What purpose do the story points serve, then?


There's a circle of hell for anyone who uses story points as a productivity measure and not a work-in-progress limit internal to the team.


Yeah, this definitely gets at something. There's a sizable (or just noisy?) contingent of devs who prioritize activity above actual quality because quality is hard and not immediately measureable (supposedly). And it feels designed to be overtly anti-intellectual, as if the act of engineering is a mostly social act punctuated by the annoying demands made by the compiler, the runtime, and customers.

I suspect it's championed at some places because you're "leveling everyone up."

Follow the incentives.


> Contemporary startup engineering culture is best described as frenetic.

Also, like... not really engineering per se


Is anyone trying to hire only introverted, spectrumy, possibly older developers for their startup? Seems like it could be a big competitive advantage if you have smart managers and don’t do foot-guns like open-plan and pairing.


This is a war room approach that is reactive during the course of building.

Imagine insane last minute issues or something being entirely down.


last time I worked in an open office I had big over the ear noise cancelling headphones on the entire time, it was fine

I felt both afraid and privileged when most of my day was waiting for the IDE or CI/CD to compile because it was quite idle


Open plan worked for me when there was a very clear contract between every stakeholder.

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’ve seen this work tolerably well in an open space that’s entirely engineers or similar roles, assuming there are enough conference rooms for people to peel off to for meetings and calls, and you can establish the culture of the main room having a library-esque hush.

As soon as people start having multi party conversations in the main space because the conference rooms are booked 100% of the time, or people whose jobs involve talking all day are seated there, it’s game over. Noise cancelling headphones are no match for the 25th “Hey Bob, this is Jason at Intertrode, do you have 5 minutes?” of the day.


> “Hey Bob, this is Jason at Intertrode, do you have 5 minutes?”

It's funny how Office Space is still relevant almost 25 years later.


Mike Judge ended up with the same problem as South Park and The Onion.

Silicon Valley ended before NFT, AI, and GameStop. All far more ludicrous than anything in fiction.


Active noise cancellation is said to be improving, but it’s hard to go wrong with a big hunk of plastic if you can find a comfortable pair of closed-back circumaural phones. I’ve gone through about three pairs of HD 280. A former colleague would wear the same ear pro he uses at the gun range.


ACCOUNTS PAYABLE THIS IS WILHELMINA SPEAKING

JUST A MOMENT


A coworker repeatedly ignored a person’s headphones and would interrupt them anyway. One day I put a bright post-it note on my headphones: “Joe, don’t bother me”. I was in middle of flow, making some huge changes, when I noticed Joe standing next to me, laughing. “Hahaha, someone put a post-it note on your headphones!” I coulda killed him.

“In startup land did CFO

A stately office plan decree:

Through EDM, the coders flow

Unless they were disturbed by Joe

Until we broke his knee.”


I printed out the infamous quote "Go away, or I will replace you with a small shell script." It was primarily meant for one specific employee known to have the gift of gab. Seeing how my job was to automate the most mundane/error prone tasks, it seemed to be pretty effective. I heard murmurings about how some thought it was rather rude, but I never had to speak to HR about it.


Make them fear the dark wizard’s powers.


I've often run into the "just wear headphones" argument and never been a fan of it. Do you code with noise cancellation in a sort of sensory deprivation mode? Or do you listen to music?

Listening to music while coding severely reduces my concentration, and I find it in no way to be a substitute for silence.


Me neither. If I'm concentrating I don't want to wear headphones all day. Even with my very comfortable ones, it's not that comfortable and as you say, it's not the same as silence, or just the quiet of a room without human noise.

It's also the inverse problem as well though. Sometimes I want to listen to music, but I'm not doing anything that requires me to be unapproachable. Heck, sometimes I'm looking for a distraction, which is WHY I'm wearing the headphones, listening to something distracting!

The idea that wearing headphones should mean "leave me alone" just doesn't work for me, and when I want to be left alone, wearing headphones doesn't mean I can concentrate


> Listening to music while coding severely reduces my concentration, and I find it in no way to be a substitute for silence.

Me too. I can't work with music in headphones as I inevitably start listening to it. It's weird that many people don't even consider this a possibility when recommending headphones. Well, I guess it's not weird as they just aren't affected by it the same way, but still.


We are all to "suck it up" because, for some reason, being constantly interrupted is something that we supposedly have to be okay with. I say no, let the busybodies and loudmouths adapt to us for a change.


> I say no, let the busybodies and loudmouths adapt to us for a change.

Hear Hear! Thought I've never had any luck with this.


I have found that NR + white noise works well to fully isolate my mind from external stimulus and focus on the code state inside.


Contra-opinion: music significantly improves my concentration, but it has to be instrumental or classical otherwise brain gets distracted processing the lyrics.


Your word-token-hardware is single-threaded.


I will never actually experience silence, due in part to listening to loud music way too often as a kid. Music or other low-interaction media is better than the constant high-pitch tone I hear ~16x7.


Truly we are all unique snowflakes. I can't exist in complete silence (even while coding) it drives me nuts. I always have some sort of noise. Usually music without lyrics for coding.

that said... I don't like wearing headphones and certainly not for extended periods of time. So, "just wear headphones" doesn't work for me for an entirely different reason.


Sometimes I like music, most often not.

However I definitely get ear + head + hearing fatigue from wearing any kind of headphones for more than an hour or two.

Noise canceling is nice, but it seems to be hard on my ears somehow.

In a private (or home) office, I can play music through speakers and it seems to be better than headphones for me.

One thing that is both good and bad about offices is the loud air conditioning/ventilation (which of course is largely a good thing given covid, etc.) The white noise drowns out sound, but it is also fatiguing to my ears. I have been in offices during power outages when the AC/computers/etc. shut down, it's amazing how quiet it is.


> Do you code with noise cancellation in a sort of sensory deprivation mode? Or do you listen to music?

Related to what dboreham wrote in his sibling comment (https://news.ycombinator.com/item?id=38695799): under some specific circumstances specific kinds of music can increase the concentration for me when programming. If these circumstances are met, I do sometimes listen to music on my noise-cancelling headphones when programming.

But typically I love to program in sensory deprivation mode (the same holds for learning).


When I worked in an open office that required headphones for focus, I would put on white noise when music was too distracting.


Yes I can imagine Wagner or Cardi B being counter productive here. Musical white noise — plaid noise? — works wonders though. As another commenter said: EDM has been a key factor in my productivity as a software engineer over the years.


The type of music is very important on whether it works in this manner as well as individual personality types. I personally find anything with lyrics no different than listening to the chatter of the space you're trying to avoid.


Sorry that's just you. As an amateur musician myself, music helps me concentrate. Actually, if I have been writing code for a while without music, I would notice that "something is missing" and turn on my music. I know a number of colleagues who use their headphones all the time as well.


It's not "just" him. Just (yes, just) because you know some people who wear their headphones all day, doesn't make it the standard.

Lots of people (including me) don't like to wear headphones all day.


"that's just you" is dismissive and inaccurate. I can only listen to music when I'm slacking and if I begin to do real work the music I normally enjoy becomes an annoyance and I have to turn it off.


I’m not not a developer, I work in the IT space and require deep focus for a myriad of other tasks (like anyone else, I presume). I’m no longer a musician but consider myself to have a rich musical background. Music does wonders for my focus, but it also generates fatigue. So I’m often alternating between music and silence. Have you noticed the same thing or is this less common?


rainymood.com


I worked in an open office plan that did the headphones thing. I found that made it even more intolerable -- I can't stand being in a room with a bunch of people and being cut off from my senses. It makes me hyperaware, nervous, and even less able to work.


If you can't give me my own office with a door, at minimum I want a cube with 6ft walls that have excellent noise dampening (I don't want to be able to clearly hear a normal conversation next door), a large enough work space such that I can stand up and walk over to my own whiteboard, a pair of ultra comfortable noise cancelling headphones, and being able to have some natural daylight coming into the space (but not necessarily direct line of sight to a window from my chair).

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.


> 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.

I have called those kind of managers "glorified taskmasters" in the past, but "sweatshop foreman" is a good enough phrase make me want to add it to my repertoire!

It's insulting to me to treat knowledge workers as cogs in a machine or workers in a factory. Humans are not made to be crammed with other humans in tiny, noisy and poorly ventilated and lit spaces with no natural light.

We are told to "suck it up" but we are not paid the bills when panic attacks, burnout and other health problems start showing up.

As a person who has fought management tooth and nail to give myself and my teams the ability to work remotely and a have a 4 day work week while paid the same as before, I can tell you, it's infinitely better to have time and space, and your productivity, creativity and communication doesn't suffer at all (we measured it, and many others have done as well).

It's all a question of whether your corporate overlords trust you enough.


The best we can get is horse blinders and noise cancelling headphones.


The work was done by IBM in 1975. You need lots of space to keep the noise down and you need offices with doors that close.

Why are we still having this discussion fifty years later?


The costs of offices are easier to quantify than the benefits.


Because in the short term it's cheaper to do other stuff.

And ain't nobody going in between this year's bonus and executives.


Because we work in different ways now than we did in 1975? The work people do is also different. And, the people themselves have also changed. A person born in 1980s may be more used to 24/7 noise from tv and devices. A 30 year old worker in 1975 grew up in a quieter home.


You may not recognize the difference, but our brains haven't evolved (nature) much in the last couple decades or probably centuries. There's little to no chance we have truly adapted (nurture) to this 24/7 noise, even plants have problems with it: https://www.economist.com/science-and-technology/plants-are-... -> https://www.sciencedirect.com/science/article/pii/S143917912...

> Plants in the traffic noise treatment group were exposed to 16 h of road traffic noise each day for a total of 15 days, while the control group was kept under complete silence. Traffic noise exposure led to significant decrease in growth indices of both plant species.


Human change does not require Darwinian selection. Look across cultures. That people might tolerate or be most comfortable in noisier environments could vary for non-heritable reasons. Some people like less stimulation, some more. Autism rates have changed faster than our genetics also.


That generalization certainly doesn't fit with this 1977 edition human. The loudest 24/7 thing in my house is the compressor on my fridge. Silence (and office doors) are priceless.


Aren't you just reinforcing the point?


"A person born in 1980s may be more used to 24/7 noise"

"1977 edition human" (born in 1977 for those who didn't grasp my turn-a-phrase. I hope that's close enough to 1980)

And I'm not used to constant noise. So, no.


I don't think people and how they work are much different now than in 1975. I have no data, though. That would be an interesting study. Do you have data?


I do. The data would be computer sales to businesses. The data indicates computer use is now a regular part of many jobs, whereas very few jobs in 1970 involved working on a computer, based on computer sales data.


> quite litterally the worst possible working environment you could be providing

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.


At least the scorpions don't have the unreasonable expectation for you to not freak out when they interrupt you.


It is also acceptable to shoo away the scorpions. Much less acceptable with Bonnie from HR.


Yes, Bonnie from HR gives me the shudders. The enthusiasm!


It is crazy that companies will pay someone $300k a year to sit in an open office and then wonder why the conference rooms are over booked all the time. And then they don’t understand why they don’t want to RTO.


I worked for a guy (who is actually a great guy) who, while excitedly showing me the floor plan for the proposed open plan for our team, exclaimed, "I want to create a vibrant, energetic atmosphere." and asked me what I thought.

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.


> "What you see as vibrant is really your employees shooting the shit and not getting any actual work done."

That is better than getting work on the wrong thing done. People who sit in their office and never interact with others tend to work on projects the company thought was canceled months ago.


If that happens, that’s rather the fault of the company and the managers of not communicating the current affairs clearly enough. You shouldn’t need to rely on informal channels to find out what the company considers canceled.


While you are not wrong, making those formal channels is expensive in itself. If the informal channels work they can be a lot cheaper. Well maybe, I don't think anyone has really studied this including all the subtle issues.


You are saying it's normal to use "water cooler" talk to find what you should be working on?

The sad thing is that probably for some organizations, that's the norm. Management is incapable of creating clear vision and clear communication channels, and you end up with a bunch of people gathering like a crowd in front of the town hall, trying to figure out what's going on. Hard pass on that!

The West is doomed.


> if you're employing programmers and making them sit in an openplan office you're willingly and knowingly making their job significantly harder, and their day worse.

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.


Open offices exist for the same reason WFH doesn't work, at least where it won't work.

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 love that so many people answer this with "well, just get headphones" ... which just seems like an admission of a design mistake to me.

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.


The one time I had a heavy dev job (I mostly take sysadmin type roles) in an open floorplan, I ended up buying a motorcycle helmet with built in audio to isolate myself from distractions...it was mostly gregarious sporty (it was a sporting goods company), young people (I was the second oldest at the company at 32).

I was not well-liked at that job and was happy when they let me go.


> Open plan might work great for some types of work […]

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.


Open plan is good for collaboration/communication heavy types of jobs. In this kind of jobs, disruptions is a way to propagate "just in time" information through the organization. You can still eliminate disruptions in such setting, and it superficially leads to a high "productivity" in terms of LOC produced, but you act on outdated/misleading information (or you deny that information to others), which often leads to working on wrong things in wrong ways.

People often argue this can be fixed by just not needing to communicate. Like all user stories have all necessary information prepared. All the (functional, non-functional) acceptance criteria are defined, all the design documents are perfectly specified etc. But that's a pipe dream, which leads to other kinds of productivity losses.


> People often argue this can be fixed by just not needing to communicate.

They do? I don't think I've ever heard someone make this argument.


Apologies, I left out the word "synchronously" in front of "communicate". Synchronous communication is either planned meetings or unplanned disruptions, which many people strongly dislike. A complete lack of communication is of course impossible, so these people strongly prefer asynchronous communication - very detailed spec in advance, emails with the implicit expectation they might get answered with a day-long delay etc.


Marketing? Where ideas and concepts need a lot of input and discussion. Basically anything that is very human and not zero or one.

Customer support via telephone support where not one agent knows everything. I.e., you tell customer to hold the line and then ask some other agent for a solution.


I used to be in marketing (but now developer) and not really (of course depends on the specific role). Sure, parts of marketing is meetings and discussions stuff but so is software development (need to discuss requirements, architecture, etc) - the rest of the job is deep work and execution on ideas (just like coding).


The best mix imho is to have spaces where people can individualise their time - to focus.

Small booths or mini meeting rooms or even large kitchens area with tables - alone amongst people.

Because it's not black and white, everyone needs focus but also communication with others.


Manufacturing, close to the floor, where you often need to react fast and start in the morning with no idea what you will be doing that day, yet will still have more work than hours.


In the case of where I work, the marketing team seem to work better in groups, they oftent colaborate and (I hate that they do this) all crowd round one laptop to discuss ideas and thoughts - why they dont arrange a metting and do this in the appropriate room is anyones guess but its gone on for years, and is one of the main reasons open plan for developers failed at the place I work.

Thankfully our place is very much pro WFH but we do have an office with a 'quiet room' (basically a room with less desks) and a few pods for when you need to concentrate. The open plan areas are almost always 100% marketing folks though.


Mostly everything that is not creative: creativity needs focus. Take any job that isn't creating something, anything related to customer, operations, support, ... and one can do it in almost any conditions.


Creativity doesn't require solitude. Is pair programming not at all creative?


I wasn't talking about solitude, but focus: you can focus in a quiet room with other people sitting and doing their stuff, but it is not possible in a room with people moving around, with people speaking, with intense external noises like construction works nearby, ...


MacGyver-style support needs very creative solutions because no budget.


Trading floors would be one.


Sales and marketing bullpens. Some IT roles (NOC / SOC).


You have pretty noisy and messy environments where technically challenging programming and other taxing work happens successfully (e.g., some trading floor). How much do think the whole issue is self selection into preferred work environments?


There is a reason the stereotypical image of these guys is them chainsmoking, doing copious amount of drugs (to take the edge off), and throwing themselves out of high places.

Work happening "successfully" and people making money doesn't mean it's the most efficient or healthy way of working. I am happy to throw a % or two of productivity in the short term if my workers don't burn out in the long term.

Luckily, research clearly shows that the most successful work and the happiest employees happen in quiet places with deep focus.


That stereotypical image is wrong. Also, there is real complex stuff created there. Some people like such environments and wouldn't like sitting in quiet places - being where stuff happens has its benefits, too.

How is success defined in those studies? Honestly curious.


I liken open offices to a situation where I'm balancing a pile of plates in both hands and hundreds of other people are in the kitchen and can trip me or shove me at will, causing a mental stack crash.


I’ve tried working in the middle of nerf gun fights every afternoon for a year. Let’s just say I enjoy Home Office a lot.


It's never been a problem for me


Let's not pretend that we are something special, and we need to focus so much more than other creative workers.

For the majority of work of an average programmer in an average corporation, deep focus is highly overrated.


Those workers deserve environments that promote deep focus, as well.


Private rooms are not cheap and it would be hard to justify for junior programmers. And having private space just for middle level folks is bad for morale and learning of junior folks.

But yeah for companies which just employs senior folks this should be the norm.


One private room per team works very well for programmers without the expense justification. The two most productive jobs I've ever had in an office were with that arrangement, not cubicles or open offices.


Cubicles are OK as long as there isn't a lot of chatter, people being on the phone all the time, talking loud, etc. Though of course id rather be in my own room no doubt.


Cancelling sound distractions with NC headsets isn't that bad. Cubicles will most likely help with visual distraction i have in an open floor plan.


I never saw headphones mask voice adequately without playing music or other sound. Or wearable all day without discomfort.


I usually put some 8~10 hour youtube lofi stream on when working.

I have no issues with NC headphones could even sleep with them, it has pretty much become a part of me.


same. you're basically getting earplugs at that point, or keeping something on in the background as a low drone


> Cancelling sound distractions with NC headsets isn't that bad

For you. For many others (myself included), using NC headphones is even worse than putting up with the noise.


Skilled labor isn't cheap.

The buildings were put there to serve the people, not the other way around.

Even if you pay $1k per office per programmer that's still less than 5-10% of the cost of their salary, and would likely yield a performance improvement of greater than 5-10%.

You say you can't afford to, I say you can't afford not to!


> Even if you pay $1k per office per programmer

You mean per year? Private office costs are much higher than that.

If you mean per month, then you are assuming salary to be average of $100k-200k.


I meant per month.

Yes, that is indeed the average salary for a programmer in my area, that's the low end.


how do you justify the salary of a junior programmer if you can't justify giving them the space they need to perform? isn't this just throwing money away?

note that private office rooms aren't the first or only option, but rather work from home


Junior dev left to his own devices will start reimplementing Linux kernel.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: