Hacker News new | past | comments | ask | show | jobs | submit login
Programmers are most likely to work from home (qz.com)
427 points by staringmonkey on April 12, 2017 | hide | past | favorite | 363 comments

The article does not discuss the impact of the open office movement. I've worked from home, in actual offices, in cubicles both cramped and spacious, and open offices. It can be quite difficult to focus at home due to various distractions, especially if you do not have a separate room or area for work. It is difficult to separate work and non-work with a home office. There are a variety of communications issues with colleagues when working from home. However, programming requires high levels of concentration and focus; I work on complex algorithms and mathematical software which requires extremely high levels of concentration and focus. Open offices are simply too noisy and full of interruptions. Thus, given a choice between an open office and home, home wins.

But in general I would rather work in a quiet office near my colleagues. There is a clear separation between work and non-work. Communication is faster and easier, less prone to misunderstandings. This however means something like an actual office or a quiet spacious cubicle with high sound absorbent walls.

In his book Deep Work, Cal Newport argues in favor of a "hub and spoke" office layout where knowledge workers can work in quiet in offices on the spokes, but meet and collaborate at hubs, such as common areas with food, coffee machines, printers etc. This seems like a much better way to balance the need for deep concentration on the one hand with "collaboration," annoying MBA buzz-word at present.

I think working from home is superior (for tech/programming work). In terms of work, it's the best way to not only avoid distractions, but also lay out your time in a way that is conducive to completing a project in the way you intended, and to let your ideas be fully implemented. This means projects finish sooner, much sooner than in a 9-5 environment. I believe that, when you know that you cannot escape the office until 5, that introduces some intellectual laziness and willingness to just kill or dilate time. The office does offer some perks, but they are not related to work itself, they are all about socializing / banter / feeling of being part of a team. Working from home does mean that home becomes workplace , and vice versa, but that is not necessarily a bad thing, as long as work gets done faster. People used to work mostly from home until the industrial era.

Personally, I have gotten a second job in an office for the 'office experience', yet i often do even this work at home, because i work faster there.

I think some "work from home" problems are problems of perception. It's not very well accepted to say that you work from home yet[1], making you feel like the job is somehow inferior. Also, the location of your home matters, if you live in a mixed commercial/residential place, it doesn't feel wrong to be at home and work all morning.

Discipline can be an issue until you establish a work routine. Much like driving to the office primes you to get into work mode, a morning walk to the local bakery can prime you to begin working at home.

1. https://www.youtube.com/watch?v=IW3lhfVpLL4

> I think working from home is superior (for tech/programming work).

I disagree with you, specifically one point.

>The office does offer some perks, but they are not related to work itself, they are all about socializing / banter / feeling of being part of a team.

That "banter" or "socializing" is work related. I've found that working from home (been doing it 2 years now) has one very big disadvantage - unless the whole team is remote.

You will be excluded from meetings, decisions and conversations. You will always have a feeling that you're missing something. You will miss important hallway conversations that can impact the work you do.

I'm the only one at our small company that works remotely. I miss so much of what is going on decision wise.

Any talk of new clients, potential new business, larger future projects are all communicated to me once they are mostly already hashed out. This keeps me from playing a bigger part in the company and thus the work they throw my way is more on the grunt/boring side.

I love working remotely though and I'm not working in the tiny open office they have. I would be interested in seeing what the dynamic is like with a full remote team.

I've mostly worked at home since my son was born (he's 26 now). I used to go in one day a week, I worked for startups for years and would start full time, drop off to 4->3->2 days a week. These days I never go in (I live 10,000km away at the moment, it's no longer a 1 hour drive in the Valley).

I think there's a few things you have to realise about working at home: - you get to avoid almost all office politics - you will eventually lose at office politics

Essentially you need to have a manager who will step up and root for you, and you guys need to talk so he/she knows where your head is at

> you will eventually lose at office politics

Yup. We are small enough that we all report directly to the CEO. Though anywhere I've worked remotely or not it is always me looking out for me. Never had a manager help with that.

I've found that having that explicit discussion with every new manager helps a lot, eventually you get a crap one and lose, but then that's probably time to move on

That's a very real pain when only one or two people are remote. I spent the last five years in that environment and definitely missed out on a lot of relevant discussions.

I'm now leading a team which is about 50% remote, with the remaining people working from home a few days a week, and it makes a huge difference. Discussions naturally occur on Slack, often spinning out into a few people jumping into a Hangouts call. For people in the office we've got the meeting room set up for video conferencing which makes it practical to have mixed local/remote meetings without the half hour of trying to get things set up.

Overall I'm a big fan, and hopeful that we can make people working remote even smoother as time goes on.

Would V8 have been written in an open office environment?


Paywall link. What's the summary?

>You will be excluded from meetings

Oh, the bliss.

I understand that, but I believe if more than a few work remotely, the culture of the company would shift to moving important stuff and meetings online.

I prefer to work in my cubicle at the office instead of at home even though I am alone in the office for most of the time and all of my development team colleagues are in another country. The reason is that it is simply easier for me to concentrate there, fewer distractions, fewer excuses to take a break. But I'm glad I'm not in the same location as most of my colleagues in the team because they are in an open plan office so crowded that they have to leave the room to make a telephone call and need to wear closed headphones to cut out the distractions.

The key here is that no one around and you can concentrate alone.


So the home versus office axis is the wrong one to think about. The deciding factor is how well one can work in which place and that depends on a lot more than home versus office.

Not everyone is good at having the discipline to get work done at home and to separate home and work while they're at home. Also, people with young children are naturally going to have a big problem. Lots of people who try it complain that their spouses and kids won't leave them alone at home, thinking that popping in isn't a big deal even though it interrupts their focus. And not everyone can afford a home that gives them extra space for a home office. Most people in Silicon Valley can't seem to afford anything bigger than a telephone booth. Don't forget that many people have roommates too.

There's a reason that coworking or small office spaces are so popular these days: for $500/month in many places, you get your own little office with a door that shuts where you can concentrate on your work, or a quiet cubicle among other people with similar situations. If everyone was able to make working at home work for them, these places would not exist.

Having kids doesn't have to be a big problem. The important thing is to have a space which is work, and make sure everyone knows that when you're in that space its like you're at the office.

I've got a three year old who is used to me working from home and doesn't cause any problems at all.

That might work for you, but every time this discussion comes up around here, there's a whole bunch of parents complaining how their spouse and kids simply will not stop disturbing them, no matter how much they try to explain that they can't do this.

I'm aware its a problem for some people, I just feel it gets overblown. Maybe those of us who find it OK are the silent majority, or maybe I'm an outlier, but I know quite a few parents who work remote and don't have any complaints about being interrupted constantly by family.

I also know of far more people who complain of being constantly interrupted by managers and noise in an open plan office. Its not like modern offices are an oasis of calm.

Or maybe your kids/family are different from other peoples'. I've seen some peoples' kids who were a complete terror and nothing could make them stay calm and quiet. Some kids are just better than others that way. You got lucky. This is a big reason I never really wanted kids; I just can't handle constant noise and commotion. I have a friend with a 7yo kid who's bouncing off the walls every time I visit; there's just no way I could live with someone like that every day. I have enough noise and commotion at work; I don't need it at home too.

And yes, open offices are horrible this way too. That's why we're having this discussion about people wanting to work from home: for many, it's a lot better than the chaos at the open-plan office at work, even if it isn't ideal. For others, it's at least as bad (kids/wife), so they either deal with the office, or they go to a coffee shop or rent a coworking space or similar.

Yeah, it's not an issue for me either. I've set clear boundaries with my family (wife and three kids five and under), and they leave me alone in my workspace. I shut and lock the door and that's it until I come out. Works really well. I wonder if those who've had problems have also had difficulty setting and credibly committing to boundaries. It may not seem like much, but if one of them tries and succeeds in getting your attention (pounding on the door, etc.) then they'll do it again. It's incredibly important that they believe that once the door is closed and locked that you're essentially not there.

My daughters love it when I work from home, so they're very supportive of my boundaries.

The thing is, that takes family members who actually respect your boundaries. I've read numerous anecdotes on discussions like this from other people who just don't have that luxury; their spouse and/or kids simply do not get it. One guy said he finally rented a little office for $500/month (or whatever), and showed his wife the bill. Then she freaked out and committed to not bother him at home, and got him to cancel his rental (though he still lost out on that 1 month's rent). And how you get some kids to respect your boundaries, I have no idea. Your kids sound great, but I've seen other kids who simply would not do this, no matter what.

$500/month for a coworking cubicle? Wow. The going rate around here (Chicagoland) seems to be less than $200 a month. In some of the smaller cities I don't think it even costs more than $400/month to give yourself a (small) dedicated suite for an office around here.

I checked a few months back in Brooklyn and it cost $550/mo for a desk with a door. No windows, and not enough room for two people to stand in...at least it made me appreciate my home office more.

It's just a number I pulled out of my ass for an example; I haven't shopped around so I really don't know what they cost, and of course it'll vary a lot from place to place. Also depends on if it's a coworking space (cubicles, other people around) or a closed office with a door.

> most people in Silicon Valley can't seem to afford anything bigger

What's the point of living in an ultra-expensive region if you work from home?

1. you get paid well.

2. silicon valley is a nice place to live in.

If you work from home there is no reason your geographic location should impact pay.

Nice place to live if you like suburban sprawl, maybe. I doubt any company would be willing to offer me a high enough salary to make the sacrifice of living in SV seem appealing.

I completely agree. I'm actually very much an extrovert, but I also do deep focused work (data science stuff) and really like being at home, in my locked "office" (walk-in closet with an attached bathroom) working on stuff. I get so much more done, and I love the efficiency of not having to get in my car and commute somewhere. Any kind of office environment will come with a commute, car maintenance, and a rigid workday. Wanna do a few hours, take a nap, and then do a couple more, have dinner with the family then do some more? Yeah, not happening in any kind of office I've ever worked in.

I WFH a couple days a week just so I can make up for the lack of productivity from the three days at the office.

There was recently some evidence that open offices led to reduced collaboration because a real office means asking someone a question disturbs one instead of 20 people. So people end up asking less questions, and interacting with there co-workers less.

I read about that as well.

I also think that there are different work cultures based on what you have to do. Someone who works in sales may be on the phone quite often. Same for a lot of managers, tech support, people who do demos and presentations.

The problem certainly isn't that they make noise, they need to! And because of the nature of their jobs, they tend to see hallway conversations and joking around to be beneficial, a way that information is shared around the office.

The problem is when they are located with people who are trying to do focused work.

It's frustrating. If my kid is having trouble focusing on his math homework, my first thought is to make sure he is free of distractions and can work in a quiet place. I don't tell him that he should wear headphones and listen to music while he struggles with learning algebra.

At the same time, I don't think that math classrooms or discussion groups need to be quiet places, and I don't understand why some people think this is somehow a counter point to what I described above. Yet within the office context, it often is interpreted that way.

And, broken record that I am, I'll skip back to the same old point: Tech companies have shouted themselves hoarse about the shortage of software developers. Yet they won't provide them with a quiet place to work or allow the working conditions that a majority of programmers say they would like. Why does governmen keep giving these employers a crutch? Sounds to me like a market solution would emerge, if we'd only allow it to.

>It's frustrating. If my kid is having trouble focusing on his math homework, my first thought is to make sure he is free of distractions and can work in a quiet place. I don't tell him that he should wear headphones and listen to music while he struggles with learning algebra.

Maybe we're doing it wrong: maybe we should be forcing kids to try to learn hard subjects in noisy environments full of distractions, and if they can't hack it, they fail. After all, if this is how the workplaces will be for them, so might as well prepare them for it now, right?

Similarly, I really think we need to change the way STEM is taught in colleges. Instead of allowing students to take their exams in quiet classrooms, they need to make they're crammed close together during exams, and that a local fraternity is required to hold a loud party in the room at the same time. All assignments should be done this way too, instead of allowing them to take them at home or in the library. If students can't handle doing hard subjects like differential equations in environments like this, then they're going to fail in the workplaces of the future, so we need to make sure to weed them out early.

how about access to a whiteboard and a place to talk

I can't understand why thats so hard

I'll just add a comment noting the importance of the quality of the collaboration, not just the quantity of it.

Companies don't want to hear it. I've been quite lauded for my work. After which, I communicate what I need: I'm not asking for more money yadayadayada, just a quiet workplace.

At which point, I am reminded, in one way or another, that I am, however tasty, just veal.

P.S. Pick your home carefully. I ended up with a series of extremely noisy neighbors that left me really between a rock and a hard place.

Friends and family simply saying, 'You'll get used to it.' Until they finally really heard for themselves.

Noise has become an omni-present pollution in U.S. society. I suspect its contribution to overall stress is vastly under-estimated and under-appreciated.

If you want a quit home look into airtight construction with HRV.

That's not surprising. The dogma of open offices assumes that most disruptions are informative, when in fact they're just disruptive.

>...The dogma of open offices assumes that most disruptions are informative

I wonder - does anyone actually believe that anymore? I've always found that to be more the rationalization people use since it sounds good. I've generally found the actual reasons to be more of an attempt to remind employees of hierarchy (make sure the individual contributors know their place), control (much easier to monitor people than if there were actual offices) and cost (giving workers a little table space allows you to pack in 2 or 3 times as many).

Where I am, while the workers dislike the open space for obvious reasons, the managers who have actual offices now seem happier, so I guess that is something.

But disrupting is a good thing now?

We'll disrupt the market by disrupting our workers!

This is what I've observed in my open office workspace. It's really counterproductive, and a big reason (I believe), why so many employees work from home much of the time. Then again, for most places the alternative is a cubicle farm which isn't any better in my book. Man, nothing makes you feel like a drone like working in a cubicle.

My problem with an office or open office is not the noise, I can put on headphones and be fine, but is the actual interruptions.

In an open office it is obviously much easier for someone to just lean over or look around their monitor and grab your attention, but having a private office with a door is still prone to someone knocking (or walking in if not closed)

Working from home, people can email, chat, or leave a phone message and in any case when I am focusing none of those will bother me until I make an effort to check for messages. Emergency calls can get through by calling me twice.

The only reason I'd like to be in an office is often my workmates become friends, and I want to "hang out" with my friends

Let me tell you from my experience as somebody that didn't see the inside of an office for so long I forgot what bad coffee tastes like that the "headphones means go away" rule is not respected by significant others at home.

Actually just playing the music loud over speakers works much better. But YMMV depending on your music taste, mine is perceived as too intrusive by most.

I don't like wearing headphones for too long. But a nice hi-fi setup with vinyl while I'm working... that I love. And can't do it in the office.

Yeah that's absolutely the best. Some nice warm sounding big speakers on a low volume. Flipping the album once in a while. But alas, everything is still stuck in a crate in another country.

I wouldn't discount that last reason. There's some research suggesting that friendships between coworkers can greatly increase worker engagement, productivity, and satisfaction.[0][1][2] And a self-report study from LinkedIn suggests that workers perceive workplace friendships as beneficial for both themselves and their work, for what that's worth.[3] Of course, it can also blow up in your face and do the opposite, occasionally slowing down more productive workers as they match their speed to those of their less productive friends when it comes to individual work.[4] That study looked at fruitpickers, but it could be relevant to the tech industry as well.

Paradoxically, at least in the US, we're seeing a trend towards fewer workplace friendships and greater detachment.[5] I/O (industrial and organizational) psychologists have a lot of interesting interpretations for those trends. Almost across the board, employment is far more transitory today than in past decades, so there's less pressure to invest time in meaningful relationships at work. And we're so connected nowadays that it's easier than ever to preserve relationships in some form (regardless of whether they're preserved, or we just believe they are), so we don't feel the need to generate replacements as much.

Having done a lot of freelance work myself for a couple of years, if I'm being entirely honest with myself, this is one of the disadvantages at times. I enjoy getting to work on different projects, but there's something to be said for getting to focus on something with the same team. Even if open offices and talkative coworkers can get in the way at times :).

0. https://hbr.org/2013/07/we-all-need-friends-at-work

1. http://www.gallup.com/services/178514/state-american-workpla... (behind a form)

2. https://www.fastcompany.com/3051290/why-having-friends-at-wo...

3. https://blog.linkedin.com/2014/07/08/work-bffs

4. http://www.lse.ac.uk/website-archive/newsAndMedia/news/archi...

5. https://www.nytimes.com/2015/09/06/opinion/sunday/adam-grant...

Thanks for posting. That was the first thing that jumped into my head as well.

Many of us are choosing between working at home and working in a loud and noisy environment. If programmers generally worked in the environment you described, our answers might be very different.

Unfortunately, having your own office is costly plus it doesn't satisfy the boss's need to see a large group of people actively doing his/her bidding.

perhaps you're working for the wrong boss. Every effective boss I've ever worked for wanted to see two things:

1) revenue 2) results

