Why We Still Believe in Working Remotely
blog.stackoverflow.com
blog.stackoverflow.com
One company to date has said that not-relocating my entire life is OK with them. The rest can be summed up with the reply that ended an email exchange with an SV angel:
> sorry to hear that, and let me know if you ever decide to head west, young man :-)
Alas I'm a person before I'm a programmer. And I always will be. And I have a family and friends and a home in New Hampshire that do not fit on airplanes so neatly.
Even apart from the tangibles, I cannot fly the feelings. I cannot fly the sights and smell of my hometown to the Bay Area. I cannot fly the white mountains, so isolated from the civilized world and yet they feel so familiar to stand atop the notch and look around, as if I've been there a thousand times, as if I've always been there.
Maybe that's dopey. I don't know. There are streets to know intimately and sights and mountains and sunsets in other parts of the world. But I feel like I belong here. Life is peaceful, I live slowly, I walk everywhere. I can be in love with the world on a time-scale, a thing at least partially set by surroundings, that works for me.
THIS!!!!
It's "early spring" already in Silicon Valley, and the distinct smell of the brisk, moist air and the sight of the fresh, yellow-green-Crayola-colored grass that has sprouted up all over the hills following the winter rains made me think, "ah, it's this time of year again."
I couldn't help but keep looking at the rolling hills, the bright green grass growing naturally everywhere, and the old, tired oak trees. And it came to me: how can I live anywhere else? I love it here.
I've considered moving to places like NYC several times in the past, and even recently. I know that NYC is a great city, and having gone to an East coast school, I have many people I'd be able to call friends there. But I know that this is home for me, and a hypothetical marginally better employment situation won't be able to overcome its gravity.
I happen to live in SV, but not because it's SV. I live here because it's home for me, and home to the friends I've known since childhood and adolescence seem to keep hanging around here along with me. I am lucky to have the best of both worlds right now. But if the world changed tomorrow and all the tech jobs moved to NYC, you'd probably still find me turning left out of my driveway like I always have. Just like you I guess :)
Thank you to you both:-)
It also just happens to have the absolute best weather and scenery.
Usually opinionated is a bad thing - you seem to have the good opinionated. It's your opinion that rugged mountainnscenary and the well being of family and friends is worth more to you than salary and fussball.
I am seriously coming to the belief that setting clear tasks and assigning them to developers is a negative - I work much better on an idea I can see being great than I do on some half baked imposed task
I believe google uses an auction / pricing system - the more the boss wants it the more points it gets.
I think I know what I want scrum points to mean now - prizes
"and Fog Creek had (at the time) a strict no-remote-workers policy. This drove me crazy. These were amazing employees, in whom the company had already invested deeply, who were now walking out the door because they couldn’t live in New York any more."
"Pain" is a very good teacher. It slaps you in the face and tells you're an idiot.
"Remote working isn’t for everyone. There’s a tendency to think that working from home is all sunshine and rainbows and working in your PJs. It’s not. You miss out on being around people (which wears even on introverts), doing fun stuff like playing ping-pong or having lunch together, and (sometimes hardest of all) you lose a clear distinction between work and the rest of your life"
Yes, absolutely. That's why even if I'm hired for a remote position I'll find a way to not work from home (at least not every day).
Go to a cafe, somewhere, or just hire a shared space/shared office.
You'll still commute, but to a place near you. You don't get distracted by house stuff. You can concentrate better. You can meet new people, depending on the place, and even getting from your house to somewhere helps 'tune out' of work for a little bit of time.
I love this sentence.
I sit at my desk a lot less, but work a lot more. I'm one of those people that simply cannot solve complex problems while sitting at a desk. Because I'm not beholden to butt-in-the-chair syndrome, I am free to spend an hour or more going for a walk, visiting a local coffee shop, or taking a bath so I can think and problem solve before typing into a console. As a result, my work takes less time and requires fewer revisions than when I was sitting in a chair at an office.
The down side...I'm always at work. In order to create the separation I have to make sure to leave the laptop upstairs in the office or else I'll just keep working at the kitchen counter.
Don't ask me to think about something and then sit still while doing so; you'll get whatever lazy answer I can come up with quickest - or no answer at all.
When I quit he hinted that with his contacts I'd never get another job in games, I was working 5 days later.
Myopic views, such as "must be sitting at a desk in an office", will never be the path to creative solutions to problems.
The range ain't great, but it's enough. Combine it with a laptop and good wifi, and I can go quite a ways.
My best ideas? In the shower.
Number of businesses I've worked at where it was possible to take a shower during the day at the office to solve hard problems? Zero.
Working remotely with washable crayons on a shelf in my shower means I get about 3x the concept creation time. I figure a number of businesses I've worked at (in the office) have lost out on more than a million dollars of creative output due to not having a shower available.
To those that I work with...don't worry. I always wear pants. But don't expect me to want to video chat with you too early in the morning. :)
The only time I work is when I want to work. That means, in order for me to tackle a project, I have to be motivated. When I'm motivated, I get the task done better, more quickly and more succinctly the first time.
If I'm forced to sit and stare at a screen and made to feel guilty when I'm not working, I'll never be motivated for anything. And working on something when my brain keeps saying "Fuck This!" is damn near impossible. I'm more likely to put some sort of half-assed hack through in such a scenario.
Some people, like you and me, Aaron, can motivate themselves and make sure things get done on time without someone standing over them. The manager standing over you scenario comes from a world where work is supposed to be dull, soul-crushing and horrible. Yer not supposed to want to go to work, so we have to stand here and make sure you do everything.
Helps to be passionate about what you're doing.
But yer also very right about dividing between work and life. I often find myself replying to work emails at midnight on a Saturday night, or working on a project on Sundays, or even while on vacation. In such cases, it helps to have a spouse who can shout at you to put it down.
As a result I always try to go beyond expectations and pay a lot of attention to communication.
Some of the things I do which I think give my employers confidence in me are:
1. Constant communication. Don't leave it to the imagination what I'm up to. I have a weekly work diary where I say what I'll work on, then tick off what I have worked on. I update throughout the week via IM or email.
2. Think about problems no one is working on yet. Kind of "skating-to-where-the-puck-will-be". In my case as a product designer I work on features/ideas we haven't discussed yet (usually not on company time).
3. Flexible with time. Need a presentation done over the weekend? Sure, no problem.
I'm a huge fan of remote working. My ideal scenario is 4 weeks home, 1 week office or something along those lines depending on projects. Although currently I have not been to the office in about 1 year!
I've been working remotely for 3 years.
I am not a super-genius developer but communication is something I really focus on. If they email me I try to respond as quickly as possible. Any meetings during the weekend, I squeeze time out. Even if I am going for a bathroom I just leave a small 'brb' campfire. Update my daily sheet, be very vocal on what I'm upto and make sure my progress is communicated in timely manner. These are important for good scenarios but in worst case scenarios (client being badass, deadlines are in danger of being missed etc.) this is vital.
Plus it's important to understand from employee perspective that the onus is more on us to make sure we communicate better. For on-location workers, colleagues/managers can drop by and check out progress but for remote workers it's us who have to step up.
But things are different if you want to build the next big thing with cofounders and there I experienced three big disadvantages:
1. All big (and finally successful) ideas and ventures were born by sitting together, day for day. By being forced to stay together in one environment. And we haven't born those great ideas when we had meetings about our products or were specifying some API, no, it was always when we were jabbering around doing silly things. You won't get breaking ideas on Skype or Google Hangout, believe me. Maybe a group of people needs sometimes a kind of antogonist or some constraints to get even more creative and if it's just some "we have to share our workday together."
2. Just working alone and from time to time a face2face meeting won't establish a relationship which you definitely need to overcome conflict situations. You can't build real relationships at some artificial situations like meetings or team off-sites while usually working all the time alone. Once you have a severe conflict and you have missed to build a relationship before odds are small that you get things working again (or even a normal conversation). A lot of people are the type "forever gone", leaving the non finished code base untouched forever.
3. You have to be positive and think that everybody will contribute in the same manner and quantity as you but some are not able to do this because they are heavy procrastinators when left alone or just not persons of integrity. If you have somebody who is ambitious and is in control of his time and energy, great! Jackpot! But the probability that you end up with a procrastinator, somebody who never finishes something or somebody who quickly looses motivation (or is just depressive) is not so low as you might think and you hear crap and other excuses every update meeting like 'oh I couldn't do this because I had to reinstall osx and xcode blabla and the gem sucks anyway' or whatever. Some freelancers invoice the same time many times to many clients, just remember this guy recently outsourcing his work to some people in China. You never know who you work with and what the person is really doing if you do not know them too well. I know that freelancer could also do this shit onsite (you cannot watch their screen 24/7 and check if it's really your source they are working on) but being together in one office lets the person focus more on your work and your environment and they are not distracted by other potential projects or ideas. And integrity/work morality increase.
So, it's hard to say if remote work is good or bad. But to sum up, I feel that when working as freelancer for a client then try to do this remotely. As a dev I would try this, as a client of course not. But if you want to start something great with friends or just met new cofounders you have to be together for some time.
You have to think about it differently than "Oh, we go here for meetings". It's more like a watercooler -- pop in every now and then and see what's going on.
I blogged about it a couple of months ago: http://cafbit.com/entry/hanging_out_on_the_job
The real juice is removing the friction to communicating. You don't want to be scheduling conference calls or chatfests. You want to be able to click see if Bob's available, click into his space and say "Hey Bob, got a minute?"
I disagree with that. We had the first real in-person meetup about half a year after I joined the company. Up to that point, I knew everyone else pretty much only through text chat (Google Hangouts didn't exist yet).
But when I met everyone in person, it felt like we already knew each other quite well. It may not always be the case that your online and real-life personalities are aligned enough to get to know a person via chat, but in this case it definitely was.
Github are a distributed team, Digg's programmer was a remote employee (from elance IIRC). Linux would be another biggie.
There should be at least one "water cooler" room where people are free to share youtube links or BS about non-work stuff. In short, the chat system becomes the virtual office. The team room becomes the virtual shared room where anyone can jump in on a conversation that interests them, or start one up casually.
The company MUST have a day to day internet communications based culture for a remote team member to be successful. If a team has a key remote member from the start it's easier. All remote teams are of course the easiest.
It's hard to add a remote member to a team that is used to being in the same offices. A lot of people will resist changing the entire culture for one "new dev". Office members will talk about a design problem at the physical water cooler instead of the virtual one. The on site team will go for beers together after instead of having a couple on a google hangout/skype video chat. The remote member will feel more like a contract dev assigned work than a creative member of the team. This is no good.
Where I've seen adding a remote member done successfully, requires management and team buy in of remote working. The manager/team lead should work a few days a week, or even a week a month, remotely. So should the other team members. After the team lead sees what it's like to be the lone person on speaker phone while everyone else is in the meeting room, you understand why if a remote member is in the meeting, everyone should be using skype/google hangout for it. The offices should become more of a shared coworking space that happens to have your company name on the door.
I myself prefer to work remotely. It's not for everybody or every company though. For a startup I think a remote culture from the beginning makes a lot of sense. Unless you require it to show off to investors/clients, skip the office. Have the cofounders work from home. Meet up atleast once every 3 months in real life for beverages and discussion. Talk on chat, every day. That's my thoughts.
One last thing worth mentioning, chat logs are great for when the new guy wants to understand a design decision. Why did we use $nosql instead of $nosql2? Here, read the logs from 6 months ago. For operations events (downtime etc) the timestamped chat logs are great for after action reviews. Can you brainstorm better in a physical room or a chat room? I've found the ability text chat gives you to allow everyone to talk at once, without talking over anyone, allows for discussion to proceed at a more rapid pace and more paths followed. This can be of course good and bad, such is life. :)
To what extent do you think this is the case?
The office is an open floor plan with very poor noise reduction. When not in meetings in that environment, it is hard to get work done even with headphones. Visual and audio distractions persist. That said, there are times where getting together is helpful.
When contacted by companies, I ask about telecommuting. Many play the "it is up to you and your manager once you are established" game. Result - thanks but no thanks.
Time spent in the car/traffic is productivity lost.
A 1 hour commute one-way is about 20 hours a week. That's a part-time job for some people. Commuting is simply not that interesting of an activity.
http://www.sdtimes.com/blog/post/2013/01/24/Concentration-is...
RJ stepped up. He volunteered to write the Amiga OS from scratch, entirely by himself. Of course, he had one major stipulation: no one was to bother him for the next 18 months. No meetings, no phone calls, no "Hey RJ, wanna go get lunch?" For the first 12 of those 18 months, RJ wrote the code in the office. But then, it was decided that the 30 minutes he was driving from home to the office and back again each day was too detrimental to his progress. RJ moved into a hotel near the office with just his clothes and a computer.
Not necessarily. Thinking is still the number one thing we as software people need to do. A 20 minute commute is a great forced time to not do anything else but drive and think. Even when I worked from home for 2+ years, I still drove somewhere else nearly everyday to work in addition to going to the gym.
I'm happy to be working in an office again. My current floor plan is much different than your though. I share an office with my teammate, and it's almost too quite through the day.
"I’ll let you in on a secret: most of our remote developers work longer hours than our in-office devs."
This reminds me of the 'unlimited vacation' policy, which, if I'm not mistaken has effectively showed that employees don't end up taking as many days off as they would if they were allotted the standard 15/20 days.
I generally feel that when you empower an employee, and give them ownership and responsibility, provided that they're passionate and capable, you'll see significant productivity gains. In the case of SE, this holds true because the problem that they're solving is so close to the creators of the product.
More importantly the lack of vacation time accounting provides less protection for the employee in terms of job loss. Unused vacation time is often added to severance pay.
In actual practice, "unlimited vacation" seems to be a nice term for the company to minimize potential severance pay, bookkeeping, and potentially create a work environment that silently discourages taking vacation time while publicizing the opposite.
I too have been bitten by this - hearing "there is no vacation time limit", and then seeing your paycheck shrink and being told "You took too much vacation"... That's extremely negative for morale.
I wish that companies had a minimum vacation time, but no maximum besides "your work isn't getting done".
Maybe I wasn't all that clear, but my first point with regards to unlimited vaca policy is that even though it seems to be giving individuals freedom (like working from home can be seen to be), it doesn't always turn out that way in practice -- people are more likely to end up working more for whatever reason (inline with what you've articulated well above). I'm all for allotted days.
My second point was a general thought. The appreciation I have for SO is undoubtedly shared across the tech community; the SE platform has changed how we (not just techies) learn. I believe that they are an exception to the rule and that their ethos teases the best out of engineers. As knowledge workers we have our greatest impact in our distraction-free flow state. If work is good, higher output is natural. With the right environment, a remote situation could possibly enable me to stay in the zone more.
Why is a team full of grown men, mature adults, silently judging a team member for doing something the rules entitle them to do?
/armor-piercing-question
I'm one of the community managers at SE and I work from my home in Canada where Stack Exchange does not (yet?) have an office. My arrangement is basically that I send in an invoice every month like any contractor would and it is up to me to take care of my own taxes and so on.
From another comment I understand they also have a UK presence. Are you a true-blue employee or a contractor who takes care of their own taxes and affairs, and just issues monthly invoices? If you are an actual employee (in the legal sense), are you employed by the UK or US company, or something else? Do they have to have an address there, or a foreign subsidiary? Presumably there's no German legal entity, so how have they registered there to pay tax?
This is something I'm prospectively interested in doing for my own business, but I'm not sure how I'd make it work from a tax point of view.
A UK company (or a company of any jurisdiction) can establish a subsidiary in another EU state, in much the same way you could register a NY-incorporated company as a foreign company in CA, but this doesn't appear to be what's happened in this case.
The only difference to a standard German employee is this: While in Germany legally the employee owes the wage taxes, they're usually collected by the employer and passed on to the authorities. But the German tax authorities don't like to do that with foreign companies (basically because they can't hunt after them when they don't pay). So from a legal perspective, I pay the wage taxes myself (but the tax office takes care of that as well).
The employee will however most often have a few extra things to take care of themselves, compared to being "employed by the books". For example to report local taxes, pension arrangements, health insurance etc. The company isn't usually involved in that, but might pay for it indirectly through a salary that's adjusted for these aspects.
In some countries, local laws require the employee / contractor to have a company (sole proprietor kind). In others, the contracts can be made directly between the business and the individual.
While I have no familiarity, I doubt it is legal in many other countries with a socialist state that requires employers to pay things like national insurance.
Basically if you walk like an employee, and talk like an employee, you're an employee and shouldn't pretend to be an independent contractor and you probably should not set up your own company as you'll be double hit with taxes if they catch you (company taxes for employees and standard employee taxes). That could leave you with several years worth of some serious taxes to back pay.
Don't want to be doom and gloom, but be aware what you're getting yourself into if you're going to pretend to be a consultant/contractor when you're not.
IR35 only applies when there's an intermediary -- usually when you're providing services via a limited company, then taking dividends at the lower tax/NI rate instead of a salary.
If you're self-employed and contracting with a foreign company, then IR35 can't apply (or so I was told when I spoke to HMRC to ask precisely this question).
Now, HMRC could decide that it's not a true self-employment relation. In my case (self-employed, working remotely for a company in the US, limited degree of control by engager, purchasing my own equipment, bearing the risk of invoices not being paid) I think there are enough factors to make it a true self-employment relationship and HMRC's online questionnaire agrees.
Even if you were contracting through a limited company, if you met the self-employment test you'd probably meet the IR35 test when operating through a Ltd. I'd prefer not to risk it -- which is why I went the self-employment route.
I guess that makes senses now thinking about it. I really hate IR35, there's so much grey area.
For more information, and where to find a good lawyer who can firm up such a contract, try http://www.contractoruk.com/ir35/
Also if you are an American citizen you have to pay taxes on your worldwide income even if you don't live in the US anymore. There are pretty good exemptions (I think its like the first 90K of income) but you still have to file every year.
Working remotely has allowed me to move out of New York and have money to pursue other goals. It has been difficult to stay social -- it a 45 minute drive to the nearest small city. The tradeoffs are worth it though.
I'm likely to return to working somewhere on site soon, but working remotely has significantly improved my focus and my work ethic.
Do you have any tips as to how to make this "done right"?
I, and a few of my remote friends, have hard a really hard time being nearly as productive while remote. I find myself really proud of being able to accomplish 4 hours of dev work when at a coffee shop or at home, but in an office I can work 8-10 hours without putting much thought into it.
(1) Spatial boundaries. If you can, dedicate an entire work for just working from home. In some places I can't do that, what I do is set up the laptop at the kitchen table and take it down again at the end of the work day. This includes cords. It might seem like a pain in the ass to put the laptop together every morning, but it is no different than if you had gone to a coffee shop. If you have a family with kids, you'll want to set up space that has a door. In return, when the computer is shut down (and you always shut it down or put it to sleep) or the laptop lid is closed, it's now family time.
(2) Temporal boundaries. You want some accountable way of starting the clock, so to speak. Standup is a good method for this. There needs to be something to end it, so you know when to stop and put things away. You will want to announce when you go on lunch or bio breaks. You can also type a quick end-of-day standup on what you accomplished that day. This provides temporal cues on when things are beginning and ending. This way, not only does work not bleed into your home life, your home life does not bleed into your work life.
(3) Social cues. I don't like pair programming much, but in a remote situation, you need to pair more often even if you don't normally pair. "Pairing" can be sharing a Hangout conversation to consult on something or tmux-shared-screen. This way, you don't go off shaving a yak. If you are in a group of peers (for example, some founders), then it is helpful to have everyone check in on each other occasionally. "What can I do to help?"
By setting up boundaries, you keep these things from bleeding into each other and help you concentrate while at work ... and enjoy your home life when you're not working.
With coffee shops: the best approach I have found is to establish a co-working group. You don't need a formal co-working facility if you convince some of your locally-based remote friends (or acquaintances you have met at the local User's Group for your technology niche) to co-work at a coffee shop. Small, family-owned coffee shops, pizza places, even bars, tend to be very friendly for this sort of a thing. You're treated as a regular and you tend to start camping out at a particular corner during the non-rush hours. Once a week can be enough.
The best advice is to upgrade your remote-office (i.e. home) IP provider to 5Mb or better UPLINK.
I really don't like the attitude here. Your significant other moving, is _not a silly thing_.
> I’ll let you in on a secret: most of our remote developers work longer hours than our in-office devs.
Yet another reason not to work remotely -- to maintain your work-life balance. Home is a place you spend with family and/or significant other, and doing non-work related stuff.
> it forces me to look at what they’ve done
This is something you should always look at. Measuring someone's performance by the number of hours they've spent in the office is _never_ a good idea; some people are just productive than others.
I stopped reading at this point. The author is quite selfish/insensitive to employee needs (since your significant other moving is "silly"), and he objectifies employees and doesn't treat them humanely (anyone who is happy with their employees working like 14 hours a day truly doesn't care about the employees' holistic well-being.)
I don't want to speak for the OP, but I took this sentence as, "Losing a good developer because his significant other is headed to medical school is a really silly thing for a company to do", which I would completely agree with.
"...most of our remote developers work longer hours than our in-office devs. It’s not required, and probably won’t always be the case, but when going to work is as simple as walking upstairs (pants optional, but recommended) people just tend to put in more hours and work more productively."
From personal experience, what happens is that the remote worker went downstairs to play with the kids and pets or watch something on T.V. that someone else was watching while they had a snack. Then they work 30 min more later to make up for it. It isn't working more- it is spreading out the work.
Also the post mentions that a self motivated, proactive worker is more likely to do well remotely. But, that depends. Micromanagement of remote workers is really bad, but so is just saying that they have to figure out what to do on their own if that is not their personality/work type. I personally work better when it is clear enough what needs to be done, and maybe if it is something I'm unfamiliar with, then a lot more information about the internals and business requirements and logic is provided, but I'm not told how to implement it. That is true whether I'm remote or not. But each person has their own way of doing things, and usually those aren't evident or may be misunderstood in an interview, so I don't think you can just say "they need to be proactive and self-motivated" and somehow some mystical force draws the right people to work on your team.
I work for an office with an office culture where 99% of the people go to the office. I find more and more of my time is spent on smaller, time critical projects that can't afford to get held up by the politics of an office! Makes sense. Given a 2 year period I likely won't make as a complete project as a team in the office. But given 3 weeks to 2 months to come out with something minimal, I have a much higher success rate doing it remotely than if its handed off to members of the team in the office. Not sure if that says something about me, the people in the office or a company as a whole.
I can also relate to this drifting though. If I'm not kept busy I do find myself drifting and not being productive for periods of time - until things pickup again. Not sure if being in the office would help there, or if I'd just clock more hours playing ping pong!
Is it really that easy?
But unfortunately, I get terminated for working remotely in the past 3 jobs I have as a programmer.
I live and work in the Philippines, and I always opted for an office job that takes care of my government securities and taxes, which I cannot get from working remotely on a virtual staff company or freelance website.
So I always end up working on a traditional office, but every once in a while I take up my vacation leave or sick leave and do excuses just to be at my house and _continue_ working, because I love programming and I always love to do it at home.
But it always turned out badly for me, and always get terminated for being 'AWOL' or work abandonment, just because I'm not at the office.
I understand that if you're freelancing things are very different.
Sales is much easier than tech/web development to do remotely because you can use commission and/or sales targets to quantify how well the remote salespeople are doing. Don't use a single salesperson as a "test" though; abilities vary so much, you'd have to have a larger sample to determines how well remote will work for your company specifically. Also, internet connections can go down at home, so if you have limited sales staff and depend on them to be selling everyday constantly, you might invest in a secondary method to connect to the internet or make sure they have a backup plan like working from a cafe.
You want to get hired for remote dev? Build a strong online profile by working visibly with a prominent project, and network through there to get someone who's worked with you to vouch for you.