Not really taken advantage of in my case, but it can sometimes feel like you need to "prove yourself" that little bit extra (maybe the guilt of not being seen?) and end up working longer due to that
Not when I worked at home. When I was working at home, I could get done with work exactly at 5 and head over to the weekly meetings of local organizations (ACM, local LUG, the hackerspace in town, 2600 meetings sometimes) and network there much more than I could if I had to drive out to where they were from my office.
Social isolation is a huge issue for me. When I spend multiple consecutive days working from home I start to get mildly depressed. Going out at night after a day of working from home doesn't fix it. I think it has to do with what I'm used to from nearly two decades of schooling: socializing with and being in the company of many other people during the daylight hours of weekdays.
A stipend so remote workers can rent a desk at a coworking space would help solve the socializing issue. It might sound crazy (or at least rare), but renting a desk at a coworking space is probably far less expensive than providing space and a desk and facilities at a company's own offices.
That's definitely one solution, but at that point you're eliminating a lot of the benefits of working from home. If I'm going to be commuting to a coworking space anyway, why wouldn't I just commute to my actual office, and be physically colocated with my actual coworkers rather than random people? I should point out that my commute to work is only ten minutes one-way.
I suspect that the coworking space idea only works for people that are located a long distance from the main office (potentially 1000s of kms), but have a coworking space nearby.
Lack of face time can be a problem when it comes time for advancements. If you work for a company that is purely remote and software driven, this might not sound like a big deal, but if you work for a company that is: a) not 100% remote and b) not a pure software development company, the office crowd and non-tech higher ups start to wonder: a) who you are and b) what you do there.
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.
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'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.
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 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.
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 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.
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.
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.
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 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.
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.
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 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.
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.
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.
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 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.
>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.
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.
> 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.
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!
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.
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.
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.
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.
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 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?
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 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.
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.
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.
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
> 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.
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.
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.
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.
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)
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.
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?
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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.
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.
> 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...
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).
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.
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?
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...
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.
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.
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 ;)
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).
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 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?
>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.
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.
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.
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.
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.
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.
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.
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.
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?
>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.
> 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.
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.
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.
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?
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.
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 act as though companies aren't obligated to pool their training resources in a manner in which the senior employees are spending say X amount of time training junior employees. They're spending money on training - just not how you want them to. They're getting training done the way it's been done for thousands of friggin' years, man, via the master and apprentice interplay. Thousands. Of. Years. Mano a mano.
I think working from home makes no sense. Home is for home, and work is for work. If you want to work from home, you should consider freelancing, otherwise working is a collaborative process done in a communal setting and oftentimes the best training is direct, regular contact and education transmitted from sr. to jr. employee. I think most companies have come to this conclusion and have determined that WFH is a detriment to quality jr training and is simply not cost effective.
It's a win-win for the firm:
1.) they get to train their jr.s for the future with high-quality experts from their own team at the scene on demand
2.) they avoid sinking money into shitty training sessions which do nothing but band-aid the lack of genuine mentorship that is not done via chat protocols and instead subtract productivity from the top srs and pool it towards the jrs development.
I'm not sure why you can't see this from the business's perspective. It just seems like you really want to work from home.
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.
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.
>> 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.
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.
> 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.
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.
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.
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.
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.
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.
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?
>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"?
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.
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.
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.
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'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.
Some people in mid 20s have a decade of experience. Many fresh grads have never coded outside of completing their assignments. There's absolutely nothing wrong with this observation.. unless of course you're ageist ;)
Please don't personally attack other users like this, no matter what they've said. We detached this subthread from https://news.ycombinator.com/item?id=14098242 and marked it off-topic.
I'd advise you to read the rest of the thread as the vast majority of the responses were criticizing his vitriolic attitude, and based on the number of upvotes my comment received, I'd argue a large percentage of the HN userbase agreed with it.
It doesn't matter how many people agreed with it—HN is a constitutional democracy and some rules override upvotes. In this case, the rule is that you shouldn't respond to a crappy comment (which that one was) with an even crappier and less civil one.
I point out irony with the age of one user and somehow that's "even crappier" and "less civil" than his comment which is ridiculing every single college graduate and "incompetent older people" as being useless and a waste of this his time? Why was his comment not detached?
I think you and Scott need to re-evaluate your heavy-handed rules and consider your direct role in enabling the entitled, elitist, and often misogynistic attitudes that are so prevalent within the current tech culture. Instead of allowing the community to let this user know that, hey, maybe you shouldn't diminish every single person other than yourself, that maybe the problem actually lies with himself? Someone needs to let these individuals know their behavior is unacceptable, and you are in a unique position to achieve just that: You could have detached his thread, but instead you choose to focus on anyone criticizing him?
Instead you're providing this ridiculous protectionist world in which people like him get away this attacking an entire class of people but as soon as someone turns the tables on him, you swoop and provide protection? This is pretty fucking ridiculous.
Please, what Dan and Scott are trying to do is promote civility. It's a hard and thankless job. It's your choice to make it harder or easier for them.
They agreed with you that the comment you were replying to was inappropriate; they just wanted you to be civil in pointing that out. If you look at their comment feeds, that's what they consistently and tirelessly do, regardless of the topic or ideology at hand.
I point out irony
... but you did it in a personally pointed and uncivil way. That's what matters here.
ridiculing every single college graduate
The comment was overheated and crass, but it didn't actually say that.
Why was his comment not detached
It was a root comment. Root comments can't get detached. But the comment is ranked low in the thread.
I think you and Scott need to re-evaluate your heavy-handed rules
From the guidelines and Dang and Scott's comment feeds, the rules are simple and reasonable: be civil. Even in response to incivility.
They seem perfectly happy for people to call out bad behaviour in others - hey it saves them from having to do it.
But they hate it when users go tit-for-tat and create a cascade of incivility, as it diminishes the community for everyone and makes their job harder.
They're even happy getting suggestions from the community, but again, be civil about it. Attacking them as being partly responsible for all the ills in tech culture is a bit much, given their long history of relentlessly and earnestly working to curtail incivility and bigotry in all its forms on this site.
But hey you got it right with this follow up comment:
maybe you shouldn't diminish every single person other than yourself...
That's very well said :)
But in all seriousness, you're getting outraged and taking things personally when it would just make things better for everyone if you could be a bit reflective and say "OK guys, fair cop, I'll try to do better next time".
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.
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.
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)
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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 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.
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 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 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.
376 comments
[ 3.4 ms ] story [ 307 ms ] threadIf it works "for you" then it'a a great thing to have in your life WFH!!
If not, then there is always the office.
Not when I worked at home. When I was working at home, I could get done with work exactly at 5 and head over to the weekly meetings of local organizations (ACM, local LUG, the hackerspace in town, 2600 meetings sometimes) and network there much more than I could if I had to drive out to where they were from my office.
I suspect that the coworking space idea only works for people that are located a long distance from the main office (potentially 1000s of kms), but have a coworking space nearby.
Hint. It's not everyone else. It's you.
3/4 times while talking to her I find workarounds. Her smile is the extra bonus!
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?
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'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.
On the other hand my commute is 11 minutes. So that makes it easy.
Getting that time back in the evening, when needed, allowed me to schedule local appointments or meet a friend at a more reasonable time.
If I lived within walking distance of a job I'd otherwise enjoy, I'd strongly consider it.
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.
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 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.
"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.
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.
- 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.
1 https://en.wikipedia.org/wiki/Door
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.
There are so many reasons... I think you either get it, or you don't.
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.
Me. I like having the background activity and don't find it distracting. I've only done it in small group / company settings though.
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.
This alone is a major productivity booster
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.
https://twitter.com/woloski/status/605788426546221060
If I had to drive to work I'd be even more into WFH.
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?
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 really, really, really hate the bathroom at my current workplace.
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.
Also, I like my coworkers so coming to work seems like playing sometimes.
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...
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 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.
Each company has different priorities. Some value face to face and direct team interaction. Others flexibility. Find one that suits your values.
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.
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.
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.
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)
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.
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)
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.
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).
A good video chat system and IRC can substitute well enough though.
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.
> 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.
> 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...
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).
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?
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.
> 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".
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.
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.)
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.
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.
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.
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.
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?
"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
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.
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?
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.
I think working from home makes no sense. Home is for home, and work is for work. If you want to work from home, you should consider freelancing, otherwise working is a collaborative process done in a communal setting and oftentimes the best training is direct, regular contact and education transmitted from sr. to jr. employee. I think most companies have come to this conclusion and have determined that WFH is a detriment to quality jr training and is simply not cost effective.
It's a win-win for the firm:
1.) they get to train their jr.s for the future with high-quality experts from their own team at the scene on demand
2.) they avoid sinking money into shitty training sessions which do nothing but band-aid the lack of genuine mentorship that is not done via chat protocols and instead subtract productivity from the top srs and pool it towards the jrs development.
I'm not sure why you can't see this from the business's perspective. It just seems like you really want to work from home.
But what do I know? My hunch.
* 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.
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.
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.
> 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.
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 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.
pretty broad statement to make, though I can see it having some merit in certain instances
Did you ever consider that "top performers" are those who do more than "get [their] assigned work done and leave it at that"?
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.
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.
humbleMouse's profile: "Mid-Twenties"
lol.
So? S/he could well have 10 years of relevant experience.
> "I setup that url myself."
ha, and from that wayback link we see he owns a domain, which I can't even make this shit up: NumberOneProgrammer.com
I think you and Scott need to re-evaluate your heavy-handed rules and consider your direct role in enabling the entitled, elitist, and often misogynistic attitudes that are so prevalent within the current tech culture. Instead of allowing the community to let this user know that, hey, maybe you shouldn't diminish every single person other than yourself, that maybe the problem actually lies with himself? Someone needs to let these individuals know their behavior is unacceptable, and you are in a unique position to achieve just that: You could have detached his thread, but instead you choose to focus on anyone criticizing him?
Instead you're providing this ridiculous protectionist world in which people like him get away this attacking an entire class of people but as soon as someone turns the tables on him, you swoop and provide protection? This is pretty fucking ridiculous.
They agreed with you that the comment you were replying to was inappropriate; they just wanted you to be civil in pointing that out. If you look at their comment feeds, that's what they consistently and tirelessly do, regardless of the topic or ideology at hand.
I point out irony
... but you did it in a personally pointed and uncivil way. That's what matters here.
ridiculing every single college graduate
The comment was overheated and crass, but it didn't actually say that.
Why was his comment not detached
It was a root comment. Root comments can't get detached. But the comment is ranked low in the thread.
I think you and Scott need to re-evaluate your heavy-handed rules
From the guidelines and Dang and Scott's comment feeds, the rules are simple and reasonable: be civil. Even in response to incivility.
They seem perfectly happy for people to call out bad behaviour in others - hey it saves them from having to do it.
But they hate it when users go tit-for-tat and create a cascade of incivility, as it diminishes the community for everyone and makes their job harder.
They're even happy getting suggestions from the community, but again, be civil about it. Attacking them as being partly responsible for all the ills in tech culture is a bit much, given their long history of relentlessly and earnestly working to curtail incivility and bigotry in all its forms on this site.
But hey you got it right with this follow up comment:
maybe you shouldn't diminish every single person other than yourself...
That's very well said :)
But in all seriousness, you're getting outraged and taking things personally when it would just make things better for everyone if you could be a bit reflective and say "OK guys, fair cop, I'll try to do better next time".
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 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.
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.
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.
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.
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'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.
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.
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.
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.