Those who got distracted by other crap tended not to be as successful by objective metrics. Just my experience though

These kind of bosses are a rare species in any setting.

Most want to build their political cartel, protect it and build it for their own good.

I've even seen bosses who purposefully punish high performers out of fear that they might become a threat to their job.

an office doesn't necessarily have: (2) walls that are made of drywall and are floor to ceiling (1) drywall + door (1) window

I am looking at new office space now and I am thinking about setting up glass cubicles and having an office sound system that will pump out white noise.

I am concerned about aesthetics though.

Interesting perspective, indeed i hear people saying that gathering around snacks makes people talk more. But would they talk about work though? And are people going to think about those snack runs in the same way when the culture would make them "small meetings"?

I think what people miss most often is that this is NOT a "one solution fits all" kind of thing. For some office cultures one is better, and for some people one is better.

I myself am very easily distracted, and I'm far more productive at home, where I have a private office set to my preferences, including sound (this sounds ridiculous, but my ear cartilage is sensitive, so I can't wear earbuds and over-the-ear headphones are only comfortable for an hour or two), light (most offices I've been in have had times of day when the sun causes painful glare), and lack of people moving around distracting me. And that doesn't even cover whether I have to listen to the conversations of dozens of people around me.

I don't like being loud and distracting to other people, so WHEN I talk to co-workers in the office, it's either in a meeting room, or in clipped, hushed questions. I have one teammate that has a rather booming voice and no apparent concern for who hears him - I just decide not to ask him questions.

Meanwhile, my current office has people in 3 states (2 neighboring time zones), so we have a culture of lots of business being conducted over slack or google hangouts. One of my coworkers and I have conducted a lot of business over slack...while sitting next to each other.

In talking with others, I've discovered that some of us (including me) PREFER to conduct business over written media -it gives us something to consult later, and requires that people learn to not play the pronoun game. Others, perhaps because they either haven't figured out the pronoun game, or they really hate it, prefer face-to-face, which I've always found to have a poor signal-to-noise ratio. (They'd almost certainly disagree - you yourself said that "communication is faster and easier, less prone to misunderstandings, and I believe that's true for you despite each point being invalid in my experience).

Every time I or others complain about open floor plans, someone (and it's usually just one or two) will talk about how nice it is to have face-to-face collaboration...and frankly, I just don't see that happening! In my last office, which was open floor plan but had no culture of resolving things online and our other locations were 12 hours offset, there was definitely more face-to-face collaboration - but we also had a lot more meetings (ugh), and IMNSHO very little got done, so I remain unconvinced that it actually is more efficient, I think it may just be more comfortable.

From all of these anecdotes I have assembled my vision that for some office cultures, meetings are better, and for some people, meetings are better, but theses are hardly absolutes, and my personal bias is that it's a war between comfort level and actual efficiency.

I genuinely cannot figure out what "playing the pronoun game" means in this context.

Sorry - my bad for assuming the expression was commonly known.

TL;DR: pronouns in a text exchange are easily confusing.

In conversation, most people aren't actually understanding each sentence. Instead, we're mentally and subconsciously keeping a list of terms that we don't understand - usually pronouns - retroactively applying them as more clues come up to what they are. If you watch as an outsider to a short discussion between two people, you can usually see this in action.

In text, with greater pauses between parts of the exchange (email) and/or out-of-sync replies (IRC/Slack/Hipchat/Discord), it becomes easier for a pronoun to remain unclear. Oddly, instead of saying "I don't know what 'it' is in that sentence" (because we're tracking subconsciously) we tend to just consider what they are saying as unclear in general and mentally skip over it.

If you're communicating via text often, it pays to avoid most pronouns and bypass this sort of problem. Consider the first sentence of this post - had I said "my bad for assuming it was commonly known", you PROBABLY would have followed, because you had sent only one sentence. Had you sent three sentences, "it" would be less clear. Had you written at annoying length as I am, the word "it" would have been quite likely to be unclear.

I'm sure you've had the experience where you send something like "Would it be better to do A? Or does it make more sense to do B?" and the person replies "Yes". Similar cause, though no actual pronoun, just an implied one. Take any email thread with management involved (because everyone top posts and doesn't trim) and you can usually find where people are talking past each other or repeating themselves because pronouns/subjects of sentences weren't clear to the other party.

This post to the contrary, I've found that having SHORT posts but being explicit about subjects and direct objects greatly increases comprehension. I also tend to try and lead with what I need the person to do, or end with a single clear question or statement.

Because communicating by text is a skill, not an automatic perfect ability.

You are using it incorrectly. From wikipedia:

"Playing the pronoun game" is the act of concealing sexual orientation in conversation by not using a gender-specific pronoun for a partner or a lover, which would reveal the sexual orientation of the person speaking. Lesbian, gay and bisexual people (LGB) may employ the pronoun game when conversing with people to whom they have not "come out". In a situation in which revealing one's sexual orientation would have adverse consequences (such as the loss of a job), playing the pronoun game is seen to be a necessary act of concealment.

I was using this definition: http://tvtropes.org/pmwiki/discussion.php?id=b4pcb4ytjt235ec...

Like many words and phrases, I suspect there are multiple uses (I've found three definitions for "Broken Windows" so far - economics, law enforcement, and coding. While the last two are connected, the first one is not)

> I think what people miss most often is that this is NOT a "one solution fits all" kind of thing.

Yes. There's a lot of hate for open offices, and I'm among the haters. But someone I have great respect for technically recently asked why, since they loved open office plans and that's what they currently used and it seemed perfect. Who's right? Both.

Also, there's a wide range within any given solution. My current job has an open plan, but my teammates and I moved to the other side of the floor and the difference is like night and day. Everyone around us are heads down techies, and it's more than quiet enough. Before we moved we were near people who spent significant time on phones or in video conferences. And they were event driven, resulting in them having not very busy times where they'd all just sit and chat. So same company, same floor, same job, but a very different experience. Luckily we had the option to choose a location and move ourselves with very little hassle. Not everyone has that option.

>this sounds ridiculous, but my ear cartilage is sensitive, so I can't wear earbuds and over-the-ear headphones are only comfortable for an hour or two

Can't you get some full-size headphones which don't even touch your ears? That should eliminate that problem. I don't think it's too unusual to find it uncomfortable to have stuff pressing onto/into your ear cartilage for hours a day.

Those are the over-the-ear ones I was talking about. (I look pretty dorky with my on-the-runway looking headphones) They DO touch the ear, though they don't crush it, which is why I'm usually good for a couple of hours.

> I don't think it's too unusual to find it uncomfortable to have stuff pressing onto/into your ear cartilage for hours a day.

The ubiquity of earbuds says otherwise. I'm genuinely jealous of people - they can listen more places, with less inconvenience, and with less expense. Still though, this is my flaw, not theirs.

>The ubiquity of earbuds says otherwise.

I never said that everyone was like this, but from what I see, it's usually young people wearing earbuds, and not necessarily for that long either. How many people do you see wearing earbuds for 8 hours straight?

I think if you were to take a poll of the general populace, you'd find that a significant fraction (probably even a majority) would be very unenthusiastic with the idea of wearing earbuds for 8 hours.

Any kind of headphone bothers me, even the ones which are large enough to not touch the ear itself. The only thing I can comfortably wear for longer periods of time is earbuds, but even so I don't like listening to music for long stretches of time. I prefer nothing in, or on, my ears and silence for getting shit done.

I appreciate your well thought out comment.

I have a recommendation on over-ear headphones. I have these Sennheiser HD598s, and I can wear them for 10 hours straight with no discomfort. Highly recommended: https://www.amazon.com/Sennheiser-HD-598-Over-Ear-Headphones...

It is difficult to separate work and non-work with a home office.

That was not my experience at all. When I worked at home, I worked regular hours, and didn't do any non-work stuff during those hours. And after those hours were done, I didn't do any work stuff.

I basically kept to a strict 8:30-5 routine, and never had any issue.

I didn't know about Deep Work! I added you and part of your comment to the list of people who prefer (and who do not prefer) remote-work: https://goo.gl/74E3BS

I like working from my office. I don't understand people that like working from home.

Possible confounding variable: I live exactly two blocks from my office and don't have to commute. Perhaps, in actuality, people don't like to commute?

I will name some the reasons I like to work from home and none involve a commute:

- I'm in an open office situation.

- Standing desk is awkward when everyone else is sitting.

- If I make a loud noise eating or sneezing or something like 5 people stare at me trying to figure out what is going on.

- I can't have twitch or a baseball game on in the background because nosey co-workers will walk by, see my screen, and comment or internalize that I'm a slacker because I like a running commentary instead of music when I work.

- Constantly being pulled aside for conversations that can be answered in a sentence or two via slack or email. (not having me in person forces people to think about and write down exactly what they want to say or ask before they actually say it)

- My home setup is significantly nicer than my office set up.

- Open office means I hear all about everyone's past or upcoming weekends, vacations, etc.

- I enjoy stretching or doing small exercises throughout the day, which is super weird to do while in the office (plus no yoga mat).

- People low key hate me because I am the only person with a mechanical keyboard and make lots of noise when I start typing a lot. (I've learned to ignore the not so subtle stare downs)

So probably my biggest thing is the open office problem. As a programmer, being in the middle of a group of chatty 20-30 somethings all day is not great for productivity.

Yeah, all but one of your complaints would be solved by a door[1]. Are there actually programmers who prefer the open-office setting? It's not like I magically stop socializing if you put me in an office.

The only thing worse than open-office for me is a setting where my back is to a space that people are walking through. I can't even have my back to an open doorway in an office (assuming the hallway outside is somewhat busy), or I spend much of my time in a low-grade fight-or-flight situation.

If you put me in an open office where people are regularly walking by behind me, you are probably getting (at best) 60% of my productivity in an office with a door. Actually, in this job market, you are getting 0% of my productivity because I will work elsewhere.

1 https://en.wikipedia.org/wiki/Door

> Yeah, all but one of your complaints would be solved by a door

most places if you close the door your office is cut off from the nearest thermostat, so you get too hot or too cold.

...assuming your office was even a reasonable temperature to start with. and that the HVAC is working that day. and that your office mate isn't some 70 year old who is cold all the time but can't just put on a sweater.

Well also, my preferred attire (work or otherwise) is barefoot+gym shorts+shirtless, I would enjoy nothing more than consecutive full days without human contact during the week, the ability to fart and pick my nose without hesitation, and not having to worry the bathroom stalls are full when I need to take a shit, but I realize most of those are unreasonable to ask of an office so I left them off the list. However, those are more reasons unrelated to an open office I would prefer to work from home on the regular.

You forgot climate control too. Office buildings always seem to have their HVAC poorly calibrated and controlled by some mysterious ghost.

There are so many reasons... I think you either get it, or you don't.

>Are there actually programmers who prefer the open-office setting?

Yes, I prefer it. I can very easily drown out everyone and everything in the room by simply listening to music when I need to, and I like the proximity to everyone else that the open office provides.

> Are there actually programmers who prefer the open-office setting? It's not like I magically stop socializing if you put me in an office.

Me. I like having the background activity and don't find it distracting. I've only done it in small group / company settings though.

Good luck finding a decent employer that'll give you an office with a door these days.

Open office plans are awful, just as bad as cube farms where they mix their yacking sales people in with engineers. I've spent brief time working in many different office layouts and none of them were places I'd like to work. One startup had this guy with the loudest mechanical keyboard I've ever heard. I was in the complete diagonal opposite side of the office and it sounded like brief bursts of ping pong. It was the most distracting thing of any of the offices I've been in. Not one single office I ever went to did the right thing and gave engineers their own office with a door.

The last line stands out. I have office friends that I love but sometimes if I get to work and see a certain person hanging around I know my productivity is going to drop due to chatter. I enjoy the chats! It's just that I need to get stuff done.

>Constantly being pulled aside for conversations that can be answered in a sentence or two via slack or email.

Personal pet peeve: questions that I answer by literally pulling up the commit message for the last commit that changed the line in question.

I work from home because I work better on a quiet environment like you and I agree with every other of your points.

I guess there are different kind of personalities, some people prefer working from an office others prefer working from an Starbucks. I have a coworker who prefers the library.

My ultimate "office perk" is no meetings over skype/hangout/zoom/gotomeeting.


> not having me in person forces people to think about and write down exactly what they want to say or ask

This alone is a major productivity booster

It basically forces the person to do a small amount of rubber duck debugging before they ask a question or comment on something. Catches a lot of issues before the person actually hits enter on their slack message or email.

What can you really concentrate on when there is commentary somewhere oO?!

There is a fucking difference between commentary and music and radio btw.

I am a high performer (because my boss is a dick...I'm my boss) and I work everyday with a twitch stream of Hearthstone running on my laptop. It's background noise that helps me focus. When I need a little break, I tune in and pay attention.

Try not to project your own limitations on to other people!

There are enough studies which tells you that we are not good in multitasking. It costs you more resources.

Depends on what I'm doing. If I'm grinding through stuff I know exactly how to do, but can't automate away, I find having something like people talking or an audiobook I know well running in the background actually helps me focus. It occupies just enough of my mind that I don't feel tempted to get distracted by the internet.

I have a whole range of preferred noise depending on the task, from dead silence for hard, tricky problems up to what I just described for easy but important detail work. I even know exactly what kind of music I want to listen to for different tasks, and whether or not I want vocals in it.

There is no one-size-fits-all solution to what works for people.

I do the same thing. I can listen to talk radio and read a book at the same time. I get similar responses to what you have said here.

There's probably some relation between this and growing up with the TV on 100% of waking hours, even when no-one's watching (which is really common).

I can set my own hours. I don't have to commute. I can setup my home office exactly how I'd like it. I don't get distracted by non-work things at the office, such as loud noises or conversations not related to what I'm doing. I can also quickly prepare my own meals then and there, and play music or podcasts from my computer instead of using headphones. Honestly, it's a pretty amazing experience if you have people who knows how to work with a distributed team, namely being consistent about communication windows.

And for others, it gives them a chance to spend more time with their kids. Or live in a place that is far more relaxing and calm than wherever the office might be located.

I understand preferring to separate work from home, or being more productive at the office, but I don't understand people who don't understand why people like working from home. I don't mean to be offensive but it just doesn't seem that complicated to imagine some of the benefits people prefer.

The lack of commute is a huge part of the appeal. If the office is half an hour away (which really isn't that bad if you live or work outside of a city), and you work from home, you get a whole hour back every day. I don't think I would ever make it to the gym if I had a long commute.

At a previous job I worked from home 2-3 days per week. My commute was 45-60 minutes depending on traffic. When I worked from home, I'd actually start working when I'd typically head out the door and work until the time I'd typically get home. The company got more from me and I didn't have to endure the commute (or the wear-and-tear on my car with stop-go traffic).

Getting that time back in the evening, when needed, allowed me to schedule local appointments or meet a friend at a more reasonable time.

You may even save more than the hour commute. When I work from home I also eat lunch at home. Since I normally go out to eat just to get away from the office for a little while that's even more time before I get home vs. being done for the day when working from home. So the 10 hours out of my day when going to the office with a 1/2 hour commute becomes 8 1/2 hours.

i have a 25 minute bike commute and a gym at the office, so i am actually get at least a good hour of workout for free everyday which i really enjoy as its quality thinking time too.

What I want is flexibility.

I've worked in an office before, I work from home now. Really what I want is to work from home some days, in an office some days, all depending on my mood or schedule.

I recently watched the Ali Wong comedy special on Netflix and she really crystallized the major benefit of working from home that I could never put my finger on. Pooping in your own bathroom. I am 100% serious and not being glib at all. I want to poop at home and not in a bathroom I share with 100 people that can watch me coming and going and might try to chat with me while I wash my hands.

There's more to it than this. Your own bathroom is private, so you don't have to worry about going in there and there not being any stalls. You don't have to sit on the pot while someone else is right next to you, separated only by a flimsy partition where you can see their feet. You don't have to smell other peoples' crap odors. You don't have to use shitty one-ply sandpaper-ish toilet paper. You can install whatever toilet you like, instead of having to use whatever is there; you can even install a bidet if you want. You can keep it as clean as you like. You don't have to worry about someone else peeing on the toilet lid or smearing their crap on it. You can dry your hands with a real towel, instead of shitty sandpaper-ish brown paper. Your house might have a bathroom fan installed. You can set the temperature however you like.

I really, really, really hate the bathroom at my current workplace.

That, and the snacks I buy and put in my fridge are better than the free snacks at work.

Also I can take a shower in the middle of the day. Which is the best time.

> Also I can take a shower in the middle of the day. Which is the best time.

I'm intrigued. Why is that the best time?

I work from home and a shower can be an incredibly helpful way to take a break from the computer and think about technical problems. I imagine it's a bit like meditation.. Being able to do this at the right time is key.

Showers can be a great "ideas that magically solve your problem" catalyst.

That was really mostly the case in the cold of winter.

And I can take my ~4pm quick nap to recharge and reset.

We have showers at the office, but I can just as easily walk home and take a shower and then head back to work.

I've recently swapped a short commute (15 min walk) 5 days a week for working from home 2 or 3 days a week with a 1 hour commute (5 min drive, 10 mins at station, 30 mins on train, 15 min walk).

At the moment after a couple of months I still rather enjoy the commute - helps that it is scenic (along coast and then across Forth Bridge into Edinburgh) and I can always get a seat.

Edit: Getting a house in the country, even relatively close to Edinburgh, that has decent Internet access speed was very difficult and quite stressful as you can't really know what speed you are going to get until after you move in.

Perhaps is it because you actually have an office, with a door? I hate driving in sometimes because I know I am being forced to waste an hour of my life in traffic to sit in an open floor plan to be distracted for 8 hours and produce minimally quality work, only for me to have to go home and work some more to actually get the job done.

"Well sounds like you should get a new job" people always retort -- nope sorry, this open floor plan bullshit has permeated everywhere, and I have no desire to move to the west coast.

Nope semi-open floor plan office. A totally open floor plan would be annoying, but even when I worked in that kind of office, I still preferred to be at the office for work.

>this open floor plan bullshit has permeated everywhere, and I have no desire to move to the west coast.

Um, what does the west coast have to do with it? In fact, isn't it even worse over there? It seems like that's where this stupid open-office fad started.

If there's some region where open offices are not the norm, someone please tell me so I can start making plans to move there.

Sure, the commute plays a role. You know what plays a bigger role? The peace and quiet to actually focus instead of the stress-inducing noise, motion, and interruptions of an open office. Remote days are my most productive and least stressful days.

I like working in the office too, working from home is boring as hell and I did it for years. But it s the commute, it kills the little free time you have in the evenings. You get back home later and much more tired.

I still choose to work from home one day every week or two in order to take care of various other stuff like going to the dentist or checking up the car.

We have a flexible WFH system, in that we can work one or two days from home a week as desired/required.

It's a 20-25 minute commute to work, and I really notice the difference in the quality of my day when I work from home. I can work, go to the gym, make food, do chores, and still have time to do something worthwhile after work hours.

When I commute, all of the little things end up and my day feels so much shorter.

That said, I like going into the office, even if it is cubicle land. Spontaneous design conversations are valuable. If people are having a problem, I can hear it, and jump in if I can contribute. It would be challenging to be 100% remote in my role, which involves communication, mentoring, and team organization in additional to technical work.

If I lived two blocks from the office, I'd have the best of both worlds :)

I like working from my home. I don't understand people that like working from an office.

Possible confounding variable: I hate commuting and being in less privacy and comfort than I am at home. Perhaps, in actuality, people like convenience and comfort?

I too prefer working from the office, for the most part. My commute is easy. My setup at work is far better than at home.

However, if I could not be in the office, that means I could find a mountain cabin in the winter, and go ski after work, or a beach cabin in the summer, or just go travel the world, while still working during the day.

These are the kinds of benefits that are extremely desirable.

I think I could get behind a nice remote mountain cabin for working. Or a sail boat.

IIRC much of tech.coop was developed from a sailboat.

I live less than five minutes from my office.

I make a point of making myself available at the office a couple of hours per day, but I vastly prefer -- and am more productive -- working from my office at home. Fewer distractions, less noise, and I can work when I want. For somebody that's severely ADHD and has always been a night owl, it makes a huge difference.

I still prefer getting some face time to quickly talk through some issues, which is why I do physically go in to the office most days (and I'm about to head there now), but if I had to choose to go strictly one direction or the other, I'd choose remote work without any question.

For me it's 100% the commute. I like my office, and have zero problems with open plans or noise (my office is quiet, but I don't mind noise). What I despise is driving. My commute is not very long (< 30 minutes), but every moment of driving sucks the life out of me. I will never understand people who like cars and/or driving.

My office is in the city, and unfortunately living within walking distance is not really an option. Plus, if I ever change job the odds of being nearby the new job are not that high anyway.

>I will never understand people who like cars and/or driving.

Driving is fun!

Driving in traffic, not so much...

Same, but I also get free food at the office and other nice perks.

Also, I like my coworkers so coming to work seems like playing sometimes.

I like working from my office even though I have a long commute. It's because I have a toddler at home, so it's hard to get work done there. The commute is the most peaceful time of my day and allows me to get a lot of studying or side-project work done.

Ding ding ding. Got it in 1. My commute is actually pleasant (nice days I bike 50 minutes each way, bad days I train 35 minutes each way) but I'll still trade that time for other things a lot of the time.

If I had to drive to work I'd be even more into WFH.

I agree. I like a clear separation of activities. I dislike phone communication and like to discuss ideas in person and/or on a whiteboard if at all possible.

On the other hand my commute is 11 minutes. So that makes it easy.

I work from home and love it, but a large part of that, as you theorize, is the lack of commute.

If I lived within walking distance of a job I'd otherwise enjoy, I'd strongly consider it.

Right, this isn't the only reason but is the biggest reason for me.

Have you tried both?

Yes. I used to write and sell shareware from home. If I ever did something like that again I'd rent a desk in a shared workspace.

I've worked both in offices and remotely. They each have their pros and cons. I prefer remote.

The biggest pros of remote work for me are no commute + not needing to get dressed in business clothes every day. I don't have to fight traffic, I don't have to iron clothes every day, I don't have to find parking and spend 10 minutes walking to and from my car, etc. I don't have to do a whole bunch of little things that going into the office required.

So the biggest advantage for me is saving time. And now I get to use all that extra time for spending more quality time with my wife and dog, side projects, exercise, video games, etc. I get more sleep! That's an important one.

The downsides to working from home is that it is harder to communicate in some situations, especially if you're the only guy working from home. It is easier to be overlooked for promotions since people don't know your face and see it every day. You miss out on the social aspect of work, though this can be mitigated if you're able to drive/fly-in to see your team occasionally. You miss out on the office banter, though some people would consider that a good thing.

Many other points people raise such as having lack of focus, being taken advantage of, and so on apply equally to being remote and working in the office (depending on the office) so I consider those to be moot points. If you can't focus at home, that's a fixable problem with your own mind and your environment.

After 38 years of commercial programming, 15 of them remote, here's the thing that almost no one talks about: working remotely actually benefits the company much more that the programmer. Here's why:

1. Profitability manufacturing something increases dramatically when lowering overhead and driving direct labor. Direct labor in software are the programmers. Time spent programming (usually) produces product. Time spent not programming flushes money down the toilet. I have never found a better way to increase the direct labor / overhead ratio than by working remotely.

2. Proper process building software can give geometric increases in value. Things like business requirements, technical specifications, test plans, UAT, QA, project management, etc. When programmers are in the office, it's just too easy for managers and analysts to "wave their hands" and "call a meeting". Too often, that's their answer to everything. The meetings rarely serve their (ususally undefined) purpose. They give the appearance of progress without the progress. Problem #1: You've just wasted a little bit of your programmers' time. Problem #2: You will waste a whole lot more of their time at the other end when things aren't right.

3. Workingly remotely enforces discipline. Things need to be written down. It's hard to peer review meeting notes or Skype recordings. Specs, reqs, test plans, etc. need to be documented and reviewed BEFORE wasting programmer time. I generally try to turn down any meeting or Skype without something in writing. (Skype / Webex is just another way for managers to waste programming resources that doesn't feel as bad as a physical meeting.)

I have hard data via thousands of tickets over the years to say that working remotely has easily made me at least twice as productive. Mainly by getting others to leave me alone and to drag them kicking and screaming into the 21st century by doing their jobs. The most important job of someone who doesn't program? Enabling those who do.

The main reason I love remote is not because of my home office, or short commute, or good 4-legged company, or working in my underwear, or anything else about me. It's because I have never found a better way to get shit done.

> Workingly remotely enforces discipline.

This is key, and one of the main drivers I used to convince the owners of my company to become remote friendly.

Preach! This resonates so well with me, thank you for taking the time to share. My company has started implying they want to move away from new remote hires and I can't understand it.

Good remote workers, who are disciplined (as you said), are so much more productive.

I've worked remote for about 5 years (and about 18 years total). When I lost my last job, I resolved to only look for remote work. Commuting is a giant waste of time, which is the most precious resource we all have. I could live near Boston and have a tiny house with no yard and mediocre schools, or I could live an hour outside Boston and have a huge yard and amazing schools. The choice is clear. But it means that if I were to work in the tech hub, I'd never see my kids during the week.

When done right, remote is awesome. There's no reason every programming company couldn't be remote-friendly these days.

There are two things that companies often do that screw up remote workers:

1.) Having meetings in meeting rooms. This does not work for remote people. Remote people cannot participate in a conversation from a speakerphone when the majority of people are in the same room. You just can't break into conversations between people in the room.

2.) Having an open office. This prevents the fix to #1 - which is to have meetings via hangouts or other video chat, with everyone (even people in the office) participating via headset & personal video camera. The open office makes cross talk between mics too painful (with judicious muting you can sorta fix it, but it's a hassle).

These are fixable problems, but the company has to be committed to good remote culture to do so.

I've been thinking a lot about this lately and I've decided that working remote IS the most important benefit of my job.

I've been fully remote doing iOS development for nearly four years now, and I am not interested in entertaining any new job offer unless my fully remote status can be retained.

Are there downsides to this mentality? Yes. Am I missing out on networking/schmoozing opportunities by being remote? Almost assuredly. But as I've been thinking about it lately, I don't think I want any of that stuff. I can't see myself enjoying the job of management or being a director, etc. I would probably enjoy the pay, but not the work.

So for me the most important thing is that I love my job, I get paid very well, and I'm home to watch my five kids grow up.

I don't think I'm interested in trading in that setup, not for any job title.

>> I'm home to watch my five kids grow up. <<

And when you're old and looking back on your life, this is what you're likely going to appreciate much more than being a director inside of an office's four walls. Good stuff.

If I actually had an office and not some little box with neighbors talking the whole day I may be ok with going to an office. Working from home is my only chance to actually think without distractions.

I work in a big company.

It's easy to see all the useful things I would have missed out on if I worked remotely. Examples:

- Networking: Serendipity plays a bigger role than anything else. And you get a lot less of it the fewer people you interact with. Simply bumping into people at the cafe is quite valuable.

- Career coaching: Lots of classes, talks, invited speakers, etc. Some can be done remotely, but roughly half require you to be live.

Also: Going to work makes it easier to leave work there when you come home.

To your first point, Richard Hamming's essay You and Your Research hits on this topic by distinguishing between people who work with their door open and people who work with their door closed.

As he put it, the people who worked with the door closed got more work done in the short term, but in the long run had fewer serendipitous strokes of brilliance.

When comparing this to today's workplaces, the most striking point is that they all had doors.

To be fair, we're comparing Bell Labs, where almost all researchers are the best in the world, to an average tech company.

Agree with that. It's more about the flexibility than anything else. Sometimes, I really need to work out of the house. Other times, I'd prefer to be in the office.

A lot of it depends on what type of work you're doing. If there's a lot of cross communication...office is WAY better. If it's "slap on the headphones and go full code monkey" it doesn't really make a difference where you are.

Imagine our cities if everyone had the flexibility to work from home as needed/wanted.The time when you did need to commute into the office would be much quicker due to the reduced traffic. It would be a huge win as long as everyone at every company doesn't decided to commute on the same day.

True, but there are also a lot of benefits to working remote.

I work full-time remote. Previously I worked full-time onsite.

The onsite:remote benefits directly matches up to the work:life ratio. I get benefits to my life that onsiters don't get, and vice versa. It's a personal choice.

> I work in a big company.

How big? Back when I worked in a big company, most of the people I dealt with were not in my office. Heck, many were not even in the same country. This was also before good, ubiquitous video chat, so most communication was over email or phone.

>How big? Back when I worked in a big company, most of the people I dealt with were not in my office. Heck, many were not even in the same country.

Fair point. It's about 100K employees across the globe, but I'm in the largest site. And you're right, it makes a difference. Even at this site there are multiple locations in the city, and there are differences even between different locations within the city (e.g. one location had a lot more talks by external speakers).

I've invested thousands of dollars in my home setup (which will never be done), to create an amazing working environment. Why would I want to give that up? Sure, employers may give you a little $ to customize your desk and equipment, but if I'm going to be spending so much of my life at a computer, it'd better be amazing.

My employer's work environment is worth much more to me per year than the entire cost of your home setup thanks to all of the free meals and the gym equipment alone. Just something worth thinking about.

I don't know what bothers me more. People willingly selling their souls to companies or the companies that spend humongous amounts of money to keep their employees away from their homes and lifes...

Why do you think I'm "selling my soul" just because I go into the office and eat the free food they provide? I work normal 40 hour weeks. I'm not being dragged away from my home and my life. You've got an overly cynical take on it. They're just nice perks that the company can provide cheaply at scale, e.g. I'd rather get three free meals per day than the $5,000 it costs my employer to make those meals per employee, because if I were buying those meals out it'd cost more than $5,000 per year.

Usually when offices offer those perks it is to keep people at work and blur the line between work and home. It's not cynical to point that out. By offering really expensive perks they are filtering for people who value those perks over salary (because there really is no free lunch)

I don't think that's true. We don't have any perks that are explicitly targeted at keeping people in the office longer than the normal workday, e.g. we do have beer for various weekly events but it's from 5-6pm only. Again, I think you are being too cynical. The perks exist in order to provide a desirable workplace and be competitive in the hiring market. They help attract and retain talent in a way that simple salary does not. They also take advantage of the company's economy of scale in order to provide greater utility for the same amount of money, e.g. I'd rather my employer spend $5K per year on feeding me three meals a day than get the ~$3K after-tax and have to pay for my meals myself.

I know people have different priorities and that's okay.

I see it like this: I did things to improve my quality of life and people who can't do this are missing out.

I can use a computer system of my choosing, most companies admins aren't too BYOD friendly.

I can bring my girlfriend to work, buy groceries, prepare my own food and eat it. I could not do this if I was at an office somewhere else. Most companies got small kitchens where you can't cook as good as at home and many companies only grant you 30-60min break, which aren't enough for all this.

Also, my girlfriend works shifts, so when I work at her place, we sit together in the living room most of the time. The social interactions I normally would have with some random coworkers I now can have with the person I love. When I stop working, she often starts, so when I would get home from office, I wouldn't meet her there.

I can sleep till 10 and have my first meeting while I'm still in bed.

> I know people have different priorities and that's okay.

That's quite a change of tune from your previous statement:

> I don't know what bothers me more. People willingly selling their souls to companies or the companies that spend humongous amounts of money to keep their employees away from their homes and lifes...

If you'd said originally what you said now then I'd have had no disagreement, but instead you literally accused people like me of "selling our souls" for going into the office to work and taking advantage of the perks there.

Yes, I'm sorry.

Do those free meals meet everyone's requirements? My office gets pizza or tacos for us on a very frequent basis, which while a nice gesture doesn't fit in with my own diet at all (which often means if I'm at the office, I end up eating my carefully prepared meal while being stared at funny while everyone else chows down on junk food).

Consider other dietary options like pork free, gluten free, vegan, IF, etc. Also just the plain factor of some employees just won't like a given kind of food (not everyone likes tacos, etc).

Quite frankly, I can eat super cheaply and healthy at home, on my own weird food schedule. I don't need my office to feed me (though the gesture is a nice one).

I'm at Google, and yes, there are plenty of vegetarian, vegan, gluten-free, kosher, etc., options. It's still impossible to meet everyone's needs, but at least 99% of employee's dietary preferences are taken into account.

Before responding to these sorts of threads it's important to recognize that Google/FB/etc... are so far outside the norm for any company and not just tech. Most people working do not have access to full suite of gourmet food for every meal, a private gym, labs, etc...

A significant proportion of the overall HN readership has access to these perks. It's not unreasonable to discuss them in the context of the pros/cons of working from home.

I'm not aware of a single company in the city where I live that provides such perks. Some companies might offer a few, but not at Google or Facebook's level. This is in a metro area with over a million people.

The linked page / disucssion is not for the small percentage of google/fb workers.

You are still a minority.

Sure, but I'm not commenting in the discussion on the linked article, I'm commenting here, for which the factors I'm mentioning are relevant to lots of people. If you work at a top tier tech company and live reasonably close to work, working from home doesn't have much draw except possibly if your open office work environment is noisy and distracting.

If you're gluten intolerant then you're also in the minority.

How old are you?

Meals at work would have appealed to me when I was in my 20s. Now in my 30s and married I wouldn't make use of such a thing even assuming said meals would meet my special diet. I don't eat much and I want to be hungry when I get home in order to sit down to eat dinner with my family. If I ate a full meal at lunch I wouldn't be very hungry for dinner.

It would annoy me that I couldn't 'trade' in food for cold hard cash.

In my 30s too, but no family, and I eat normal food. I also work out a lot, so there's no problem getting hungry often.

Point taken. If you get amazing benefits and a decent desktop setup, it can make a lot of sense. Where I am, companies definitely don't offer amenities of that caliber.

I'm more of a "cat herder" than programmer these days, and I probably would have great difficulty doing my job from home, or with others working from home. Face-to-face conversations and in-person meetings are tools that have their uses, just as E-mail and asynchronous chat, phone calls and video conferences are tools that have their uses. To me, the cost of tossing out those "in person" tools does not make up for the pleasure of eliminating my [2 hour each way] commute.

Good to know that remote work prevents me from becoming a "cat herder"

This is so obvious, but so few roles allow for that. I am below my market rate but happy and motivated, as I am 100% remote. Imagine if someone offered market rate, they'd still be ahead, without the need to pay for the office space.

I'd be bored sitting at home all day instead of being around people, and then there's the more subtle ways my work is more effective when in-person contact with others happens by default rather than letting the temptation to do solitary work win out.

If I chose a job with a bad commute or bad co-workers or bad working conditions I guess I'd be unhappy about going into the office. But it seems more logical to address the root cause than the symptom. Fundamentally wanting to be separate from other people doesn't seem like the most functional pattern to encourage. But I get it, the uninterrupted coding is the part of the job that's the most fun.

I've been working from home now for a year and a half, and I love it. It's really quiet, and no one interrupts me. The best possible arrangement would be a private office at work, but working at home is miles better than an open-plan office.

I find that when I'm coding, if I get stuck I take a break and go to my baby daughter and start talking to her about the problem (she's 4 months old so her skills are not that great).

3/4 times while talking to her I find workarounds. Her smile is the extra bonus!

Indeed it is the process of describing the problem verbally that helps me think about it in different ways. I would guess my mind takes shortcuts when thinking about it. However when I have to engage the speaking part of my brain, I can't take the shortcuts.

This made me smile. It's like a cuter version of rubber duck debugging (https://en.wikipedia.org/wiki/Rubber_duck_debugging)

At 4 months old, her listening skills are awesome, which is what you need.

I would rather work from home. I lose about two hours commuting to and from. I would save on gas. My home office is confortable. I can cook lunch. I can go to the gym before everyone gets off at 5. I wouldn't have to listen to co-workers who likes to eat lunch with their mouths wide open. I won't have to smell the sack of diapers my co-workers like to microwave for lunch. I wouldn't have smell the daily onion odor from co-workers that enjoy showering bi-monthly. No broken A/C at the start of summer every year. No death/suicide commute dodging idiots that can't drive. I need another job...

I've been working remote almost exclusively for 13 years now. It has its own benefits and problems but I really, really hate hearing it described as a "perk". We've had the technology for many jobs to be 100% remote for a very long time now, and I still see it treated by companies as a benefit like "summer hours" or casual Fridays or whatever.

It's pretty insulting, actually, to frame people like me as entitled slackers.

As someone who's stuck in open office torture chamber and dreaming about working remotely I can't help but notice an obvious trend - developers from poorer countries are "outbidding" those who are not in what seems to be just another race to the bottom. Unless of course you're a highly sought after specialist with experience in some narrow area, or you have good contacts.

I think I'd be utterly depressed if I worked from home. Every day without any human interaction. Plus I really love the clear boundary between work and home. Wouldn't want to pollute my home with work.

Yea, this is the part that would kill me about work-from-home. I once had a job with a personal office and a close-able door. Staying in there was horrible--I felt like I was in solitary confinement. Ended up taking my laptop and working from the break room all day so I could at least see some people.

> Every day without any human interaction

It's the best, I love it. Any human interaction you get is chosen, rather than imposed.

Yeah, well my current situation is that since I live alone in a new country with 0 friends the only interaction I have during the day (excluding shopping for food) is at the office. So I have to take both the bad and the good (i.e. the noise of the open office and the chance for some socialiazing)

It's going to vary person-to-person. I did it for two years, and it mentally destroyed me. Eventually I was spending every night out getting shitfaced drunk because I couldn't stand another moment alone at home.

I work in an office now. I can work from home a day or two now and again, but it's 8.30 - 4.30 Monday thru Friday in the office for the most part. Don't assume working remote works for everyone simply because it does for you.

This is why lots of people like to work at coffee shops. You get to be around other people, but it's generally pretty quiet: there's no loud conversations about some stupid sports game the night before; any conversations are usually between two people sitting quietly together, not groups; the people there are total strangers and not coworkers or bosses so it's easy to tune them out mentally and concentrate. In addition, you can go buy yourself a tasty drink or snack and eat it (I can't easily make myself a chai latte at work). The lighting and ambiance are far, FAR more relaxing than any office I've been in.

I've always wondered about what kind of work do these people do. In my (stereotypical mind) they're some skinny hipsters with imacs hacking on the JS framework of the week.

I also wonder about the ergonomics of working from some ad-hoc office. I'd prefer a real office with a standing desk + proper office chair to whatever a coffee shop can provide.

Also as a customer to a coffee shop who just wants to grab a coffee and sit down all those people spending their days there after buying 1 drink and taking several seats with their laptops and books really piss me off. If I was the owner of the coffee shop I'd ask them to leave so that other customers can also come in.

>I also wonder about the ergonomics of working from some ad-hoc office. I'd prefer a real office with a standing desk + proper office chair to whatever a coffee shop can provide.

And I have to wonder how someone who values "ergonomics" can stand to stand up all day while typing. I can't imagine anything more uncomfortable.

>In my (stereotypical mind) they're some skinny hipsters

In my (stereotypical mind) anyone who wants a standing desk must be some kind of hipster. Standing desks didn't even exist 10+ years ago.

Anyway, negative generalizations aside, the ergonomics of a coffee shop aren't that important when the alternative is a noisy, concentration-killing open-plan office where you can't get any work done because of salespeople yakking on the phone nearby, people coming by every few minutes to ask you inane questions, people constantly walking right by your desk, etc.

>all those people spending their days there after buying 1 drink and taking several seats with their laptops and books really piss me off. If I was the owner of the coffee shop I'd ask them to leave so that other customers can also come in.

Maybe you should ask the owner to do just that, and see what he/she says. If you don't like it, you don't have to go there. Maybe you should start your own coffee shop and run it the way you like.

It depends on the office and your personal circumstances. If I dread going to the office for whatever reason (uncomfortable, noisy, bad commute, dislike coworkers) then of course I'd rather work from home.

I think this argument of WFH detracts somewhat from the issue of making the office itself a better place. There is so much that can be done in that area to alleviate some of the issues around not wanting staff to wfh.

For me, the main issues are noise, lack of privacy and lack of environmental control. I get some of the same stress in my office that I would get standing in a busy highstreet during rush hour. I dislike open plan office, hot-desking etc - give me a space, I'm comfortable working and relaxing in - a second home almost. Or maybe I'm just a spoilt millenial.

I've been working from home for a few years now, and I think the one thing I would miss the most is having my own private bathroom. If I'm ever in a position to design an office, the bathrooms will all be individual, or at least have stalls that go all the way down.

Never being on call is the ultimate perk.

I actually like being on call, because I get paid for it and we've written a stable service that rarely has issues.

There are business areas where having an on-call person is unavoidable and necessary.

Many companies frequently build a hierarchy of "direct reports". That hierarchy really loves having people they oversee being local. It's kind of a cultural thing, but it requires a very, very patient and rational manager to oversee people they can't physically interact with. In my experience, most managers don't fit this bill.

Add to the fact that most of these direct reports are done via a direct 1:1 meeting, most company cultures just really, really want to do critical communication verbally.

I've rarely encountered a company that puts quality written communication at a high priority. The last few I've worked at have these half-assed wiki's (e.g., Confluence) where pages are written poorly and then forgotten about about 15 minutes after the page is updated. And then random email blasts.

It's this focus on verbal instead of written communication that is a blocker for remote work. As a remote employee, if nothing important is clearly written down, it's difficult to be a "self-starter". You can't just research a problem yourself, you frequently need to be handed work. Thus, in most businesses I've found, the remote employees end up in this strange "in house consultant" style role.

I suspect companies where everyone is remote also prioritize written communication.

I have worked in a quite office and an open office and I think at the end of the day my feelings are the same. I am more productive and can get more done in less time when I do my own thing in my own space.

One thing I think worth mentioning though is as our systems become more and more distributed there is a clear advantage to having the limitations in communication folks are bringing up. It really forces you into a mindset where you have to nail down your API so others can neatly interface with your work. When I'm in the same location as a teammate, I'm more likely to just go over and ask them how their module/service works, which I might argue leads to more intertwined, less decoupled code. If I am physically removed from other team members, I am forced to make more independent resilient systems because in order for projects to be more successful, I have to more closely stick to the predefined API specs from the outset.

I am fortunate in that I have garnered enough skill/demand that I can work from my boat, sailing around Mexico, so for me, the freedom independent contracting has allowed in my personal life is unmatched. I undrrstand why managers and business owners are loathe to offer this kind of work, and I think partly it's because a few bad eggs has given wfh a bad rep

I really think the best situation is a place that doesn't care all that much if you work from home, but you aren't technically a WFH employee. I used to be 100% remote and yes that had it's perks, but I think overall wasn't the best for me as someone who, left to their own devices, will likely sit out my couch at home all day every day. I actually enjoy going into the office for at least half the day and leave for home when I feel like it. Usually that's after breakfast and lunch from the cafeteria :)

It's nice though, to have real life friends at the office. Especially when you move to a new place and don't really have your old friends around. I don't really feel any loneliness because of this. I still keep in contact with my remote friends, but you know... it's not quite the same.

Anecdote but I'm sure other people feel the same:

I get cabin fever working from home more than a few days a week. I need human interaction and video chat and Slack don't cut it.

I found working from home I cooked a lot less (went out to eat instead just to get out of the house) and the days tended to blend together.

Hard to imagine why. Better work environment, better equipment, better office mates, better commute, fewer distractions, lower stress, etc. Plus it structures the communications better, so you have less of the random conversations and more use of ticketing systems and like.

Well, I'm self employed and work for customers mainly from my home (backend development, web technologies). One or two on site meetings per week and that's it. Sometimes I had to go to customers sites in my town two or three days per week, usually during design phases. Working at home (I live alone) and avoiding the office is definitely great. Zero commuting time, I worked this morning, went on a 2 hours 50 km bicycle ride in the afternoon, got a shower and back to work. I'll probably get back those working hours on Saturday morning. I try very hard to allocate some time for my interests. I'll be back to working in a office only if business goes very bad and I can't avoid it.

For how many months, or years, have you been working from home? And, how often are you interacting in person with people?

I've found WFH to be great, but, after a while I really miss human interaction.

Eleven years after thirteen as employee. I go out almost every day. Friends, family, technical meetups are the main activities. Customers, of course. I must plan to do something outside home or it would be unbearable. We're social animals after all.

You spend 8 hours a day working. Why would you want to be isolated from other people? As a kid you go to school you are around people. Working from home seems like you are kind of isolated from people. Its not the same as over skype or slack.

"You spend 8 hours a day working. Why would you want to be isolated from other people?"

So that you can get the work done and not have to think about it when you go socialising with people you actually choose to spend time with?

"As a kid you go to school you are around people."

....and for a lot of people that was the most frustrating, difficult time of their lives that they wish to avoid reliving. Personally, I can't stand office politics, find smalltalk very distracting when it's happening around me and would much rather avoid the 1 hour commute each way.

I can't work from home in my current position, sadly, but I'd jump at the chance to do so. If I found myself feeling isolated from people, it would be much preferable to go somewhere with my laptop for lunch rather than fighting over the microwaves in the office kitchen every day.

You spend 8 hours a day working. Why would you want to be isolated from other people?

Some people (myself very definitely included) need some regular isolation. Talking to people all day at work leaves me very poorly prepared to deal with my family when I get home. The idea that I can lock myself away and do productive stuff is awesome (although in practise, a lot of remote work isn't actually that isolating).

As a kid you go to school you are around people

School is the last place on earth I'd want to model my working environment on (although the open office advocates seem to be trying).

Well, the obvious reason would be if you don't really like having to interact with people. It's exhausting for some of us.

The greatest work week of my life, everybody else in the company was in Florida for a trade show. There was also a series of blizzards that dumped about four feet of snow over the course of the week - and virtually the entire northeast was shut down. I have never in my life gotten so much done in a week, and I don't think I spoke two words to another human being that week. It was glorious. Wish it was always like that.

This in my experience is the biggest problem with WFH. It's great for X months, or years, but everyone needs human interaction whether they realize it or not.

If you're a highly social person, "X" will probably be months before you start to get cabin fever and feel extremely isolated. If you're more introverted, "X" may be as long as years. I believe though, it will catch up with everyone eventually.

You aren't isolated. You just interact online. Its not the same, but its also not isolation.

I enjoy working in an office environment because working in my home can be isolating. But cubicles with low walls where I'm constantly seeing and hearing my officemates is awful. Who thought this could possibly be a good idea for work that requires focus?

Also, a year after moving to San Francisco to work for a team based in the city, they relocated us to the South Bay. Now everybody on the team spends 3-4 hours daily commuting from SF/Oakland/Berkeley and it's awful.

I suspect these are the kinds of measures companies take when they want to reduce their workforce without layoffs.

So many companies require you to relocate to work for them, and then fail to provide an acceptable office environment that allows concentration, so they let you work from your (new) home. It's bizarre.

I'm much happier since I started working remote.

I've never been the 9-5 office guy and my coworkers were always joking about me not being in office before 10.

When I finally missed a promotion to head of development because the higher ups said it can't be the 10-o-clock guy, I left the company and with it employment in general.

As a contractor I can work from wherever I want, get paid much more per month and can keep much more of it because of cheap private insurance and pension funds.

I also can take as much holidays as I like.

I see my family and friends more often AND get more exiting new projects.

This thread has been eye opening. I had always assumed companies seeking remote employers were looking for cheap labor. Do you have any wisdom to share for someone looking to make the switch to remote?

I've had really good experiences working from home, and awful ones too. It usually comes down to having a distributed-first mindset among the team and management.

The ideal would be to have an office with a super short commute when I need a change of scenery, but the option to work from home whenever I feel like it.

The requirement to sit your rear in a specific chair at a specific time is pretty stupid when you can code anywhere you can carry your laptop.

Not only for devs. I was working for a mega-big US company doing audit/sec and 90% of the time I was working from home, and it was the best thing!

Having worked from home and on remote teams... I didn't like it as much as working with others, because I never felt attached to the team.

A shocking amount (to me, anyway) of my motivation comes from caring about the people involved in the organization... That attachment just doesn't form with people I hear on the occasional conference call or daily slack messages.

So many comments in this thread are comparing working at the office vs. working from home -- but there is a 3rd option, which is to rent your own office! I do this, it's not very expensive (a few hundred dollars a month -- if I get 2 extra hours of productivity per month then it's paid for itself).

I always used to want to go into the office to give me structure. Recently I worked with a client where the office was so loud it was impossible to get stuff done.

The difference in productivity working quietly at home vs in an office with loud music being composed and conversations being had across it was night and day.

That's why I prefer open space office, because if I want privacy I can just work at home or somewhere else. What's the point going to an office where i will be in my own private space.

"working from home" aka "actually getting work done"

I actually prefer working in the office. When at home there are too many distractions, too easy to go to the shops (or driving range) or start working on your own projects.

> For programmers, the ultimate office perk

will vary depending on which programmer you ask

how about them phone meetings? i really dreaded them made me almost hate wfh

It's not that it's a phone meeting. It's that it's a pointless meeting.

Bose 35 noise cancelling headphones (or similar) should be provided to every programmer who is required to work in an open office environment, and even for remote programmers who have to work from coffee shops.

It's a hustle to find remote work at top pay, not impossible but harder than getting top pay for onsite. When will that change?

I've been remote since August 2015, and it's been a challenge to keep getting highly compensated remote work, but I managed it somehow.

Any day I don't have to go to the office is a good day.

There is a dirty secret that nobody talks about and the real reason that companies want programmers in the office.

Companies want their top performers in the office so they can serve as trainers/mentors/teachers to the new college kids and the incompetent older people they hire.

I think this is the real reason companies crack down on working from home. It's infuriating as a top performer - I just want to get my assigned work done and leave it at that. I don't want to teach all your shitty college grads how to actually code.

edit: I'm not against mentoring people and helping build teamwork, knowledge sharing, etc. I'm just saying that an all out ban on WFH makes me feel like I am sitting in an open office all day doing other people's assigned work.

I actually am very social and enjoy teaching and helping people. I just wish it wasn't one extreme or the other - I can still mentor/knowledge share with tools like WebEx.

edit2: I am a contractor who was recently banned from WFH. We used to have a very lax WFH policy and it was great. Now I'm banned from WFH completely. The article was discussing the merits of WFH policies, which I am commenting on.

This comment doesn't read like it was written by a "humbleMouse" :)

I don't think this is a healthy attitude to have towards less experienced developers. Literally every experienced developer was once inexperienced, and I think for the vast majority of people, it's hard to become a senior or even intermediate developer without some mentorship along the way.

I believe this is especially true for aspects outside of writing code. This probably isn't true at every company, but from where I've worked, a big part of being a senior engineer is understanding how to tie in business goals to development. That's not really easy to learn in a tutorial online or by contributing to open source.

Anyway, I would just take caution when writing comments like this, and realize that in order for our profession to live on, we need experienced people mentoring inexperienced people. You were there once upon a time, and you probably wouldn't have liked it if people called you a "shitty college grad" and refused to help you out.

I completely understand where he's coming from in writing that. Sometimes it feels like my entire day is spent training new hires, repeating the same things over and over again. In jobs where being an expert is a requirement, it's very frustrating to see the company hire employees fresh out of college and expect the senior employees to feed them 10 years of experience in a matter of weeks. And then either they take that knowledge and leverage it into a higher paying job or they get discouraged that they were hired for a job they are woefully unprepared for (through no fault of their own) and they leave. And then the company hires more college grads for pennies on the dollar and the cycle repeats.

There's a real danger as a senior level employee that if you go out of your way to mentor younger coworkers, you become the go-to training guy. Your coworkers stop asking their peers or their manager for help and start asking you directly. Other coworkers send the new hires directly to you so your manager doesn't even see the amount of questions you're answering. And all the while your actual workload isn't getting any lighter. And if you complain, you look like an asshole. What kind of person won't help train new employees? Why are you so anti-social? Why aren't you a team player? It's just one or two questions here and there. And when it comes to performance reviews, your mentoring counts for a hell of a lot less than the number of projects you finished on time, so now when the company isn't doing so well, your output per dollar is a heck of a lot lower than the people you trained, so you're out the door. No one sees that the new employees never would have finished their project without your help. Your name isn't on that checklist, it was their project. What do you mean you helped? We gave you two weeks to train them, why are they still coming to you for help? Did you not train them properly?

So either you get laid off, or you quickly realize that you have to start turning away questions and mentoring. I love training new employees. But that's not my job. My job is finishing projects. If mentoring gets in the way of shipping, guess which one I'm going to drop first?

The solution there is direct, open communication. With each new-hire you need to train if you don't have capacity you need to raise it with your management chain and let them know that you can either on-board or ship feature X.

The important distinction is that they make the call and you've both gained visibility into your workload and they own the outcome. If it's a bottleneck that's causing pain they'll quickly become aware of it.

My god this sounds exactly like academia: your job as a professor at a research university is to obtain grants, publications, and donations. Pretty much everything else is incidental. "Service" to a department, to students, etc. is "emphasized" in reviews, but if push comes to shove, the asshole with a bunch of big grants is going to steamroll the "nice" junior faculty who "mentors" the asshole's students. If you're teaching, preparing to teach, or holding office hours, you're not writing grants or manuscripts. And the odds are that everyone will say "thank you so much!!" as you get turned down for tenure, UNLESS you managed to satisfy your true primary responsibilities so efficiently as to leave time for the "fun" stuff (teaching, watching people discover, blah blah)

There's a balance -- you can do more with more hands, and they need to be well trained hands. But if they're not your direct reports, ultimately they're not your problem. (This also means that you will need to be responsible for the outcomes of those you mentor, and you'll need to learn how to let slow learners go. Oh noes, you're becoming management! It's almost as if there's a reason that good managers with domain expertise are hard to find.)

I guess it comes down to, are you going to be a "helpful" "mentor" or are you going to accept formal responsibility for the success or failure of mentees (vis-a-vis grants, contracts, successful projects, etc.)? Instead of being a martyr, it seems that explicitly accepting or denying responsibility for people who eat up your time (within reason) is the best long-term strategy. You can still succeed without doing this, and you can still fail while doing this, but the odds are in your favor if you demand accountability. (Also, there's nowhere to hide if you aren't as good as you think you are; I think that's a feature, rather than a bug, but opinions may vary.)

Just like academia the onus of learning is on the individual in all settings. The senior guy or the professor owes nothing to the junior folks or students, if they themselves don't care.

The issue in a corporate setting is you are expected to make up for other people. Same in college.

Sorry but almost all forms of failure have individual liability. Merely knowing this helps a lot of people take their situation seriously and do something about it.

Or lack of documentation/communication within the company.

When key information regarding how you're supposed to do this thing or where that thing is located or how you're supposed to test Y, or how should this particular bit that wasn't communicated in the user story but was talked about in a meeting you weren't at be tackled, or whatever is locked inside people's heads you need to consult with them to get that information out of there.

And yes having information locked inside of senior employees is a bad idea for the company overall, but that's been the case to some extent at pretty much every company I've worked for.

Other coworkers send the new hires directly to you so your manager doesn't even see the amount of questions you're answering

Well there's your problem, it's a classic multiple-bosses insanity when anybody can put a new task (hire) on your plate. Furthermore, it may also come as bad news to you if you've already been "promoted" to company trainer, informally.

Talk to your boss about how all of this is getting funneled to you. At the very least you should be keeping them informed as to how your day is spent.

This problem exists because companies and management are overly concerned and focusing on resource efficiency rather than for flow efficient. http://www.jrothman.com/mpd/agile/2015/09/resource-efficienc...

I enjoy teaching people who like learning. The effort required to teach those who aren't that curious saps my energy, and eats into time I need to advance my own skills. I didn't work super hard to learn what I've learned just to give it away to someone who is indifferent.

I think you are being a bit dramatic, however what you describe does happen to some extent. When it does, its either a management failure for not responding to the senior software engineer voicing concerns that his/her time is not spent in the proper proportion between work/mentoring, or, it is the fault of the senior software engineer for just sitting there, refusing as much as possible to help the less experienced co-worker, whilst not properly communicating it upwards. It is certainly not the fault of the one asking the questions.

The root problem here seems to be organization and task assignment. Unless the project is exceptionally complicated or badly designed, it should be easy or at least possible to separate easy tasks for less experienced people.

Irrespective of how small or isolated the task, you have to train them to do it. And more often than not with a junior hire, you have to re-do their work anyways, or baby-sit them the entire time while you tell them what to write.

Not to mention, that if it's something they can be trained in once and monkey-repeat ad-infinitum, then there is a near-100% chance that I can automate it.

If your responses to questions aren't well written and concise confluence/wiki pages (with an example or two) - you're doing it wrong.

This attitude is understandable. A lot of the "college grads" I graduated with were people who I watched for 4 years not try very hard and walk away with the same degree as I had after I worked really hard preparing myself to be an effective engineer. Then I watched as they got nice paying desk jobs while I work around the clock being a freelance engineer who has to deliver working products to get paid. Hard work and dedication are what this job takes, not somebody older holding your hand. Looking at the code and process of older engineers is valuable but you have to proactively do that, it is part of being a dedicated engineer.

> I think for the vast majority of people, it's hard to become a senior or even intermediate developer without some [on the job] mentorship along the way.

Doesn't this assume that the only mentorship (edit: We're really talking about "job training") is peer mentorship? What about classes, self-training, etc? Why should the onus be placed 100% on the senior employee? Why no onus on the junior employee?

As I wrote in my comment:

>I believe this is especially true for aspects outside of writing code. This probably isn't true at every company, but from where I've worked, a big part of being a senior engineer is understanding how to tie in business goals to development. That's not really easy to learn in a tutorial online or by contributing to open source.

I went through four years of computer science education, had multiple jobs/internships in college, and even took over 10 MOOCs across Udacity, edX, and Coursera. None of those things prepared me to be the developer I am today (I won't deny that they helped, though). They certainly put me in a great position upon graduating college and got me a great job, but nothing increased my skills more than simply working with more experienced developers in a full-time role.

> [Formal education in software development] certainly put me in a great position upon graduating college and got me a great job, but nothing increased my skills more than simply working with more experienced developers in a full-time role.

That's, fine, but that's not what we're talking about. We're talking about management placing an (implicit, unrecognized and uncompensated) expectation on one developer on a team who happens to have a lot more experience than their peers. In other words, management is happy treating him as equal to his peers when providing compensation, yet expects significantly more output for the same pay.

Downvoters: Consider the context of this thread... Imagine you're asked to train your peers for no extra compensation or credit, and you're still expected to produce 100% of the typical work output. At the same time, your peers are compensated at the same rate, are considered equally for raises and promotions, but are not expected to train anyone.

I understand that senior devs might mentor juniors, or that experienced devs might train up newbies, but to expect one dev to "step up" to mentor teammates without some kind of recognition or compensation is not reasonable. (edit: Especially if those teammates are a long way from being qualified to do the work.)

The issue of having too much work for your time is valid, but it hadn't been raised, as far as I can see, and it's mostly irrelevant whether it's mentoring or any other kind of work.

At the few places I've worked I've found a large part of the training was company-specific or team-specific tribal knowledge (here's how you restart our service, here's how our data pipeline works) that was either not actually documented, or documented somewhere in a wiki and despairingly out of date or unfindable. That's arguably the fault of the team, but one of the companies (can't mention names) flat out said that it was one of their strengths to be a "storytelling" company.

Healthy for who? The way you're using it, healthy is a weasel word.

If someone is paid to literally write code, it's perfectly healthy for them to want to only write code and not provide free labor in a different domain.

I'd go so far as to say we currently have an unhealthy culture if we're expected to provide free training to everyone.

Job training used to be, and still should, be an explicit responsibility of the employer. Not an underhanded sneak expectation that's unofficially forced on people who were hired for other job descriptions.

>Healthy for who? The way you're using it, healthy is a weasel word.

"Healthy" is not a weasel word, but one half of a common term that people use[0].

>If someone is paid to literally write code, it's perfectly healthy for them to want to only write code and not provide free labor in a different domain.

It doesn't sound like humbleMouse is getting paid to literally write code. It sounds like they're getting paid to write code and mentor junior developers. It's also not free labor. If someone works 8 hours, gets paid for 8 hours, and spent half of that time mentoring others (which is incredibly generous), then I don't see the issue.

In any case, if someone finds themselves in this position and are unhappy with it, they should talk to their manager or find a new job. There's no shortage for experienced developers.

[0] https://www.quora.com/What-is-healthy-attitude

> It doesn't sound like humbleMouse is getting paid to literally write code. It sounds like they're getting paid to write code and mentor junior developers.

As a contractor? I have to say I find this doubtful. Without seeing the contract, neither of us can say for sure, but I'd be surprised if it specified mentoring.

I've been a contractor and led teams and mentored juniors on a number of occasions - I don't think it's very unusual at all. I don't know if it would be literally specified in a written contract in those terms, but it's very much what happens in reality.

Isn't it expected that mentoring is fundamental part of being a senior worker?

Usually "employer" don't know nowhere nearly as much about code as senior devs. If somebody was hired purely to do onboarding, they wouldn't have good grasp on the code either. Seniors who have up-to-date knowledge of the is best bet, no?

Sure, but this needs to be accounted for and the regular workload for such seniors needs to be appropriately reduced.

How is that a dirty secret?

Helping build the team, sharing your knowledge and expertise, it's all part of your work. Odd attitude.

If you purely want technical tasks, go freelance. Of course then you need to spend time getting business so...

Maybe still not a secret, but the dirty part in some companies is that if there are layoffs, they'll lay off the people who are paid the highest and keep the people that they trained.

When companies are laying off their top performers to save money either (a) they are falling apart, likely near death, and you should leave anyway or (b) they are just a stupid shitty company that doesn't understand the value of top developers so you should leave anyway.

So if you get laid off, it is probably a favor.

Not much of a favor if you don't see it coming and still have bills to pay.

But a true "top performer" would have another job in a week (especially in a tech hub), no?

They don't all live in tech hubs, there are many very good reasons not to jump into one of the first offers you get, and just because you're a top performer at Widget Co doesn't mean that every other company you apply to will find that self-evident based on a few interviews.

Still though, treating all junior developers as competition and your potential replacements, and thus refusing to help them, is shooting yourself in the foot. On the rare chance that you do get laid off, you can always find a new job, but what's much more likely is that a pattern of good mentorship will help you to advance in your career.

Plus those juniors might end up being part of your network next time around!

And having good peer reviews is helpful for performance reviews and promotion anyway. If everyone you've ever worked with hates you because you go out of your way to not ever be helpful to anyone, your career trajectory is going to be terrible. Working well with others, which includes enabling other members of the team to be maximally productive, is hugely important.

That has never happened in my experience, and I've been through a lot of layoffs. It's usually the exact opposite. They lay off all the peons and keep the few high level experts. They're a lot harder to replace.

Same here. Order seems to be:

1) Bad contractors, 2) Bad employees, 3) Good contractors, 4) Good employees with Mgt going along the way from bottom to top. Pay doesn't usually seem to be the deciding influence except within the groups.

