Just as a different counter point, I have coded in lots of environments including factory floors full of thundering industrial equipment and in the Gobi desert using a noisy smelly diesel generator as a power source etc.
I think I did some of my best work when assigned a desk essentially in a corridor. A constant stream of people behind me, no privacy, noise etc. There was no half-concentration which privacy can encourage e.g. flicking to email/web every 5 mins. It was either get 100% wired in or don't bother trying. Concentration is partly a learned skill and being an environment of disruption is a training ground. Concentration begets concentration - if you have deep focus on a piece of work and made great progress, its much easier to get back to that state than if you have been farting around at the surface. If you have allowed yourself to indulge in "semi-work" then you are not like a rested athlete but an unfit one - you will have to train yourself back up to high-productivity.
The really tough environments have been temperature extremes (your mind/body just stops functioning), noise at the truly headache inducing level (sitting 10m away from a drive-train rig the size of an Olympic swimming pool) but the worst of all for me is emotional noise e.g. people bickering. Trapped in a small office with unpleasant people is where I say "never again".
> I think I did some of my best work when assigned a desk essentially in a corridor ...
> .. but the worst of all for me is emotional noise e.g. people bickering. Trapped in a small office with unpleasant people ..
There lies the problem. If its some unrelated people discussing stuff that doesn't interest us then its just background noise and get filtered out. But in office space it is exactly the opposite. You sit around with people who are doing similar work and most often what they discuss is directly or indirectly related to you/your-work. This is a problem.
Another thing i notice is that concentration is multi stage process. Sometimes when you are between something then its easy to get into the zone. But at times when doing some meta thinking, analysing where your thought process is correct or when trying to get grasp over a difficult problem, where again you have do analyse your thinking, it requires conscious effort to stay focused. If the environment is conducive then it becomes that much easier.
> There lies the problem. If its some unrelated people discussing stuff that doesn't interest us then its just background noise and get filtered out. But in office space it is exactly the opposite. You sit around with people who are doing similar work and most often what they discuss is directly or indirectly related to you/your-work. This is a problem.
I can't not pay attention to background noise. It doesn't matter how irrelevant it is, or even if it is speech or not. I also always have to be on guard all the time in case some actually does try to speak specifically with me. Thus, I live in constant fear of interruption.
I'm not convinced many do that effectively. Definitely not with ADHD, which seems highly overrepresented in dev and IT generally, as there's no filter.
ALL distraction and noise is distracting to me though meds mitigate, as is happening to glance at my coffee mug, or noticing some movement as someone goes to the kitchen. If it's a small group, 2-4 is my preferred, conversation seems to settle on discussion of ideas, design and relevant topics, and settles into a rhythm. I prefer having someone to bounce ideas off. Much of the time the group is head down working - sometimes a little too much such that you start to feel it's getting unnaturally quiet round here.
If it's a large open plan space with all functions, or a small group of disparate workers, now everything is a distraction and pulls me out of focus all the time. There's no natural rhythm, or quiet spells, tied to the work. My focus is pulled to the support call, or the different product, or the discussion of golf (A game I have no interest in) way over there.
I know non-ADHD people have a filter, but they usually seem similarly affected, just not quite as much. Before meds I would be distracted by them being distracted. Fun times. :)
Open offices are a fun time, right? lol, that meta-distraction from other's distraction is entertaining in a metaphysical sense. ;) I find that semi-quiet large workplaces are the most difficult for my ADHD brain. If there are people working near me on similar problems I have to share with them otherwise it's extremely distracting for me as I can't as naturally filter out what they're doing, like getting coffee or being distracted themselves. It actually feels rude.
For me it's like I don't have as much of a "middle ground" like most people. Either I'm social engaged with people around me and tossing ideas around, or I'm super-focused and completely absorbed in work to the point of completely ignoring coworkers (which again doesn't go over well). Medication helps bring that filtering function from a step-function to more of a smooth "sigmoid" function. It's more for other people though than myself.
Making usage of those distracted times by communicating necessary details or help arrange effective sharing across projects helps a lot too. That "distractibility" can be a boon at times if honed. Still I like to put focused project work at night when others aren't around, but that's hard to maintain.
Yeah, great. Seems like I'm always processing distraction and there's no cycles left for anything else. Try and avoid those types of places.
I don't have much middle ground either, and knowing I depend on external factors for motivation is why I like small groups. The peer pressure of 3 others having a quiet productive hour is assistive. The natural rhythm of breaks gives plenty of chances to ask the nagging question about the API you're writing etc. Meds mean I can be productive in that, not pick up every distraction, and I'm not depending on locking myself away behind headphones and tunnel focus on screen. I could be wrong, but it feels most productive for everyone.
I've found the distractability, and lack of patience with interests a huge help over the years, so long as I don't get carried away. Ended up collecting a bit of knowledge of a ridiculous range of fields and IT sub-niches. Lost count of the times it's helped me see the big picture, or the question no one else knew to ask. The downside is I've probably had more hobbies and interests - for a month or two - than everyone else in the office put together. :) Yep, for when you need to just produce, when the world and phones are quiet, nights are excellent.
The distinction, and this is why offices are important to me, is that in a coffee shop you can 99% expect that nobody is going to come up to you and bother you.
In an open plan, that expectation is nearly 0%. Even if you're wearing headphones and wrap yourself in custom made police tape labelled GO AWAY, someone will still come up to your field of vision and poke you in the shoulder.
A friend of mine has a sign on the back of his chair that say something like "Please do not disturb me when I'm wearing headphones." and people still disturb him because it is easier than emailing him.
His manager told him that he's "unapproachable". LOL!
For the managers reading this thread: just because some people can stand the noise and the distractions shouldn't mean it's safe to opt for a henhouse floorplan. There is a significant number of people (probably even more so in software development) whose noise filtering is broken on a hardware level. They CANNOT learn to filter better.
If you have a noisy environment, you probably shouldn't hire people with ASD/AD(H)D for example.
The reason managers want this is because they dont know how to tell their employees are actually working so if they see the employee in the office, then they feel better. Sad but true.
This has "truthiness" but I doubt it. Engineering managers at big tech companies (which are so fond of open office spaces) tend to be former engineers.
Pointy-haired bosses who can't tell what their reports are doing are more of a hallmark of cube farms than open offices.
I think it comes down more to them not knowing exactly when the sausage is made. They can agree if the sausage is good or not when it comes out of the factory, but what happens in the middle is less clear. The thinking goes, "code gets output typically when this person sits at this desk, and so when I don't see them sitting at this desk, they probably aren't outputting code."
I have ADD and work in an open floor plan hell hole. Google is great for most things, but the open floor plan is killing my experience the most because of my condition. They dont really care because they have too many employees to afford switching from open floor plan now.
If you're in the US, they have to accommodate your condition. Talk to your manager and if they don't help, talk to HR. This is a lawsuit waiting to happen for them.
I can see a drop in my work quality even with music that I pick. From my past experience with offices, distracting background activity tended to make me tunnel in on one thing. This was fine for tasks which did not require complex innovative thinking.
Noise may be disturbing but I can filter that out. I have a lot more problems with stuff that raises to the level of my consciousness and triggers processing there. Words like build or defect, grunts by known users/testers of my code, a manager mentioning aspects of the schedule or features that may have implications on code or architecture.
This is a good point. For me fairly random, non threatening noise and activity isn't that distracting. The hallway example was good. When you work across the hall from someone for a couple of years, a sigh can be distracting.
Because your subconscious brain said so. The vast majority of processing done by the brain, auditory or otherwise, is on a subconscious level with the ability to raise a priority interrupt.
If your subconscious is triggering on things you don't want it trigging on, it's a liability not an asset. Your OWN BRAIN is a LIABILITY. People are OK with that?
If your brain is not working right it should be retrained so that it is. This site is supposed to be full of programmers and engineers. How the fuck can anyone in here not know how to reprogramme their own brain?
What's possible is that while you were essentially forced to learn to concentrate (and therefore developed the skill), many don't know they have to learn. They're semi-interested in the events around them, don't know it's a problem and don't know the solution is to develop the necessary skills.
Chitchat in an open room filled with developers and their challenges is different to the drone of a loud machine, or chatter of factory workers whose interests might not overlap with yours. It's a bit like having the internet at your fingers - far too easy to be distracted by interesting chatter.
There are disciplines that have been teaching concentration for hundreds of years that produce people who can concentrate at will under pretty much any circumstance. To teach beginners they choose a very quiet, distraction-free environment.
Your advice seems to advocate throwing people into the deep end and taking a sink or swim approach. Train people to concentrate until it's something that's familiar and available to them on demand, and then they can do it in the face of distraction.
That you managed to make it work the way you did is great. Some people may have much more trouble than you did in similar circumstances.
> Train people to concentrate until it's something that's familiar and available to them on demand, and then they can do it in the face of distraction.
Or, you know, don't put them into a situation where they need yet another skill. Just give them a frickin' office.
> There are disciplines that have been teaching concentration for hundreds of years that produce people who can concentrate at will under pretty much any circumstance. To teach beginners they choose a very quiet, distraction-free environment.
Can you point at specific resources (name of the discipline, quintessential book about subject) for learning how to practice deep concentration, even in the face of very suboptimal environments?
If you're using meditation hoping to solve problems while your meditating, then you're doing it wrong. Meditation is like sleep or taking a rest day in a work out regimen. It's all about clearing your mind of noise so that when you finish and get back to the Feinman process then you're head is a little clearer and it's easier to focus.
Persons are different. If someone is balanced, already introverted and has no trouble living in the moment and being happy just breathing and moving then I maintain that meditation can have prolonged adverse effects outside the period of actual meditation.
If another person is extroverted, perhaps even to the point of being hyperactive, then meditation (as you described it) may help.
In general I see very little connection though between meditation and intellectual output. Many famous people who are known for taking to Buddhism did so after accomplishing
their major works.
I also doubt that meditation, even if it leads to a rested mind, helps focusing in noisy environments.
Exercising equanimity is a possible state while meditating. However, apart from equanimity, most Zen Buddhist meditations involve knowing and exercising the mind in different ways, such as applying (right) concentration and disentangling thought processes.
Note that I wrote that meditation teaches concentration as a tool, not as the end goal. Focus and concentration are useful outside of meditation, too. If you learned the concentration parts and left the rest, I'm sure the meditation people would think that you'd done yourself a disservice, but do you care?
> I cannot do these steps for programming or math in "any environment".
I have noticed that sometimes, when I'm really deep in flow on a problem, I can power through people starting a conversation standing right behind my back. I can't get into a flow state with such distractions, but sometimes I can maintain it. I imagine you've had similar experiences.
What if you had explicitly practiced concentration to the degree that you could enter a state of flow in those circumstances? With training, is that possible for some people? Most people?
Good point. I agree that concentration is a learned skill.
We should recognise that the same self discipline stopping oneself from checking reddit every 5 seconds is closely related to the ability to retain concentration.
The office I program in now is kinda quiet, but not quite. There's a someone who plays with something that makes a random clicking sound and another person who snorts their phlegm backwards up their nose and another who constantly snacks. This near-silence but with very annoying sounds at random intervals I find very difficult to filter.
On the other hand I can program just fine in a noisy cafe or a building site (which I have done).
There's a TON of industrial programming that is leaps and bounds beyond CRUD applications. I develop machine vision applications, and although my days of programming in the field are behind me, I have seen many similar environments over the last 15 years.
If you search for "open office" on HN there's a thread with a ton of comments in which one person described his ideal office setup as one that has an open/communal area in the middle and individual offices surrounding it in all sides. The commenter said they tried this in real life and it worked well.
I'm curious as to why this isn't as popular—it seems so obvious. I'm actually in a program with a similar layout (except there's only individual rooms on two sides) and it works great.
I'm skeptical of "serendipity" arguments... Bell Labs had private offices and they did fine.
On Bell Labs and open offices, Richard Hamming (retired Bell Labs scientist) said:
"Another trait, it took me a while to notice. I noticed the following facts about people who work with the door open or the door closed. I notice that if you have the door to your office closed, you get more work done today and tomorrow, and you are more productive than most. But 10 years later somehow you don't know quite know what problems are worth working on; all the hard work you do is sort of tangential in importance. He who works with the door open gets all kinds of interruptions, but he also occasionally gets clues as to what the world is and what might be important. Now I cannot prove the cause and effect sequence because you might say, ``The closed door is symbolic of a closed mind.'' I don't know. But I can say there is a pretty good correlation between those who work with the doors open and those who ultimately do important things, although people who work with doors closed often work harder. Somehow they seem to work on slightly the wrong thing - not much, but enough that they miss fame."
Those who had their doors open still had offices (and I guess a few of them sometimes closed the doors.)
For us who have had to live in open offices where people come in to chat about guns[0] and cutting legs of dogs and daydreaming loudly about things so pervert that anything you have yet heard from big T (yet, at least, I have seen the news) pales and can make even native Norwegians blush...
...for us it is less about where we are in 10 years and more about where we are today.
[0]: minor remark: I am as pro-gun as any of the locals it seems, just don't start chatting about them in the open floorplan where I sit to work.
It's not a binary thing! you can shut the door when you need to concentrate and open it when you want to be sociable. That's how it was in my last job and it worked great. Currently I'm in an open-plan office that's hot and noisy, so I work from home in the mornings when I do work that requires concentration and then I go into the office in the afternoon for easier work and chatting.
John Seeley Brown, in The Social Life of Information, has a pair of anecdotes from Xerox's repair staff and either Xerox or Kodak (I think) customer service.
The support techs used to have a morning coffee session before heading out into the field on their calls. These turned out to be hugely useful tech transfer opportunities as repairmen would share both their unsolvable problems (machines which had broken and couldn't be fixed) and "This One Weird Trick" solutions.
The second anecdote involved customer service operators, who had previously, if I'm remembering this correctly, shared floor space with techs, but had been moved to their own space. Following the move, there were two specific operators who were able to help out customers by not following the specific scripts they'd been provided, but rather by supplying actual useful questions, diagnostics, and suggestions. When studied by management, it it turned out that one was a veteran of the former seating arrangement. The other, however, was a more recent hire. She did, however, sit next to the more senior rep, and had picked up tips listening and talking to the other employee.
The lesson I'm drawing is that you don't need people to be interrupted all the time. But you do need them to have some opportunities for a free-wheeling exchange. Finding the right balance point between heads-down work (the Xerox techs, for example, were mostly on the road and at customer sites, so they wouldn't have had input from other techs), and exhange opportunities.
In academia, there's the teaching vs. studying/research balance. A few days of lecture and sessions, with other time devoted to actual research, gives that balance of peturbing your own thinking and exposure to new ideas, and focusing on your own work. E.O. Wilson addresses that in his recent book, Letters to a Young Scientist (along with advice to avoid as much teaching and administrative responsibilities as possible).
A company I used to work for had expanded past its available office space, and so they had to rent another office nearby. They moved all the upper management, project managers, and engineers (basically the 'cool kids' / 'important people') over to the new office, leaving some admin staff behind at the main office with the workshop.
The resulting loss of communication between workshop and everyone else caused havoc and a bunch of things went wrong.
There's a well known international company who "rationalises" (or did a decade or so back) its office space by putting all contractors, regardless of assignment, on a single floor.
I found myself wedged between a contingent working COBOL and a very chatty (and pleasant) graphic designer, with the sole other contractor in my unit located at the extreme opposite side of the building, and my direct reports a half dozen floors up.
Most offices already have dedicated space for discussions and exchange of ideas. It is called "kitchen", or "watelcooler area". Rest of the space should be private offices to do some quiet, focused work.
One of the things I miss about working in blue-collar jobs is the sanctity of the coffee break and the lunch hour. 9 o'clock, noon, 3 o'clock, tools down, everybody goes to the break room and has a cup of coffee, shoots the shit, catches up on what else is going on.
The plant I used to work in also did daily standups. They worked a hell of a lot better than any I have ever seen in software, since they started the minute after everybody was supposed to punch in, rather than some amorphous time mid-morning when somebody decided there might be a better-than-average chance of everybody finally dragging into the office or there not being some other regularly scheduled meeting.
There's a huge difference between work which you can do tools-down without a lot of fuss, versus work which involves keeping a ton of state in your head. I've done both myself, and there's a distinct difference between working with your hands and working with your mind entirely.
Not that tools-based work can't involve thinking. The design or planning elemments of carpentry or construction or machining or cabinetry can be quite cerebral. But there's that hand-eye tangibility that's missing.
Several times over the years I've had an office with a door. Normally I kept the door open, but I would close it if I had work that required extreme (for me) concentration, or if the environment outside was excessively distracting that day, etc. IME, this is quite common for other people as well.
Since I have trouble concentrating when people are talking and get quite unhappy about it but managed to keep my door open the vast majority of the time, I have to wonder. Was Bell Labs an excessively noisy place, or were the closed door people there those kind of people?
I'm sure he did good work but this is the intellectual equivalent to snack food. Its entirely possible to be open to outside influence without giving random coworkers visible permission to interrupt whenever.
Well, his definition appears to be that the people with closed doors did it "enough that they miss fame". Who's to say whether those people made extremely good contributions, but since they were introverts didn't seek out fame, or actively ran from it? The whole quote is just anecdotal stuff.
This can clearly go the other way: people who make an impact are approached so much that it's hard to keep the door closed, doesn't mean it's their natural preference.
He may be right, but as an employer, your aim won't be to make all your programmers famous. The work better done behind closed doors is probably at least as important as that of the visionary with open doors: putting out fires, fixing bugs, meeting deadlines. As an employee, you'll surely want the "open door" work ...
When we moved our dev team to a new area, I chose this style of layout. Each developer has their own small office, which forms an outer perimeter. Each office also has a 4x4 window next to the door to keep the atmosphere open. In the middle is an open kitchen and a standup area, separated by the bathrooms. We have a conference room in the corner. All of this is behind key-access doors, giving the team a sense of sanctuary.
Each office, as well as the standup area and the conference room, have a whiteboard wall.
I would say that the general idea is that developers come together at standups, and typically plan out the day. If two or more developers determine a discussion is needed, they normally schedule right after the standup. Then the developers depart to their offices, and generally put their heads down and work in quiet. Most leave their doors open throughout the day, and close their doors when they have phone calls or small meetings.
The arrangement works well. Adhoc conversations are not discouraged, and occur throughout the day as needed, but the separate offices keep the trivial conversations and disturbances to a minimum.
From a cost perspective, this layout requires considerably more space than an open layout. And separate offices require separate HVAC ducts, and walls and doors are (obviously) additional expenses, too. I'm grateful that our team's contributions were recognized by the company (a non-tech company), such that the expense was considered worth it. it's certainly a cornerstone of my sales pitch for recruiting developers.
If it helps, let me put my vote of support for that sales pitch. Literally that fact alone had me going "I wonder where he works", and I'm in quite a good spot right now. I cannot express how much a motivator a sane office space has become for such a silly thing after the last few years of open-sardine-cans. I would love to see more companies recognize that certain acts of consideration to their eng (I don't mean the more transient stuff like "free dinners" "pool table") are a significant differentiator for my strata of less-extroverted devs.
I work in an open floor plan where I'm right on the aisle and hate it. Unless I'm focused 100%, it is human nature to check your back when someone is behind you. I can now identify the entire office floor's staff via their walk. It is a good way to keep abreast of issues and socialize, but waaaaay less productive than when we has cubes.
Anecdotally speaking, this streamlines the process for your butterfly fairy manager to float in and unnecessarily disrupt everyone's work at once with random out of context comments during their daily bypass appropriate communication channels.
This is often repeated on HN threads as a plausible explanation for open plans, always without evidence. But it makes very little sense as a theory. Companies do not have a financial inventive to consciously cripple their very highly paid, very difficult to hire developers' productivity. People are their number one expense and asset, vastly moreso than office space. Far from cutting corners, many open plan companies also spend lavishly on amenities to keep engineers happy.
A more plausible explanation is companies do open plan because they believe it will help foster collaboration, culture and team productivity. You may disagree but the "beancounter" theory makes no sense.
It's easy to measure the money saved when you go from individual offices to an open plan. It is a lot harder to measure the lost productivity of your programmers.
That's not really true. You can look at developer velocity and bug fix rates, to name a couple of readily available metrics. It would not be some big mystery if open plan was killing productivity.
Also, it does not explain why a "beancounter" mindset about office space would be paired with lavish expenses on free lunches and other de rigueur amenities in said offices, as is typical of open plan startups. Conclusion: it's not a beancounter mentality that drives the decision.
> "You can look at developer velocity and bug fix rates, to name a couple of readily available metrics."
How? If an office starts out open plan (which many of them do), are you going to move to new offices just to test the theory that it'll make your employees more productive? Plus, bug fix rates are a bad metric, bugs are not equal in complexity, and even if you try and guess at the complexity before working on a bug that's only an estimate, and one that doesn't take into account other important factors such as the level of churn in the codebase and the level of familiarity the developer has with the part of the codebase they are asked to fix.
Just because you have to do something that is suboptimal when you're starting out because of resource constraints, doesn't mean that you should enshrine that sub-optimal situation as ideal.
As an absurd example, Jobs and Woz made the first Apple computers in a garage. When they started making some actual money and could afford something better, they didn't insist on their engineers all working in garages.
Open offices are very reminiscent of the kind of environment that I remember from college, where the default studying option seemed to be going to the library, staking out a seat at a big table, building a fort of books, and "studying," with the emphasis on appearing studious and some sort of bizarre status hierarchy about how many hours you held station there.
Which metrics? There aren't any accurate ones I know of. Anecdotal evidence is possible, but I don't see how programmer productivity can be measured with scientific rigour.
Developer velocity compares what you thought the complexity of a problem was vs how much time it actually takes. It conflates the level of optimism with the speed of development and glosses over how complex the stories should be.
Smart developers get overly pessimistic when pointing stories if they're measured by developer velocity rather than actual business value delivered because it makes them seem faster.
>and bug fix rates
Last time that metric was taken seriously developers deliberately inserted bugs.
Pretty much any development metric that drives some kind of reward will be gamed (maybe even unconsciously) by the developers. It's just basic psychology.
>>Companies do not have a financial inventive to consciously cripple their very highly paid, very difficult to hire developers' productivity.
I highly doubt that:
a) most companies have done studies to measure correlations between office plan types and developer productivity
b) they even know how to measure developer productivity accurately
On the other hand, they can easily measure headcount per square foot. It's a simple division that even the stupidest executive can perform. The other stuff is just hand-waved away.
Also, the managers who sign off and make the final decision on which office plan to go with tend to spend most of their own work time meeting and talking to people, rather than needing to sit and concentrate on something for several hours. I expect this influences a cognitive bias when these managers consider the productivity level of an open plan office.
They don't consciously cripple, they just can't connect the dots. The facilities person tells the CFO, hey, I found you this great office for 1/3 the price. Then the VP of Eng, who never codes anyway, spends 100% of time in meetings replies, awesome - we'll have an open floor plan for better exchange of ideas. Win-win, right?
You're implying that management bases its decisions on scientifically founded research. I've never noticed that to be true just about anywhere. Most corporations don't implement best practices in, well, anything. Why should office layout be any different?
Right. I mean, this is the industry that occasionally thinks it's a good idea to install rootkits as part of game or music drm. The idea that they're too smart to work contrary to their own long term interests is laughable.
Well all the research basically shows that productivity goes down when distractions increase, so you won't even see anyone quoting research to justify their decision. The executives who make this kind of decision generally know they will always have a nice office so it won't hurt them (and maybe the unsaid reason is that deep down they know that only them having an office helps the little people to understand their place in the org).
It doesn't help when the cool kids like Facebook endorse this kind of idiocy - other companies feel it is safer to just follow what others are doing. We need to have a new major tech player endorse the idea that the goal of a company building is to make the workers as productive as possible - you get better work from them, they enjoy it more and it will become easier to retain or recruit people.
The thing is, the higher rents for more floor space and separate offices are very tangible metrics for beancounters, whereas suboptimal developer productivity isn't. And that doesn't change when a company stops being a startup (by whatever definition).
My own anecdotal experience is that I have never, ever, seen private offices for devs. The private offices I know are all given as a privilege (for some boss), not for productivity.
I have been a software professional for almost 30 years. I have worked in shared offices, open plans, cubes, but have never in that time had a private office of my own. Often my immediate managers/leads did not have offices either. The execs always have offices, yet in many cases are rarely in them.
It's about money. It was always about money, the collaboration thing is just a veil.
Companies will always invent "happy vocabulary" to justify whatever it is that is in their interest to do.
If they could pack their employees into little cardboard human boxes all separate from each other they would say "Our environment encourages strong focus and solitude."
It's also about (perceived) control. Otherwise remote work would be pretty much the norm today - at least for software development and similar kinds of knowledge work.
Development output isn't easily measurable. What's easily measurable though is people sitting in a chair and pretending to "work".
Let's imagine a universe where research showed that factory workers gained significant productivity when they had private spaces to concentrate. Do you think that the factory owners would suddenly erect partitions? Of course not - at least not until they faced significant competition and were losing market share.
Too many people doing software over-inflate their importance to management. The reason why there are few offices at tech companies is simple. Management views software developers as factory workers, and they want to 'see' them working hard for the money that they're spending.
Open offices are cheaper. So if you can con your mostly 20-something and 30-something tech staff that it's the best way to go, then you're golden, you save a ton of money and your employees don't even realize they're being ripped off.
As for "serendipity" it's the classic post-hoc fallacy problem. People think "oh, there was that one time" where something good happened in an open office, and they think that means nothing good would happen without open offices. Serendipity happens plenty with offices, but it happens amidst a background of much greater productivity and less annoyance at noisy office mates.
your employees don't even realize they're being ripped off.
Careful with your terminology there. To be "ripped off" requires there to be no other choice. Your car has broken down in the desert and the single mechanic within 100 miles can charge you what he wants.
In that light, it is not possible for an engineer contemplating accepting a job offer from Facebook to be "ripped off". He's in intelligent businessperson negotiating a deal with a ton of other options available. They can't force him to do anything, and if he sees an open plan office as a downside, he can negotiate compensation in other forms.
Personally, I'm happy to work in any environment you put me in. Stick me in the swimming pool and feed me margaritas all day if you think it helps your corporate culture. I'll assume you've done the math and factored in the drop in productivity, so I won't feel bad to watch it happen.
That's the nice thing about business. You can assume the other side of the table is also behaving rationally, and let him shoot himself in the foot if he pleases.
> Careful with your terminology there. To be "ripped off" requires there to be no other choice. Your car has broken down in the desert and the single mechanic within 100 miles can charge you what he wants.
That doesn't reflect any usage of "ripped off" that I've ever heard. If I buy a doodad from one of three sidewalk stalls all next to each other, I pay $40, and any of them would have sold it to me for $5, it would be conventional to say I got ripped off.
Or, if I buy a dowsing rod advertised at a nonnegotiable price, it would still be conventional to say I got ripped off, because there's no such thing as a dowsing rod.
"Ripped off" means you paid more for something than it was worth. The lone mechanic in the desert isn't doing that; his services really are that valuable.
>>your employees don't even realize they're being ripped off.
>Careful with your terminology there. To be "ripped off" requires...
>It is not possible for an engineer contemplating accepting a job offer from Facebook to be "ripped off". He's in intelligent businessperson
For someone telling people to be careful with their terminology, the word "businessperson" sure is an odd way to describe a W2 employee taking on a full time job.
If you redefine the word "businessperson" to include everyone who has ever taken or pursued work as an employee, the meaning is both at odds with common English usage and so broad as to be nearly meaningless.
Nearly every company these days falls for this. I suspect suits completely misunderstand the principle of time value of money, as they wrongly conflate "short term money" with "earlier money."
And in finance, when it comes to inflows of money, earlier always trumps later (as it's assumed that you can thus will invest that money for longer when you get it earlier).
That's true of a lot of practices, but when the feedback loop isn't as tight, it's easy for companies to ignore it. There are countless examples of big companies hemorrhaging talent because of their corporate culture, policies, etc. I've witnessed it many times with my own eyes. But that sort of thing doesn't manifest as the company burning to the ground in the next year and then people going "why did that happen? oh, it's because we lost Jim". Instead it looks like a failure to execute as well on big projects. But because there are always so many things changing from project to project, it's always easy to blame something else. And the management at most big corporations are loathe to blame themselves or their policies, so they always find some other convenient excuse.
This is a big reason why companies change character of time and transition from being industry powerhouses to also-rans.
I've seen this called "cave and commons", and yeah, it seems like a very good setup. I first saw it mentioned in Stewart Brand's (highly recommended) book How Buildings Learn.
This is EXACTLY how we have it at our office (Series D startup). On a daily basis, I pend about half my time in the open area with my team and everyone else dropping by, and the rest in a room where I can be plugged in at peace to get some concentrated coding done. The office rooms range from 1-2 person rooms to 6-10 person rooms, and all of them can be used at any time of day by anyone in office.
It's funny how I never have to stretch timelines or have communication issues with this setup.
microsoft has that in some teams. one team specifically i knew was transitioned from offices to the open floor plan but their old offices remained empty. this allowed them
to have both
I really don't understand the sentiment against open floor plans. A little over 4 years ago, I switched from private offices and cubicles to an open floor plan. It's... Just so much better.
I'm an introvert. I don't really enjoy small talk. But I really appreciate being informed of what's going on when someone enters my area or someone wants to open up a discussion. Is t an interruption? Possibly. But I consider learning from and teaching others to be part of my job, a career goal, and developing soft skills. It seems like there's a tremendous and dangerous undervaluing of soft skills. I have learned so much and become so much more skilled technically by having these discussions. I'm able to remain in-tune with current project status, etc. this way without having to schedule meetings or get large groups of people together at the same time. I would spend so much more time in meetings if I were in a private office. I'm also completely at liberty to work in kitchenettes, common areas, patios and other places without any resistance. There's plenty of room because everyone's out in the open. We have occasional dividers between teams or different functional groups. But nothing is glued down.
Is it really that hard to focus in on some work? If you require complete silence and isolation, I'm afraid you are suffering from the development of certain technical skills at the cost of many other, equally valuable skills. For example, if you ever intend to pursue entrepreneurship or aspire to CTO rank, you can expect to be interrupted often. You will still have to do your work. What will you do then?
I see private offices and cubicles as a recipe for limiting your effectiveness outside of a narrow role. I think it hinders a person's career as they are unable to obtain new skills. If you are deliberately avoiding developing these skills, it is your choice, but if management is trying to get you to work in a dark basement, slide a pizza and a deadline under the door from time to time, and expects you to be happy, just remember that they are getting more out of you than you're getting out of your job.
I've become a Cal Newport fan and I'd recommend you read at least some of his blog (http://calnewport.com/blog/) or his book (Deep Work) since he'll be able to explain things much better than I can.
In knowledge work, it's important (for most people) to get into deep focus to solve hard problems. Anecdotally I've seen huge gains by setting aside an 1:30 in the morning to WFH completely disconnected and then another 1:30 in the afternoon to hide away from my open work area. It's incorrect to claim that development of soft skills is at odds with the ability to get into a state of deep work with offices and / or working from home.
As for your question about being hard to focus on some work, yes it definitely is. I'd recommend you look into attention residue. In addition, I'm afraid your perception of your own possible output is probably much less than what you're actually capable of because you've learned to live with constant distraction. If you can't go more than an hour without checking email/texts/talking to coworkers/being interrupted, I'd argue that (as a knowledge worker), you're operating well below your capabilities.
Thanks for your comment and advice! It gives me the idea that I should perform a self-study. I can take two weeks "off" and work in complete isolation (during actual engineering time) and compare my productivity to the norm. I expect the difference to be negligible but I am prepared to eat my words if I am wrong.
If anyone else is interested, I can write about this experiment and its results in a few weeks once I'm done with it. Replies here or emailing me will work.
Your HN bio says "DevOps Engineer" - I think that means that you apply software development techniques to tasks that traditionally belong to sysadmins or "IT"?
Note that the article quotes Spolsky talking about "developers" - it's possible your job has a slightly different mix of need-to-concentrate versus need-to-communicate compared to a pure developer making software at Microsoft.
Thanks for asking! Actually, although my official role is DevOps engineer, I spend 90% of my time writing application code. I am part of an engineering team and simply consult the team on operations. This is how we do DevOps at my place of employment. In a nutshell, your thoughts are probably accurate in most cases, but for me, personally, I do software engineering full time.
How productive would you gauge yourself? I find my productivity drops off significantly on days when I have alot of distractions. I suppose I'm being productive in other ways on those days, but sometimes it seems like I've accomplished little.
Over much time, I have learned that my personal feelings about productivity and my actual contribution are wildly different. This is because my sentiment toward work I want to do and my actual work can be different. This really is tangential to the original subject matter, but what I often see is that people feel less productive when the fix a bug than when they ship a feature; they feel less productive when they resolve some service outage rather than when they fix a bug; and they feel less productive when they hold a design review for some operations process improvement than when they resolve some service outage. As this hierarchy descends, I find that "having a discussion with a colleague" is often at the bottom. But in reality, all of these types of work are equally valuable and important. Their literal value may be different, but for an organization to operate, they are all about the same. Sometimes there is no "literal" value -- teaching an intern about git seems like a waste of time, like you're not being productive, but when they eventually get hired and ship a really valuable feature, your work enabled that.
With all of this in mind (and by the way, if your direct manager disagrees with the above statements, I recommend finding a new employer), I consider my productivity to be mostly the same on a day to day basis, with some ebb and flow. This despite interruptions or what my work environment is. I feel this way because of my perception that all types of work are equal, I just spend most of my time doing software engineering work specifically.
Consider the metric for your productivity in terms of value, not sprint points or lines of code or even "number of features shipped." What "value" means to you, your boss, and your organization varies.
This is about the environment often present with any sufficiently large open office. I have been in offices with 26 people in a space probably meant to hold 20. It speaks to a culture of cost cutting over engineer productivity; when even a low amount of tech discussions at a given time end up with 6~ people talking simultaneously constantly. (see comment re: emotional noise being worse than mechanical noise, in a prior sysadmin job I worked in an office next to a transformer room and would go back to that in an instant because if I really needed to focus at least I could shut the door; and the transformer wasn't going to ignore signs of focus like headphones and being heads down to come over tap me on the shoulder and context switch me to something that really doesn't need to be discussed.)
Similarly; not having enough private rooms when they're actually needed for focus work, being placed in rooms with entirely distinct feature teams, and being often shuffled between them.
These are all "non soft skilled" environmental factors that have made working in open offices FAR more unpleasant for me than private offices (By private I include up to 1-2~ other people sharing your literal role)
Let me address your "at a cto role you must handle distraction" comment as well, since while I agree, we are _not_ at the CTO role, and to pretend the nature of our work is even similar is dishonest. Long-term context dependent thought work has an extremely well documented penalty from context switches. The CTO role, as has been described in recent HN threads and elsewhere, is far more of a salesman/face/public mouthpiece than engineer or even a technical role, and these career skills lend themselves to very different traditional environments.
Some great points here. I'm on mobile but will try to respond to them all.
If your open floor plan does not have plenty of huddle rooms or jump in rooms for private conversations, as well as plenty of single-person focus rooms, then you very well may be in this situation where your employer is trying to cram you in too small a space like chickens in a modern day farm. If the space feels cramped you may be suffering. These are important details and my original comment did leave them out. Where I work we have plenty such focus areas, for individuals and groups, and as a courtesy to others we frequently make use of them. Meanwhile the office atmosphere is bright and open and feels like home.
I agree with your statements about a CTO role, completely, and so I suspect that my wording was confusing and insinuates that we disagree; but based on your statement, we do not disagree. To reiterate, I was trying to point out that interruptions will happen, and developing the skills to deal with them is important; simply changing your environment doesn't necessarily develop those skills, which may be equally or more important to your career than completing your next development task. We're all on different paths, and so if your goal is to always, eternally complete the next development task, then my suggestions do not apply to you, and you should work out of a private office, as learning skills such as dealing with interruptions and managing your time are skills less useful.
> For example, if you ever intend to pursue entrepreneurship or aspire to CTO rank, you can expect to be interrupted often.
If you are at CTO rank, your job is not to program. You may still do that at times, or other things that require quiet time, of course. For that, you need "office hours" or "quiet hours." You simply make yourself unavailable and go somewhere you can have uninterrupted time.
If you are trying to be a developer that gets interrupted all the time as a CTO, you are definitely not doing your job right.
If you are at CTO rank and were previously an engineer, then you've already accomplished your goal and know interruptions on a constant basis are part of the job. That was my argument. Your rebuttal is a straw man: I make no claims as to what the role of a CTO is or in what way it differs from a software development role. Simply that, if you are a software developer and have aspirations to become a CTO, you have more skills to develop than technical skills that are only effective in a perfectly isolated setting.
I loathe being in offices. Especially without Windows. I feel castrophobic. I like to work in big open spaces. At the same time I do love my me-time. So I come to work 10.30-11 and leave at 8. Gives me 2-3 hours after everyone leaves. Those are my most productive hours.
Also I love working from coffee shops. It's like you're alone but you have people around. The smell of tea and coffee have something to do with it.
i'd love an office. I do my best work when i pretend i'm a real functioning engineer. This open-concept agile way of working is very frustrating for me.
I've never worked at Microsoft, and I know little about their work environment for developers. Can others here elaborate on why Joel Spolsky has such high praise for them beyond the 12/12 Joel Test score? What lessons can other teams take from Microsoft's mastery of developer work environments?
EDIT: I would add that I strongly agree with the need for quiet and concentration as a developer. The worst place I ever worked at had a constant barrage of meetings throughout the workday and a very noisy distraction-heavy open floor plan.
I wasn't an employee, but I worked there for weeks at a time as a contractor. You get your own office and people don't bother you if your door is shut. You are expected to communicate by email or chat. The building is very quiet, and if it's raining outside, which it does often in that area, you can get hours of glorious uninterrupted time to concentrate.
That's the fault of product managers and focus group specialists. Programmers don't get much input into the design, at least when I was there. It can be good if you just like to code.
From watching watching older Channel9 videos: everyone gets an office, every office has the same size. If you switch the team, you move to a new office in of of the dozens buildings on the campus. All older buildings are 3 floors with parking space next to the buildings.
Has something changed recently? Many devs of Win3/95 era got rich and retired early. So the culture may be different now.
I've seen places like Studio A where there are cubicles and even "open rooms" now. Older buildings have individual offices, but junior employees share them with another roommate (or sometimes two!).
I like two people per room. It is great for knowledge transfer, but unless your partner is rude, there is no distraction. Three people per room is bad, though. Two talking distracts the third.
I think I dislike shared offices most of all. You hear every fart and belch from the other person, you can't ignore their annoying fidgity habits like rocking in their chair, tapping their foot constantly, etc. I'd rather do open plan than that, especially if it's one where desks are not assigned and you can easily change where you sit.
I think the hardest part was that my office didn't have any natural light at all because it was in the middle of the building (and given that it was Seattle, there wasn't exactly very much light to begin with even if you were in a spot that received some sunlight coming in from the outside windows).
I wasn't distracted all that often with a single officemate, but I did have to buy daylight spectrum lamps because I have S.A.D. and vitamin D deficiency.
I have mixed feelings about open concept floor plans. I think they can work - especially if the office is organized such that the work area is separate from areas that could be loud.
People who visit our offices are often surprised at how quiet the engineering floor is. There might be the odd conversation, but the tone is kept low, and everyone is issued a pair of noise cancelling headphones.
People generally respect the headphone rule and will ping you on Slack instead of shoulder tapping.
Basically open concept floor plans can work as long as everyone respects the etiquette that makes it work.
I don't want to have to wear noise cancelling headphones all day long. If you give them out to everyone, it becomes an excuse to be loud. "Just put on your headphones!" No, you go fucking chitchat somewhere else.
> Good quality headphones also mean that your neighbour's shitty music isn't leaking noise into the workspace.
You don't need anything expensive for that, I have a pair of Sennheiser HD-202 ($25) at work that do it just fine. In fact, they also block most noise from the outside, to the point that I can't hear the person 6ft away who's calling my name.
I would prefer to work in a private office as well rather than working from home since I like to go into work and hang out with my collages every once in a while. A private office will allow me, as a developer, to choose when "I" want to concentrate, not when the environment just happen to allow me to do my work. Trust me, I will be more productive this way.
However, I can also understand that not every business can afford private offices for their developers. But then again, how difficult is it to create a "quiet" and "busy" area? Any company that has the ability to afford more than 2 or 3 devs should be able to do this right?
A reasonable solution is to both have private offices and daily communal things like everyone in the team doing something like eating lunch together.
Perhaps one day per week where the tam grab laptops and work communaly/ close to each other and the rest of the time, have offices whose doors can be closed would be optimal. I do think you need some communal time or people stop ebing able to properly learn about what is going on among other groups.
Oh, sure. I'm not saying you shouldn't communicate and I don't think developers having private offices will stop them from doing that. Communication will depend on the culture.
What a private office (or quiet space) does allow for is that, as a developer it's now "your choice" whether or not you can focus on your work rather then that this is decided by your environment.
> I can also understand that not every business can afford private offices for their developer.
I think it's more true that not every business can afford private offices for their developers if they locate their business near the trendiest part of downtown.
Usually the trendiest part of town is also easiest to get to. Also, depending on your business you might want to be where your clients, or potential clients, are.
Having at least a quiet and loud space is to me a better compromise than some shitty open plan office, at least I have choice that way.
> Usually the trendiest part of town is also easiest to get to.
Not when it's where everyone is trying to go, and where almost none of your developers can afford to live.
I like when companies set up shop in a suburban, inexpensive town, and their employees can afford to live 1-5 minutes from work.
If you're a startup, you might desperately need the VC networking and signaling value of Silicon Valley. If you're doing a lot of direct B2B sales to Silicon Valley, you might need to have an office there. Otherwise, and especially if you're a company that can set up shop anywhere sensible, be anywhere else high-tech.
I agree with this sentiment (and I've made come related comments), but if you can afford to put your business in the "trendy" area you should do so because of the type of people it attracts, and because of the creative environment it fosters.
Even if you can't afford to put your business in the trendy area you should still try and locate to a more urban environment. The issue with putting your business in the suburbs is that it attracts the people who are not as willing to take risks, or who aren't wanting to put in 10+ hour days hoping for an IPO (just generalizing here) because they want to take their kids to soccer games. Nothing wrong with that, but a different life stage and a different outlook on work.
Trendy spots tend to be equidistant from everything else. Placing yourself in one means you can have the greatest # of suburban dwelling developers in your radius.
If you locate in a suburb on the east though, you're too far for developers who live in suburbs on the west, and vice versa. Being in the city, means you're equally sucky to get to for anyone you hire and since we already worked in the city before we already know how to handle getting to your place.
> Being in the city, means you're equally sucky to get to for anyone you hire
Exactly. Whereas unless you're so large that you need to hire everyone in a wide area, while simultaneously having no way to motivate people to relocate, then you can provide an optimal commute for far more employees by locating in a suburb.
(Or, alternatively, in an urban setting in a city that isn't bursting at the seams whose traffic makes it take an hour to get anywhere.)
I have not worked in open offices for a long time but today at our Chinese partner I was in one; I for one get nothing but meetings done there. I am far more productive in my hotel room. Which is why I only go to the office when there is a relevant meeting.
I agree with Joel, I've worked in an open floor-
plan, individual offices, shared offices, and even one open floor-plan where part of it was an actual store front.
For me, happiness and subsequently long-term productivity has been directly correlated to privacy.
While I'd never do anything casually I'm an open floor-plan I got successively drained over the week to the detriment of my nights and my weekends, so in the short run I was more productive but I also left those places.
True Story:
I worked a few months programming in an open floor plan (all hardwood floors).
My commute from an to work was 3 hours each day.
The prog next to me was a Finger drummer + song hummer.
There was construction for a new building 20-30 feet from me (next building), and they were driving pillars into the ground for foundations (Booom Boom all day).
There was no AC during summer.
The washrooms/water would regularly be out of order for several hours ever 1-3 days.
All this happened simultaneously over the course of several months. I did finally quit, and I would not wish these conditions on my worse enemy.
I had a colleague who would be finger drumming and palm drumming and doing something with his feet like pedaling. I sit next to the guy, and it was really annoying to try to concentrate with such guy.
The absolute worst is when someone in management (who generally arrive after me) interrupt me to ask about something irrelevant to the company, like my weekend, sportsball, or whether I watched a TV show. I was focused, hard at work making you money. What are you trying to achieve?
I've learnt to deal with this by going along with it and getting up for a hot drink every time. If it's going to cost me time getting back into flow I might as well make it a visible 10m.
Turns out I'm happier, they're happier and I since get fewer interruptions.
I work in an open plan office and find potentially relevant discussions to be the most distracting, so I'm glad that most of these now take place asynchronously over instant messaging. If you've even managed to focus in an airport lounge, or a coffee shop then you know your brain can deal with sounds which are completely irrelevant. Similarly, if it just so happens that people are talking about something directly relevant to your problem, you can join in. The potentially relevant discussions are the most insidious though, because the work of deciding whether they are relevant is sufficient to prevent deep focus.
Anecdotal but when I was working at a company where I had a private office I was still getting interrupted by phone calls. Calls that would last 10-20 seconds, that type of conversations in an open space wouldn't be as distracting. The fact that I had to hear the ring pick up the phone to talk made it worse. Oh and the phones had no mute setting you could only set them to a low volume.
So even private offices can be a problem. What I'm trying to say is that the issue is the office culture and communication policy that makes the difference and not the office layout.
>...I was still getting interrupted by phone calls. Calls that would last 10-20 seconds, that type of conversations in an open space wouldn't be as distracting.
Think about the other people around you. When you are getting phone calls in a private office you are not distracting them from your work - every phone call you get in an open floor plan will be distracting to everyone around you.
Personally I think offices of 2-3 people who are working together on the same thing is ideal. You want some level of communication for immediate stuff but a barrier big enough for non-immediate stuff that others need to actually get up and go to you rather just pop their heads up. As well it allows conversations between interested parties while keeping it quiet for the other groups. I've found this to be the best setup for me personally.
"Facebook is paying 40-50 percent more than other places, which is usually a sign developers don’t want to work there." Shots fired! It's an interesting viewpoint. Most say it's because they want and hire the best of the best who command and are worth more but is that true?
I found this statement intriguing as well. I work at a company where compensation is deliberately above market, if slightly, as a matter of business. It's also an incredible place to work. I don't think it is unilaterally factual that places offering higher salaries than market are horrible work environments; however, it's also not clearly unilaterally false. As such, I'm curious if there's some other factor or set of factors that, in addition to higher salaries, suggests the work environment is poor.
I would assume high salaries coupled with high turn over would be a strong indicator of a poor environment. But I suppose high turn over regardless of compensation would indicate that. Perhaps when coupled with high salaries it suggests worse conditions than in lower paying places merely because the added pay isn't enough to offset the BS.
I did very good work. Work people would repeatedly be amazed at.
So, I proved myself, in that regard.
Yet, when I would ask for a quiet, distraction-free workplace, I would receive incredulity. Impossibility. Lack of regard.
The resources were readily available. But the disconnect between what I was doing, and the control of those resources, was apparently too great to bridge.
And sometimes -- not infrequently -- the direct reports I was so helping out, were not willing to go to bat on this.
Rock the boat -- me, or them on behalf of me -- and you're out.
For me, human noise is the worst. I can tune out a storm, or a significant degree of mechanical noise if it is regular, not too extreme, and not indicative of risk. But nature or nurture has left me highly sensitive to the human activity around me.
Headphones don't help; music is as distracting as the rest.
All I asked for, was that my circumstances be acknowledged and respected and that a reasonable amount of readily available resources be devoted to matching them.
You either trust and believe your employees, or you don't. My output was already exceptional; further, my employer could have measured whether that continued or improved after choosing to "believe me".
Unfortunately, my environmental needs were discounted and I was coerced and semi-brainwashed to try to make "open", "collaborative" spaces work, from the time I was a kid. To my great distress.
For a time, youth and cortisol and all that carried me through. But I eventually built into and hit a severe level of burn-out, including physical.
These days, I'm not even that sharp, any more. You can, indeed, really get "used up".
So... I don't care HOW MANY words, slogans, nor how much rhetoric is thrown at this topic.
You either respect the people you work with. Believe them. Give them what they ask for, and see whether it works.
Or you don't.
Most of the people talking, don't.
Look for actions, not words.
P.S. Likewise for people who say they like different environments. If open-space works for you, fine. Or whatever else.
I'll respect that. As long as your performance matches.
Just, respect me. Don't force your noise on me.
You like what I create and contribute? Then give me the tools I ask for, to better do so.
Yeah, Joel isn't wrong. Quiet distraction free environments are hard to come by. I do my best work personally when no one is bothering me for about 6 hours at a time.
I worked the cube farm before, it was ok when it was quiet. Open spaces are horrendous. You may as well try working at a bar with your friends. It just ain't gonna happen. A private office seems like an unheard of thing these days.
Pffft. OK. So, I take it that you think Microsoft doesn't make high quality software then?
I'd love to hear what piece of shit software you think could possibly replace Windows, SQL Server, Exchange and Office in 90% of the world's businesses (small, medium and large).
>> But Spolsky played down those surveys, saying programmers have “a desire to use the latest, cool new thing” and tend to move on from programming quickly, so that their ranks are filled by “new kids showing up with newfangled things they just invented, usually reinventing the wheel.”
Odd and sad, and I think mostly true. As a 55 year-old working engineer I consider software my trade, and it's given me a life most people around the world would envy. I think how strange it would be to say "most carpenters quickly move on from woodworking," or "most architects quickly give up designing structures."
with openoffice barriers between team members are torn down, but it is harder to concentrate, as Joel said.
when you work from home it is easier to concentrate (one condition: you are alone in home), but there are much bigger problems in communication beetween project members.
I have the impression that the approach to this subject comes full circle.
I think you can not find the best solution for all.
We've banned this account for repeatedly violating the guidelines. If you'd like to be unbanned, please email hn@ycombinator.com. We're happy to unban accounts if we believe you'll post only civilly and substantively in the future.
F# was based on OCaml. OCaml was attempted to be promoted several years ago and failed miserably. Yes, there are people interested in it, but not in a really serious way and only in small numbers.
I just searched through every article I could find and see that through sites and you would not believe the amount of "how can we evangelize it" sort of things I found- a site dedicated to evangelization, two GitHub PRs for part 1 and part 2 of evangelization. A post about why evangelization isn't working and how to fix that. An article in Code magazine which is controlled by MS.
From what I can see in HN comments, there is a minority of people that want to try it but don't use it. Quora has a recent answer about those using F# and mostly it's a short list of companies almost no one's heard of.
After all of that, a recent post on HN about F# got ~170 points for front page.
It might be a fine language for some, but it's not in the top three. If you don't believe me, just spend some time researching the amount of desperation in the evangelization.
I'm not sure how it got all of those points, but it seems like it wasn't purely on merit.
F# is Microsoft's rendition of OCaml. It's super nice if you're trapped in the .Net world, where the alternatives are C# and Visual Basic. Otherwise it suffers from the same lack of open source infrastructure and good non-Windows support as the rest of the .Net languages.
The user base may not be growing quickly, if at all. But it was probably worth the investment for Microsoft, just to have a better language for their employees to use.
Programming is the same as working on an assembly line floor. You are not some fancy white collar worker. Not much difference in type of work(and pay) than an automobile plant. They don't get private offices either.
Because that's essentially what we do. Assembly and ultimately build products based off a list of specifications. You could say it's more difficult but beyond the fact that more people have degrees I'm not sure how different it really is. An open floor plan doesn't seem all that different than a room full of sewing machines etc. Certainly this doesn't apply to all software development. But for the majority portion the analogy isn't too far off.
Spefications LOL yes I recall when I was a developer on the management system for SMDS (ake the countrys internet back bone) for the UK the tech was so new we had to keep going back the guys that developed the underlying tech and ITU standards - and this was after 9 months of planning before staring development (which we did in 12 weeks using RAD Agaile paradime)
Interesting that he cited Microsoft as the canonical example 16 years ago. That example hasn't aged well. In the ensuing years, Microsoft has lost its edge in software innovation. It's not exactly proof positive that everyone working alone in their office or at home is the best way to run a company.
I think in those 16 years we have learned that there is personal productivity and there is team productivity. The former is critical for shipping, but the latter is also critical for developing ideas and collaboration. You can't just talk about maximizing one without thinking about the impact on the other.
I think the work done in VS Code, .Net Core, F#, TypeScript, azure tooling, container support, sql server enhancements etc would counter your assumptions on a lack of innovation... Windows may have stagnated, but ms is still pretty relevant.
While I don't do much these days in the MS sphere (other than using VS Code), I think they're far more in touch than most large software companies.
I think I did some of my best work when assigned a desk essentially in a corridor. A constant stream of people behind me, no privacy, noise etc. There was no half-concentration which privacy can encourage e.g. flicking to email/web every 5 mins. It was either get 100% wired in or don't bother trying. Concentration is partly a learned skill and being an environment of disruption is a training ground. Concentration begets concentration - if you have deep focus on a piece of work and made great progress, its much easier to get back to that state than if you have been farting around at the surface. If you have allowed yourself to indulge in "semi-work" then you are not like a rested athlete but an unfit one - you will have to train yourself back up to high-productivity.
The really tough environments have been temperature extremes (your mind/body just stops functioning), noise at the truly headache inducing level (sitting 10m away from a drive-train rig the size of an Olympic swimming pool) but the worst of all for me is emotional noise e.g. people bickering. Trapped in a small office with unpleasant people is where I say "never again".