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.
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, 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.
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.
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 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
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'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.
Oh, the bliss.
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.
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.
I've got a three year old who is used to me working from home and doesn't cause any problems at all.
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.
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.
My daughters love it when I work from home, so they're very supportive of my boundaries.
What's the point of living in an ultra-expensive region if you work from home?
2. silicon valley is a nice place to live 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.
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.
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.
I can't understand why thats so hard
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.
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.
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
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.
Paradoxically, at least in the US, we're seeing a trend towards fewer workplace friendships and greater detachment. 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 :).
1. http://www.gallup.com/services/178514/state-american-workpla... (behind a form)
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.
Those who got distracted by other crap tended not to be as successful by objective metrics. Just my experience though
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.
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.
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.
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.
"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.
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)
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.
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.
> 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.
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.
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...
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.
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'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.
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.
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.
There are so many reasons... I think you either get it, or you don't.
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.
Me. I like having the background activity and don't find it distracting. I've only done it in small group / company settings though.
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 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.
This alone is a major productivity booster
There is a fucking difference between commentary and music and radio btw.
Try not to project your own limitations on to other people!
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.
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.
Getting that time back in the evening, when needed, allowed me to schedule local appointments or meet a friend at a more reasonable time.
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 really, really, really hate the bathroom at my current workplace.
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?
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.
"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.
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.
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.
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 :)
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?
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 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.
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.
Driving is fun!
Driving in traffic, not so much...
Also, I like my coworkers so coming to work seems like playing sometimes.
If I had to drive to work I'd be even more into WFH.
On the other hand my commute is 11 minutes. So that makes it easy.
If I lived within walking distance of a job I'd otherwise enjoy, I'd strongly consider it.
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.
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.
This is key, and one of the main drivers I used to convince the owners of my company to become remote friendly.
Good remote workers, who are disciplined (as you said), are so much more productive.
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 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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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).
You are still a minority.
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.
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.
3/4 times while talking to her I find workarounds. Her smile is the extra bonus!
It's pretty insulting, actually, to frame people like me as entitled slackers.
It's the best, I love it. Any human interaction you get is chosen, rather than imposed.
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.
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.
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.
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.
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.
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
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.
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.
I've found WFH to be great, but, after a while I really miss human interaction.
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.
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).
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.
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.
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.
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.
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.
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.
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.
will vary depending on which programmer you ask
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.
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.
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.
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 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.
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.)
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.
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.
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.
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.
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?
>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.
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.
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.)
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" is not a weasel word, but one half of a common term that people use.
>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.
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.
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?
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...
So if you get laid off, it is probably a favor.
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.
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.
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.
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.
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.
Each company has different priorities. Some value face to face and direct team interaction. Others flexibility. Find one that suits your values.
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.
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)
> 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.
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.
I don't find your slippery slope argument compelling.
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.
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).
> 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.
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.
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?
Just so I know I'm understanding you correctly, are you saying that you refuse to tell your coworkers how code you write works?
Maybe the key is 100% remote though. I hear remote sucks if it's not ingrained in a companies communication patterns.
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.
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?
> 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".
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...
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.
Einstein used the tools that were available to him. He was influenced by other people sure.
But Einsteins WORK WAS HIS ALONE.
IT WAS NOT THE RESULT OF A TEAM.
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.
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 ;)
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.
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.
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.
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.
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.
You may want to look for a job on Wall Street (or at Amazon).
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.
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.
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.
Besides, training less experienced people is job expectation, exactly as writing unit tests and readabe code is job expectation. Nothing to do with morality.
* 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.
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.
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)
Did you ever consider that "top performers" are those who do more than "get [their] assigned work done and leave it at that"?
A good video chat system and IRC can substitute well enough though.
pretty broad statement to make, though I can see it having some merit in certain instances
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.
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.
>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.
> 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.