One of the places I've seen do it the best first moved the few good people off of the worst teams and then just got rid of entire teams at a time.

If you really are a top performer, a big part of the justification for your high pay is because you multiply your impact by mentoring more junior employees.

I respectfully disagree. The justification for my high pay is because I integrate complex systems with shitty vendor web service api's and automate the transmission of sensitive data. The work I am doing has a huge impact on profitability of my company - much more than the joke of a 6 figure rate they are paying to keep me around.

I avoid being a fulltime employee because I don't want to have some unwritten commitment/fake loyalty to the company I am working for. I am a contract employee - I am here to get the work done you assign me. If you ban me from WFH, it's an insult to my professionalism and work ethic.

Nobody wants your unwavering loyalty... mentorship is a part of any job. From bagging at your local grocery store, to the CEO of a Fortune 500.

No offense, but it just sounds like you don't really like being around/interacting with people. Theres not necessarily anything wrong with that, but it's not really conducive to long term success... whether that success be in your job, or life in general.

Not that I agree with humbleMouse ,as I view mentoring juniors as something I should pass on for having been mentored when I was a junior, but there are lots of companies I've interviewed for that do want unwavering loyalty. Ones that view <5 years at a job as job hopping even when they give 0% raises every year

Sorry, but if your 6-figure rate is a joke, go get a higher rate, or even better, go out and start your own company. If you build your own company you will understand the value that other roles have and get away from the arrogant mentality that good code is the most valuable thing. The fact is, you aren't in a position to evaluate the value that all the other roles are bringing to the company.

There's a reason that very few companies have a strong technical track, and managers tend to get paid more than ICs. It's because managing personalities and orchestrating teams to operate efficiently has a huge magnifying effect on productivity. On a purely technical track, you can have an even bigger impact if you are a highly skilled architect, but only if there are technical challenges of that scope, which is not the case for most companies.

A cognitive trap that programmers can fall into is that their work is the hardest and most valuable because of its exacting nature. Given the details you have to understand and reconcile, it's true that you can't bullshit your way very far as a developer the way that some managers can, but that said, since no one else is probably taking the time to understand your work in great detail, it's very easy to spin a self-serving story of your own superiority. Don't make the mistake of thinking that because you are technical your self-assessment is objective, it is not.

Also, a large part of being an architect is basically shuffling and convincing people to get on board with your vision, since you're not going to write much of the code yourself. Being personable goes far, being difficult means people tend to not actually do what you need and make fun of you after the meeting. I've witnessed both.

> The justification for my high pay is because I integrate complex systems with shitty vendor web service api's and automate the transmission of sensitive data. The work I am doing has a huge impact on profitability of my company - much more than the joke of a 6 figure rate they are paying to keep me around.

be that as it may, mentoring, helping others, and setting examples are high-leverage. you may become 10x more valuable if you do your job while being effective at those.

these things are only at odds with your engineering work in that they take time, but a highly skilled professional knows how to manage their time to maximize impact.

they are also not at odds with working outside of the office -- there are many ways to communicate, you can be at the office only some times, etc.

I completely disagree about him becoming 10x more valuable. That only works if he's actually evaluated on these things. He probably isn't, nor are most technical workers. Now, if he were a manager/team leader, this would be very different: those are absolutely core aspects of the job and things to be evaluated on in your performance review.

Then take a job that has a strong remote policy?

Each company has different priorities. Some value face to face and direct team interaction. Others flexibility. Find one that suits your values.

Well, you can disagree, but every engineering manager I've ever worked with would be surprised to hear you say that.

Small test - what would happen if you shared these thoughts with your boss? Maybe you work for a company that doesn't care about mentoring newbie employees, but I'd be surprised if that was the case.

Out of curiosity: if you are a contract employee, what does 6 figure rate mean? Contractors are usually paid an hourly rate.

i assume he means once calculated for yearly, it would be that of a 6 figure rate

Yes, this is a normal assumption, but then 6-figure sounds like s/he is seriously underpaid for a contractor. Assuming when people say 6-figure they mean something just above 100,000. Nobody says "I make 6-figure", if earns let say 250,000.

Depends on where the contracting is done. "Highly paid" is relative.

Indeed. I've been interviewing candidates for "Senior Developer" and mentoring is in the job spec and list of questions we consider when evaluating candidates.

If someone gets hired with "mentoring" in their job description I don't think it's reasonable for them to expect to do none of it. Now, if their performance metrics don't account for this, that might be unreasonable ..

(C++ in Edinburgh, if you happen to be looking for a job)

C/C++ amongst others, 10+ years, available immediately! (Seriously)

Was trying to work out how to give you the info without either of us posting personal information in the absence of a PM system AND the job is erroneously not listed on our website. Sigh. Probably easiest to phone the number on http://www.zonal.co.uk/zonal_careers/ and ask about the C++ job in Research&Development at Edinburgh.

Thanks, will do.

If thats true, it should be an explicit part of a job description. Not an implicit expectation.

At most big companies with a formal title ladder, this is an explicit criteria for being a "senior" engineer.

That's a very myopic view of your job responsibilities. Presuambly you had mentors yourself earlier in your career that helped you out greatly. I know I did. If they'd all been working from home, and thus were unavailable for the kind of help that they gave me, I might not be where I am today. Helping along the next generation of coders is part of your job description. Most employers would rather have a good programmer who can build up the effectiveness of the rest of their team than a great solo programmer who doesn't have any knock-on effects in making the rest of the team more productive.

> I just want to get my assigned work done and leave it at that. I don't want to teach all your shitty college grads how to actually code.

That's not a healthy outlook, and if any of my coworkers held such a view, it would be a negative for me.

What's wrong with asking questions over email? Is physical presence actually needed for effective mentoring?

Your view taken to the extreme would mean that this thread itself is dysfunctional because people aren't face-to-face and instead discussing on a message board.

There are a variety of situations for which direct face-to-face communication, or two people huddling in front of the same computer, is the best low-latency, high-bandwidth mode of communication. I use email all the time, but it's not always the optimal mode of communication. Just yesterday I spent an hour mentoring the most junior member of my team through our tricky dependency injection setup by sitting in front of the same computer with him. It would have been harder remotely.

I don't find your slippery slope argument compelling.

Why couldn't you have provided the same kind of mentoring over email? If you had a guide detailing the steps of the setup your junior developer could follow it. If he or she had any additional questions then he or she could have mailed them to you.

I would understand if you said you didn't like typing or that you enjoyed being in proximity of others. But I don't buy the claim that methods other than face-to-face communication would be objectively inferior.

What you are describing would've taken days, whereas I got him squared away in an hour. I know because he'd already been stuck on it for days, with him asking the occasional question in person and via chat. It wasn't until we sat down together and went through the process of how to make these kinds of modifications step-by-step that he really got it.

We don't have guides for how to make every different potential change to the code. That'd take more time to write than I currently spend coding, and they'd constantly be getting out of date with every refactoring. And anyway, the change I was walking him through was a refactoring of a kind we hadn't yet done before, so no guide would've existed anyway (and, if written, would likely be a one-off). I'm not spending hours writing a speculative guide on how to make that change, which I couldn't even write properly without actually making that change, when it takes much less total time just to sit down with him and work through it together.

I don't understand what programming world you are talking about, because it's completely different from my own. My experience has been that collaborative, high latency development mentorship via email tends to take an order of magnitude more walltime than sitting down and writing the code together end-to-end (similar to "extreme programming", but for mentoring).

I'm not the person you replied to, but ...

> Presuambly you had mentors yourself earlier in your career that helped you out greatly.

From personal experience, that certainly isn't a given.

My first job writing software was working solo. They had someone before I showed up, but that person left for greater things.

As the only person there, and having been hired right out of high school, I felt a strong responsibility to get things right. So I'd do my best during the day, and then then I'd spend 6-8 hours after work reading blogs/books, poring over my work, seeing if I could make anything better.

I didn't have anyone to mentor me in the things I did:

* Set up a Subversion server

* Set up automated testing, and imposed a strict lower bound for code coverage

* Sped up the existing code-base 20x over a weekend with FP-inspired parallelism (Microsoft's Task Parallel Library, PLINQ)

* Reduced the code size considerably through better approaches to architecture and design (OOP stuff like SOLID, and general good judgement), though I can't recall the exact reduction

* Proposed, designed and implemented systems that automated away many hours of daily work for each of the non-technical staff (takeaway: eat lunch with the people you're trying to help, try to find stuff that they take for granted that could be automated away)

And the list goes on quite a ways.

And then I got an offer somewhere else that subsequently doubled my (at the time, minuscule) salary. They were impressed that I had written an interface in my programming assessment (this was C#), as they "hadn't personally found a use for them". There were no automated tests, because tests were impossible to write due to coupling (recall that they didn't user interfaces -- there was zero abstraction). When Inversion of Control (specifically Dependency Injection) was suggested, implemented, and example tests provided -- all during my lunch hours -- the entirety of the work was rejected as being too "weird". Bear in mind that the effort had also removed 20K lines of copy-pasted-and-slightly-edited boilerplate -- boilerplate that would continue to accrete in a similar fashion with each new feature. It was a major bummer: these were industry veterans (20+ years of development experience each), and yet the code was in shambles, and they couldn't recognize when things were an improvement.

As someone who would desperately love to be the least capable person in the room, I can't say that's ever been the case throughout my career, at least professionally. Conferences are an entirely different thing: when I go somewhere like Compose Conference, I chat with people working at the frontier of type theory, optimizing automatic differentiation, etc. It's equally inspiring and humbling. While all of those people would be super awesome to work for/with, they're invariably either starving academics or they can't afford me by a wide margin.

So no, not everyone has had the pleasure of having a mentor.

Interestingly, I think it's precisely because I haven't had a mentor that I always extend an offer to mentor others -- including people I haven't even met in person. I reflect on all the stupid shit I've done in the past, and how I could have avoided many hundreds of hours chasing my own tail if someone had been in my life to:

* Point out when something is provably impossible (e.g. solving the halting problem)

* Point out the best algorithm (or class of algorithms) for an unfamiliar problem -- or perhaps most importantly, give a name to the problem you're trying to solve

* Distill and share the essence of wisdom / good judgement when it comes to design (instead of me spending many hundreds of hours reading over open source, trying to learn bottom-up while attempting to glean the author's mindset)

* Give me a vocabulary to help accelerate my learning (things were often hard to research because I lacked words like: extent, binding, continuation, etc)

* Etc, etc, etc

Sadly, very few people reach out. Every now and then I'll see that someone is struggling with something, and then I'll help them flesh out their understanding. Once it clicks you can see a big smile light up across their face, and then they'll say something like "damn, where were you when I got stuck a couple days ago -- that's precisely what I needed!"

And then I don't hear from them.

What a horrible attitude. I hope you're just having a bad day and this isn't how you typically act around other because I wouldn't even want to work in the same building as you when as a supposed "top performer" you don't feel the slightest obligation to share your knowledge, your skills, your experience, etc with "shitty college grads." I'm sure you were born knowing how to code so you can't relate, but for everyone else, we were all terrible programmers at some point. The only reason we're not is because someone took the time to document their knowledge, be it through a book, a blog, an online tutorial, or college.

I'm not saying I don't enjoy mentoring people and sharing knowledge! I'm saying that it is unreasonable for companies to ban WFH, and I explained what I think is the true motivation behind that decision.

To clarify - companies are banning WFH so they can lower their hiring bar and take on incompetent people and not have to pay for or provide any company training. They just rely solely on their senior people to teach the new people everything.

The article was about WFH policies, and that's what I am commenting on. I'm not saying mentorship == bad or coming into the office == never. I'm saying mentorship can be done while working from home, and banning it is a terrible company policy.

> you don't feel the slightest obligation ...

No morality whatsoever emanates from a company's bottom line. It can certainly not compete with my own bottom line. How can you expect people to agree to train their own competition? Publishing general open-source code is ok, but telling other people how the code works that you write and maintain for a living ... why would anybody do that?

> telling other people how the code works that you write and maintain for a living ... why would anybody do that?

Just so I know I'm understanding you correctly, are you saying that you refuse to tell your coworkers how code you write works?

One compelling reason: if you need to hire down the road (once you're CTO/manager/equivalent), it makes much more sense to hire devs who you've trained and invested in at a previous company.

Because your job is not to gatekeep at the companies expense?

I work at a 100% remote company and I have no trouble getting the mentorship I desire/need from more experienced folks.

Maybe the key is 100% remote though. I hear remote sucks if it's not ingrained in a companies communication patterns.

My previous job wasn't really setup to do remote work but we had a second team working almost 12 hours opposite (Romania vs Kansas). The "offshore" team was paying a heavy tax because everyone was working at the office, so we had a ton of hallway conversations that never got documented anywhere they could access it. Even though everyone knew this, because we were co-located it was extremely difficult to overcome because it's just so easy to not document things. When your entire team is 100% remote, you are forced to document things a lot more since there aren't hallway conversations unless you specifically video chat with a single individual.

How do you handle discussing complex code, data structures and such concepts over online? In such cases, I find that being in the same room and using a white board makes it easy to communicate across. Maybe some programming domains that type of issue if less common?

Sometimes (not too often) I do such things remotely.

In my case, voice call + screen sharing works OK. On the screen sharing I can use whatever software I find adequate, be it Word, Visio, Paint.net, balsamic mockups, etc.

As a side effect, we can continue working on those documents/diagrams/whatever after the discussion, e.g. include it in the documentation. Much harder to achieve with a white board as someone needs to digitize those drawing. In my experience working offline with whiteboards, no one actually doing that. In the best case, a digital photo is kept somewhere no one will be looking, in the worst case the board is just wiped clean.

Some kind of screen sharing app with Krita = virtual whiteboard. You have a lot more room than a real whiteboard offers, since Krita has a "pseudo-infinite" canvas, so you don't need to erase things. And you can save the file for reference, or to send it other people.

In some cases people literally point their camera at a whiteboard!

You laugh, but it works really well to do this so long as you remember to stand out of the way of the camera.

As a junior software developer, it's sad to hear this point of view. Many of us put an extraordinary amount of time towards improving our craft.

On the other hand I've worked with many people who have very similar opinions as yours and they suffered from reality distortion. Their code was poorly implemented and poorly tested, despite what they say, and caused many headaches.

Are you actually a top performer in the software world?

As a more senior individual myself, don't sweat it there's plenty of us who love to expand our tool belt and mentor those following the path.

> Are you actually a top performer in the software world?

Having to ask that question should be an answer in of itself, a resounding "no".

True top performers are constantly trying to expand their skills. The only way you do that is by interacting with other people, even less experienced/talented folks. You don't get new insights by being around the same great people all the time.

Linus Torvalds wrote Linux from his dorm room. John Carmack wrote the Doom engine solo. Einstein worked alone, the inventor of PCR did it alone, Wozniak, Picasso, Hendrix, Mitnick.

Holy crap almost all incredible innovations were invented by solitary passionate people working alone!

Then we have Cascading Style Sheets..that.. was invented by a committee...

Einstein didn't work alone http://www.nature.com/news/history-einstein-was-no-lone-geni...

Torvalds didn't either https://en.wikipedia.org/wiki/History_of_Linux#Chronology note 100+ devs in 1993 working on the kernel to build a userland for it. If they didn't you'd just have another toy kernel floating around nobody uses.

Edit: Apparently Hendrix didn't work alone either he claimed Foxey Lady was just something him and his band put together while randomly playing during a rehearsal.

You're conflating 'influences' and 'being part of a team'.

Einstein used the tools that were available to him. He was influenced by other people sure.



By your logic... because I contributed to the Linux documentation I was part of the thousand person team that invented Linux!!!

Adding that to my resume!!! I invented Linux!!

In all seriousness, there's a difference between influences and being part of a team...

All major human innovations, at their root, have resulted from passionate smart people working alone without a team to make them compromise on any aspect of their vision.

Hey, documentation (along with device drivers and userland apps) are tremendously important. Without them, linux would have been another toy project and none of us would have heard of it.

Also linux follows in the footsteps of minix and other closed source unix systems right out of Bell Labs, so it's not like he wasn't drawing on a larger body of work. Hard to say he was inventing a whole lot of new stuff as opposed to duplicating an existing refined design. And large parts of what he did write were eventually replaced by others (the scheduler has gone through several iterations now), so those pieces are at least collaborative.

The lone solo genius is a trope for an Ayn Rand novel, not achievement in real life.

The closest thing is a guy who has a mental illness (or should I say non-neurotypical?) and writes code by himself for himself. But I'm sure even he uses stack overflow ;)

Agreed. We all stand on the shoulders of giants.

The point is one SOLO GENIUS took all of the tools available to them at that point in history and made something amazing.

By your logic we have to go back and say cavemen inventing fire are key contributors to the Linux kernel because fire was an important tool to the creation of civilization which was critical for the invention of operating systems.

Well if you want to take my logic down the slippery slope of your own invention then you can make me claim anything :)

I don't doubt the importance of taking ownership for your projects and having good taste, as opposed to design-by-committee. But I think you're overstating the degree to which they worked isolated from others. I think these examples you've given involve people with good taste (or call it vision) who said no to a lot of prevailing wisdom and yes to other ideas... but it wasn't literally "I'm going to go into my house for 5-10 years and emerge out with perfection". It's usually more iterative.

To add to sibling, Hendrix didn't work alone. Not only did Noel Redding and Mitch Mitchell (the rest of the Jimi Hendrix Experience) contribute massively to his work, but Hendrix spent the first 3 years of his (unfortunately only 6 year) career cutting his teeth (literally) as a backing player for much bigger performers (Isley Brothers, Sam Cooke).

While he had influences...at the end of the day... you went to the show to see JIMI FUCKING HENDRIX.

I get what you're saying, it sucks training the new guy. It is however, the sign of a good/great programmer/performer to be able to train other people. Also, frankly, it just has to be done. Companies don't want to lock their knowledge into a few good people.

You take on the challenge of efficiently "getting your assigned work done". I'd challenge you to take on the task of teaching others with the same mentality you approach your "regular" work. Do it as efficiently and productively as possible. Then when you're done, go about your day.

> Companies don't want to lock their knowledge into a few good people.

It is not their knowledge. It is these "few good people"'s knowledge.

> I'd challenge you to take on the task of teaching others ...

Never, ever. Only idiots agree to train their own competition.

You sound like a horrible person to work with. Software development is a collaborative process. I would never want to work with someone who treats all of their peers as competition and refuses to help them achieve the team's mutual goals, and were I your manager, I'd likely fire you.

To be fair, with their mindset, they are probably right to view everyone else as competition. They clearly feel the clock ticking down to their termination, and management is probably trying to replace them as we speak.

A developer with no leadership or social skills is very replaceable. Unlike software development, those are the skills you can't develop alone in the bedroom.

People who can actually get work done and do the hard things are hard to come by, unfortunately. You can be quite an asshole if you deliver and there's no one else around competent enough to take over.

It is not uncommon that the people seeking to be mentored are lazy to put any effort into learning. It is also not uncommon for a lazy manager to put an effort to see how much this senior programmer is mentoring other. It is also not uncommon that this senior person might have learnt all his/her skills from books/discussions forums etc. Some of these senior programmers put their personal time because they are passionate about their craft. Please don't make assumptions that anybody who is not so pleased about sharing his skills is not a team player. Oftentimes, a lazy manager pits team members against each others. You sound like that horrible manager to work with. If I were your team member, I would find another manager.

All I can really say is that I'm sorry you have this mindset. You can share knowledge and cultivate the people around you without worrying about your job or treating your coworkers as competition. I think that that actually makes you more valuable.

You may want to look for a job on Wall Street (or at Amazon).

This is cynical and depressing, but it's less off the mark than people here seem to think. In a _well_ run company, this attitude doesn't make sense. But in a company that does not respect or have loyalty to its employees, this attitude should be the expected result. Over time, it seems like more and more companies are falling into the second category and they will get the employees they deserve.

Peer mentoring is part of your job in any field. It's not a secret that your better people are supposed to help train other employees. Senior people train junior people, people with expertise in a domain share it, etc. Some fields even make this formal at the early levels, with apprenticeships, but I've worked in a number of fields and never had this not be the expectation.

It's part of why you (should) get paid more than them.

The real "dirty secret" is if you're not a team player, you're not a top performer because force multiplication through mentoring adds more value than the difference in your individual work.

> Peer mentoring is part of your job in any field.

All morality in a corporate setting is fake by design. Everybody simply maximizes their own bottom line, and if you don't too, you are an idiot. Training your own competition is simply not a way to maximize your revenue.

I disagree on three levels:

1) I don't think the premise is true, that everyone maximizes their bottom line figure.

2) Prisoner dilemma logic is suboptimal in the iterated prisoner's dilemma. Alliances are a thing in ongoing relationships.

3) Even if I were trying to maximize my individual value, training would still benefit me. Programmers with strong mentoring and management skills are more valuable to the corporations than programmers with just technical skills. Mentoring increases my value as a force multiplier faster than it increases any individual mentee's value.

If you are immoral in corporate setting, then you are immoral person. There is nothung special about work that would up it outside of morality.

Besides, training less experienced people is job expectation, exactly as writing unit tests and readabe code is job expectation. Nothing to do with morality.

In "The Mythical Man-Month", Fred Brooks writes about two concepts that I think are important considerations when deciding whether to leave the experienced programmer alone or train up the team:

* The communication overhead that adding more programmers adds. Training time can be thought of as a manifestation of this tradeoff. * The conceptual cohesiveness that comes from having one developer or a small team design a system, as opposed to a free-for-all design that can arise when a large team is unleashed on a program.

Whether or not to train teammates is (ideally) a development strategy, given the needs of the business.

You're backpedalling hard, but it doesn't change the fact that you said:

> I just want to get my assigned work done and leave it at that. I don't want to teach all your shitty college grads how to actually code.

I'd say stay behind your statement, man. If that's how you feel, that's how you feel, and despite the fact that your feelings are generating ire from those that are more generous with their time, backpedaling isn't going to make anybody think you don't feel that way.

If the scope of your work is to "just code" then fair point. On a previous job I was supposed to:

a) do my thing, b) teach people to learn to do my thing..

Lync worked miracles doing that and we could all WFH while doing the (b)

(I still dislike the "Skype for biz..." name)

You are rationalizing this. If they were into mentoring they would push for pair programming or trainee programs. It's a pure control thing.

Maybe companies want their top performers in the office in order to force them to develop their social skills.

With that attitude, you should stay remote.

You had it backwards - should have read "new older people and incompetent college kids"

Are you compensated / rewarded for your mentorship? That is, come performance review time, does "I spent half of my time at work in the last year training folks and they said it was great" count as a positive, or a negative because you were expected to get other things done?

For engineers/developers, mentoring is not necessarily having a seasoned person training someone with no experience. Everyone on the team has a different background and experience. We ran into an issue the other day where we identified a developer misunderstanding how a certain kind of technology is supposed to be used. This developer is outstanding on many levels, super focused and a great asset. English is also not their native language. Try describing a concept over Skype with paint.exe. It is much easier to put it on a white board so everyone can see how their piece fits into the larger picture. Having everyone in the same location brings synergy you can’t achieve in remote locations and timezones especially if you are a startup.

You can't consider yourself a "top performer" if you are unable to mentor the more junior folks below you. You should check that chip on your shoulder, because "top performer" programmers do not self apply such a title.

That can be one of the reasons, but not necessarily the only reason. I have experienced this in my own career, for sure. Top performers sometimes are implicitly disallowed from performing because they are too busy making up for the mistakes of others. Unfortunately, often these top performers don't have the authority to make the necessary staffing changes that would actually lead to success.

Some people like to learn by themselves, some others are careful to only ask the necessary questions, and some others think it's part of your job to teach them. That's a common situation in an office, though i m not sure its the real reason why someone would not offer you work-from-home arrangement. I do understand how annoying it must be for a contractor though.

>It's infuriating as a top performer - I just want to get my assigned work done and leave it at that. I don't want to teach all your shitty college grads how to actually code.

Did you ever consider that "top performers" are those who do more than "get [their] assigned work done and leave it at that"?

I'm not buying the training/mentoring argument. Companies want their hires to have all the knowledge about what they use before they are hired. If you don't have those skills and this experience, you simply won't be hired in favor of someone who does.

This is likely true, and I've actually been told that directly by a company's recruiter. They wanted me on-site to mentor and guide other developers.

A good video chat system and IRC can substitute well enough though.

If you are senior and getting paid enough it is kind of part of your job.

> the real reason that companies want programmers in the office

pretty broad statement to make, though I can see it having some merit in certain instances

> Companies want their top performers in the office so they can serve as trainers/mentors/teachers to the new college kids and the incompetent older people they hire.

It is not hard to avoid training your own competition. Three people have left in despair over the last two years trying to get me to train them. I just happen to be not particularly talkative when it is about the details of my work.

I'm not sure why you call it a dirty secret. It's not dirty or a secret.

programming is a team sport - you might well be better than average but if you're leaving your team to eat dust then you may well be causing more harm than good.

what did you do bro

I don't want to teach all your shitty college grads how to actually code.

Only a very inexperienced developer would actually want to work with people who aren't as good as they are. I genuinely want to be the worst person on my team. I'm pretty good, so that would mean we could do some amazing stuff.

It could also mean you will do all the routine menial work and will never get a chance to touch something more complicated :). I have seen more experienced seniors to treat less experienced junior pretty badly in the past. Junior did not learned all that much imo nor was given chance.

>Only a very inexperienced developer would actually want to work with people who aren't as good as they are.

Not true.

>I genuinely want to be the worst person on my team.

I feel the same way, but only because I've adjusted to the role and enjoy relentlessly leeching knowledge from the top performers.

>> Only a very inexperienced developer would actually want to work with people who aren't as good as they are.

> Not true.

Could you explain your position on this?

I feel that perhaps "inexperienced" is the wrong adjective, but rather developers whose ego or lack of desire to progress would want to work with people who aren't as good as them. "Inexperienced" is a decent approximation of that description as experienced developers with no desire to progress would be rare.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact