top | item 5757047

How to work remotely as a software developer

285 points| markcampbell | 12 years ago |markcampbell.me

111 comments

order
[+] joel_perl_prog|12 years ago|reply
I have to laugh at this. Not because he's wrong, but because it's so indicative of the programmer's mind. Structured, orderly, formulaic. Laying down rules and procedures. Which is fine--nothing wrong with that, however...

Let me offer a counter-example, for what it's worth, which perhaps isn't a whole lot. I've been working at home for almost a year, after being in the office for six. It's very simple. In the morning, I start working, sitting on my couch, using my laptop. Eight hours later, I sign out. Obviously eating some time in the middle there. That's it. Nothing to it, really.

[+] jiggy2011|12 years ago|reply
I've never tried working from a coffee shop but it seems people do.

How does that work out financially? I imagine they aren't too pleased if you just buy a coffee and then occupy space for 5 hours.

But I don't really want to spend a fortune on excessive caffeine consumption and $5 bagels.

[+] bconway|12 years ago|reply
Let me suggest an alternative that seldomly gets mentioned: the public library. It's free, it's quiet, the Internet is fast and not frequently used, the chairs are sometimes comfortable, and they love it when people hang around all day (these are all assumptions of a US base). Additionally, many newer libraries have big meeting rooms with whiteboards and other materials that are free for use. Capped drinks are usually allowed, and sometimes food (don't make a mess!)

It's by far my favorite "coffee shop." Your tax dollars at work.

[+] benjamincburns|12 years ago|reply
I think if you work a whole day in a coffee shop, you're kind of a jerk. I occasionally go to a coffee shop to work for an hour or so. Many times it's been the most focused hour I had that week.

The biggest thing is to remember that you're in a place of business. If you're going to take their space, buy something, tip well, and be courteous to the people around you.

[+] DavidHogue|12 years ago|reply
I did it for a few months while moving to a new city before I had my own place. It wasn't too bad. I'd buy a basic coffee (and sometimes a cheap bagel) and find a corner to setup in. At lunch, I'd pack up and find something to eat, then head to a different place and buy a coffee. Sometimes I'd go to the library instead. It wasn't any more expensive than going out with coworkers for lunch every day...

Most businesses did't seem to mind people hanging out, makes the place look busier I guess. I figure as long as there are other empty seats I'm not in anyone's way. That said, if I did it again I'd probably tip a lot more than I had been tipping.

[+] Sukotto|12 years ago|reply
I've done the coffee shop thing and don't like it. The tables are small, the other people are loud and distracting, the music is often really annoying, and I end up drinking too much coffee.

I much prefer working from a quiet corner of the public library. The tables are larger (or you can get a private study carrel if you really need to focus), it's quiet, and I can browse the shelves when I need a break. As an added bonus, the wifi connection is often better (fewer people sharing)

[+] corford|12 years ago|reply
The thing I've never understood is how people apparently manage to stay productive. There's no way I'd be able to get anything done sitting in a booth of a busy coffee shop, tapping away on a laptop and fighting with the congested wifi. Definitely prefer working from home with my three monitors, comfy chair and DSL line. I'm not a big coffee drinker though so maybe that's it...
[+] BCM43|12 years ago|reply
I have yet to find a coffee shop with solid enough Internet for my needs. From talking to people I know in management at coffee shops, the reason for this is that the don't want people sitting there all day working. This may be different at different coffee shops though.
[+] codereflection|12 years ago|reply
I did this for two years. The key is to switch it up. I'm lucky enough that there are many different coffee shops in my area that I can go to. The general rule of thumb, if you're planning on spending multiple hours in a single place, is to buy a little something each 1 to 2 hours. I've seen many, many people buy a single tall coffee, nothing else, and then sit in the coffee shop for 4+ hours. These people are jerks.
[+] GlennCSmith|12 years ago|reply
I worked alone from a home office for 20 years in my consulting practice until, in the last year, as my company has grown, I've moved to commercial office space for the first time. I found working at home a delight, and enjoyed many years of jokes about my short commute (18 feet.) However, in the end, I found the repeated advice of friends to be correct: I'm more productive with an outside office. The extra focus more than offsets the cost of rent. Being in commercial office space has also made it easier to meet with clients. It's also more social as there are other people at the office that I can talk to (or ignore) as needed.

My commute is still short (I often do it on a Segway), and our company is still virtual (with both staff and contractors working from their own spaces -- which we don't plan to change), but don't underestimate the value of a separate, outside, workspace.

[+] seivan|12 years ago|reply
If you can commute on a Segway then we're not talking what other people are experiencing with "commute". Try spending two hours a day standing on a train.

Such a time sink.

Commuting on a Segway... doesn't qualify.

[+] neogodless|12 years ago|reply
Actually, you're reiterating what the author said about having a designated work space. You're saying it has to be outside, but I would like to hear some evidence or rationale behind the advice. Both you and the author realize that if you mix workspace with home life, you're going to have a tough time.
[+] benji-york|12 years ago|reply
I'll gladly agree that working from a home office vs. an "office office" can be good or bad depending on the person. I'll also point out the chance for the Hawthorne effect to make changing from one to the other seem more (or less) productive than it really is.
[+] ChiperSoft|12 years ago|reply
It doesn't sound like you are the target audience of this article.
[+] stormbrew|12 years ago|reply
I went back to remote last year after not doing it for quite a while and it turned into a bit of a disaster. I won't deny that my being out of practice with it and not doing some of the things this guy and others talk about contributed massively to it not working out, but I want to add one piece of advice since I don't think this talked enough about external factors:

Be careful who you do it for. When he talks about all the communication tools you need to use in order to be successful at it, make sure they already have a bunch of those already set up, unless you're in a position to make sure they set them up and use them.

In particular, the company I was working for had no company-wide chat system at all, and clearly didn't feel they needed it since most of their employees were in-office or only temporarily remote. Various attempts at getting one going were hampered by lack of support from above. They'd get maybe 5 random people using them off the bat and it'd dwindle from there. At various times there were competing solutions active.

In the end I gave up, they gave up, and it just didn't work out and was frustrating for everyone involved.

[+] benji-york|12 years ago|reply
Agreed. I have been working 100% remote for three years and it has been great. However, I was very careful to choose a company that has had several 100% remote teams for many years over a company where I would be the first. I did not want to be both the person pushing for change and the only person that would be out of luck if the change didn't take.
[+] fein|12 years ago|reply
The only thing that I have grown to despise a bit is timeboxing. Coding is a job and a hobby to me, and sometimes setting those hard limits kills my ability to improve code by forcing me into a rigid schedule. It turns what I view as play into unpleasant work, and that's how burnout starts.

Sometimes its faster to come up with a solution without setting hard time limits, and just let your mind churn passively on a concept. I've always found a certain amount of anxiety associated with feeling like I have to complete a task in a predetermined amount of time.

You should always have (and try to meet) deadlines, but the micromanagement of 25 mins per hour (example from the article) is just stressful.

[+] hopeless|12 years ago|reply
I think you've misunderstood the Pomodoro technique if you think it's 25mins per hour. It's simply 25mins blocks of time, 5mins non-work, rinse-and-repeat.

When I timebox, I use Vitamin-R which let's me extend the time slice to finish a task. Probably the hardest part is breaking tasks down into 25min chunks

[+] markcampbell|12 years ago|reply
I agree with you 100% on the 25 minutes per hour being too short. Personally, (as I said in the article) 1 hour works better for me. Not too short, not too long.

edit: woops, I meant 25 minutes per block!

[+] __chrismc|12 years ago|reply
I wrote something pretty similar almost 8 years ago[0], and for the most part I've found the advice holds up.

My current job is a lot more flexible for remote working than any other I've had before. I don't work remotely all of the time, but at least 33%. For me, I found a bit of self-discipline is essential, as is being able to "train" others. I'm living with my parents at the moment and had to get my mum to realise she couldn't just pop into the room at any moment to chat - I could be in a call with my boss/a client, or trying to focus on a task... anything really.

Another anecdotal observation I've had - once you've trained yourself to work from home, you'll often find you're at your most productive there. I know I do. Partly it's the more comfortable/relaxed setting, and partly it's guilt of being caught "goofing off". Scott Hanselman mentions the guilt aspect in his reaction to the Yahoo! ban on remote working[1].

If I ever lost the ability to work remotely I don't know what I'd do. Nowadays I can't go more than a few days at the office without feeling completely drained, demotivated and demoralised. The flip-side is working from home for an extended period can leave you wanting to go into the office to see real people again, not just a Office Communicator window.

[0]http://chrismcleod.me/2005/06/15/six-tips-for-working-from-h... [1]http://www.hanselman.com/blog/BeingARemoteWorkerSucksLongLiv...

[+] tarekmoz|12 years ago|reply
I have been remote for 10 years. The secret not to get nuts is to interact online with colleagues as often as possible.

"From the employer’s perspective, you’re risking burning yourself out if you work 50-60 hours a week"

mmm... 50 hours is pretty common in the software industry, and being remote makes it easier not to burn out in fact because you're not losing time in commutes and in loud open spaces where you can't hear yourself coding.

In any case it's quite hard to define a number of hours per weeks. Building software is done by waves. You can spend a 70h week because of a production push that goes wrong, then a very calm week. So don't take those numbers/week too seriously imo.

[+] ChiperSoft|12 years ago|reply
50 hours is common in _startups_, not the industry as a whole.
[+] simonsarris|12 years ago|reply
I really enjoyed this article, and I'd like to add that software developers working remotely could probably learn a lot from the wisdom of writers, which has been collected in hundreds of articles on the web. (search for "advice from best authors" or "daily routines of great writers", etc, and you're bound to find many such articles. Some are good, most are puffery, but so it goes with anything).

Not all of the advice applies, of course, but there's a lot of good advice on making a good workspace and keeping yourself motivated. I've certainly noticed after working alone that there's a lot of implicit encouragement merely from working near other people, and this makes working at home harder than the same work might otherwise be. That's part of the reason why many prefer to work from cafes or worker/hacker-spaces, I think. Motivation is contagious.

(The positive flip side is that working from home removes a certain set of distractions that might otherwise be bothersome, and gives you more fine-grained control over the distractions you have in general).

Lots of authors use funny setups to transition from home-mode to work-mode. Some people build extra doors in their house so they can "leave" their house and "enter" an office that is sealed off from their house, but is otherwise the same building. One author (Roald Dahl?) worked from a bunker.

That being said, its probably a bad idea to get hung up on the idea of perfect working-from-home conditions. Per E. B. White:

"A writer who waits for ideal conditions under which to work will die without putting a word on paper."

Some similar important words from Tchaikovsky, which I found especially relevant to working from home:

Do not believe those who try to persuade you that composition is only a cold exercise of the intellect. The only music capable of moving and touching us is that which flows from the depths of a composer’s soul when he is stirred by inspiration. There is no doubt that even the greatest musical geniuses have sometimes worked without inspiration. This guest does not always respond to the first invitation. We must always work, and a self-respecting artist must not fold his hands on the pretext that he is not in the mood. If we wait for the mood, without endeavouring to meet it half-way, we easily become indolent and apathetic. We must be patient, and believe that inspiration will come to those who can master their disinclination.

I think motivation is under-stated in its importance when it comes to working from home. Even if our work demands little distraction, we're social creatures, and we've probably all had days where its hard to even open up the editor.

It's important to stay positive and stay at it. As Joel said, "We just have to come in every morning and somehow, launch the editor."[1]

[1] http://www.joelonsoftware.com/articles/fog0000000339.html

[+] smutticus|12 years ago|reply
A man is a fool not to put everything he has, at any given moment, into what he is creating. You're there now doing the thing on paper. You're not killing the goose, you're just producing an egg. So I don't worry about inspiration, or anything like that. It's a matter of just sitting down and working. I have never had the problem of a writing block. I've heard about it. I've felt reluctant to write on some days, for whole weeks, or sometimes even longer. I'd much rather go fishing. for example. or go sharpen pencils, or go swimming, or what not. But, later, coming back and reading what I have produced, I am unable to detect the difference between what came easily and when I had to sit down and say, 'Well, now it's writing time and now I'll write.' There's no difference on paper between the two.

--Frank Herbert

[+] mattjaynes|12 years ago|reply
Excellent points.

Elizabeth Gilbert gave a great talk at TED on these topics: http://www.ted.com/talks/elizabeth_gilbert_on_genius.html (warning: auto-play video)

Don't be put off that she's the "Eat Pray Love" author if that's not your style (it's definitely not mine). She speaks very well to the creation process - and even touches on topics like depression and suicide among creators. It's well worth the watch.

Another great talk (that isn't quite as directly relevant) is JK Rowling's Harvard Commencement speech: http://www.youtube.com/watch?v=wHGqp8lz36c (also auto-play)

My favorite part of that one is her speaking against not creating and thereby failing by default.

[+] segmondy|12 years ago|reply
When I work in my home office. To be really productive. I have to close the door even tho I live alone, then LOCK it. Sometimes I will get up, walk to door and when I try to open it and realize it's locked. It signals me that I should be doing work, and I turn around and sit back down and keep working. If I leave that door open. I would just get up almost without thinking to walk around and I dunno, just get out of the office. Then it's 10hrs later and I haven't made it back in lost between the office and kitchen.
[+] dageshi|12 years ago|reply
I've had a bit of a revelation recently.

I absolutely need some kind of human voice in the background for at least a few hours per day. If I don't get it then my mind just shuts down and refuses to work on anything.

My favourite radio presenter went off the air about 8 months ago and I've not really found anything I really liked since. But since then my ability to actually get anything done has gone down drastically.

Anyway on a whim I re-listened to one of his old episodes for a few hours while working, suddenly I'm tearing through my work again.

I can't explain it but it makes all the difference in the world.

[+] dorian-graph|12 years ago|reply
There was somewhat recently posted a website that generated background noise which simulated an office. I can't find the link, someone else should remember.
[+] notacoward|12 years ago|reply
No surprises there, but good solid advice that a lot of people need to hear. Well done.

The one thing I'd add is that working remotely means working away from machines as well as people - test machines, internal websites, etc. Even companies that are generally supportive of remote workers (like mine) often scatter essential information and resources across an annoying variety of machines that are not accessible from outside. Then they give you a VPN that's utter crap (usually because it's overloaded) or ssh to a bastion host so you have to tunnel/forward anywhere else. It's really worth the effort to make sure you use every trick in the book to get networking on your home machines and/or laptops set up in a way that actually allows you to get work done. I'm pretty darn good at that kind of stuff, but even so it took me several experiments over a period of weeks to get something I was happy with - and BTW it bears no resemblance at all to what the IT group thought would suffice. Similarly, it pays to make sure that using test machines is as friction-free as possible, and that common tasks are automated as much as possible so that you don't have to keep watching/tweaking things from afar. All good sense even if you're not remote, but even more important when you are.

[+] c0nfused|12 years ago|reply
As some one who does this every day. This is all good advice.

I would add that it is really really important to occasionally do something different. If you you usually work from home, go to a coffee shop, sit in a restaurant for a few hours on a laptop.

You will be amazed how much of a difference that one day outside your office will make you excited about the same work that the day before seemed like a boring slog.

[+] ewheeler|12 years ago|reply
Good advice. I'd like to add something that has helped me in the last year or so of working from home: have a dedicated work device (in my case a laptop + monitor) that is exclusively for work. All other browsing, personal side projects, etc that I do in the morning before I begin work or in the evening is done on my "personal" devices (second laptop or ipad). This way my workstation is in the state I left it in the next day and there aren't any distracting tabs I have to prune before I get to work.
[+] grownseed|12 years ago|reply
Been working remotely for a bit more than a year now and it's definitely largely about pace for me too. I generally start relatively early to try and catch up with my colleagues (I'm on PST and they on GMT) then head to a coffee shop later in the morning. Just having the walk in itself is quite an important motivator.

As far as coffee shops go, I think the criteria for a good place to work from are as follow:

- how is the coffee, and do they have refills

- how good is the wifi: speed, quality of signal, ... also whether they use tickets. I find tickets irritating, I keep forgetting about the limit and having remote shells disconnecting and whatnot.

- how good are the seats: comfortable as well as good for your back

- how good are the tables: I tend to prefer individual tables to large, collective tables, possibly because it feels more like a desk. You also want the height of the table to be good in relation to your seat

- do they have a lot of power outlets throughout the place

- what's the atmosphere like: I've been to places that turn into pubs half-way through the afternoon, even with headphones it's really not conducive to work, particularly when lots of people walk right around you.

- how good is their food: if I find a good coffee shop with bad food, that's not a deal-breaker and I just won't eat there, but good food does help

Surprisingly, I haven't found that many places ticking all the boxes. I actually wonder why there aren't more places dedicating themselves to providing this sort of environment (at least in SF and Vancouver).

[+] VinzO|12 years ago|reply
I thought this article would give tips on how to find a job where you can work from home.
[+] orangethirty|12 years ago|reply
Allow me to add:

Time Zone issues: If you work in a different time zone, then adjust to it to lessen the difference. This only works if you are from 1-4 hours away. Your team will appreciate the effort.

Try splitting the work day into shifts. One of the issues I had was working non-stop (as in an office job) for 8 hours. Reason was that I felt jailed into my house. So I splitastwer my work day into two shifts. One during the daylight, and one during the night (once my family has gone to sleep). I work better, and faster.

Get a hobby. When you work in an office, you have little hobbies that you do without ever noticing. Maybe its talking with another employee, or cleaning your desk, or anything. When you are home, you feel like you are in the office 24 hours a day. So get a hobby (preferably outside the house), so you feel like your life is not all about work.

[+] sinemetu11|12 years ago|reply
Working remotely was tough for me as I was working with an all non-remote team. One thing that I took away from that was that communication is really key in that situation. It also helps if the local team members know that as well. Everything seems to take longer unless communication is preserved.
[+] porker|12 years ago|reply
This works when you're a remote worker, but what about when you're a freelancer with multiple clients, using time tracking software? Where do you bill the "going for a walk to clear your head", the "restroom break" or that all-too-common one, "popping on Hacker News to see if anything exciting's happened in the last 5 minutes"?

Joking aside, I've reached burnout by driving myself hard to get 8 billable hours each day (plus communication, writing proposals etc on top), and apart from lunch don't step away from the computer even when tired and procrastinating. Because if I'm sat there working on a problem I can bill the client, if I step away (even though I'll be more productive when I come back) I can't.

I know it's a matter of perspective on how I define 'honest' and 'billable', but I cannot make the mental leap needed!

[+] pyoung|12 years ago|reply
Seems like you may be over thinking this. When I was in consulting, I didn't waste my time trying to track every 5-minute increment, the amount of effort and distraction that would cause would do more harm to the client (due to productivity loss from tracking) than anything else. Taking a 5-minute coffee break, or chatting with a co-worker for 15 minutes all gets lost in the noise if you are working on a project for multiple hours a day. Your level of focus (which is nearly impossible to quantify) is going to have a bigger impact on your productivity, and hence the value to the client, than almost anything else. So it makes sense that you should look to optimize for focus/productivity, rather than 'time spent sitting in front of computer'.

On a side note, there has been a lot of talk on HN about billing clients in half-day and full-day increments. You should probably look into that. At the consulting job, I basically took the total number of hours a day that I was working, and roughly divided it by the percent of time I spent on each project, which also worked for me (we were required to bill hourly). In the long run, it all tends to even out, and as long as your client is happy with the work, and the costs are in line with their expectations, they will not complain.

[+] rpwilcox|12 years ago|reply
I suggest you alter your assumptions of how many hours you can get in a day. If your monthly budget depends on you billing 8 hours a day, 20 days a month you are setting yourself up to be disappointed.

I know that, by in large, I can bill a 30 hour week, assuming I have a full time project. Between not billing for restroom or mental health breaks, random trips to Fry's for a new hard drive, etc... those tasks can eat up your calendar.

When I have little client work on the radar I assume I'll be able to get 20 billable hours a week in- the rest of the week is eaten up with Buisness development, meeting with new clients, estimating projects etc.

[+] infinite8s|12 years ago|reply
As patio11 and tptacek like to say, you should switch to daily billing.
[+] nraynaud|12 years ago|reply
That's strange, there is nothing I hate more than routine. But everything is this world seem made around routine and the expectation that tomorrow will be the same as today. Did anybody have the same aversion as me and try to tackle that?

How do you work without common everyday routine in the team etc.?

[+] chuckcode|12 years ago|reply
A lot of this article applies just as much to working at the office. Managing time, distractions and communicating clearly are important no matter where you are.

Does anyone have any links to articles that talk more about the tool for collaborating and developing remotely? With existing tools I find it pretty easy to get code written and coordinate remotely, but it it still seems very difficult to actively collaborate in real time remotely. I'm a little surprised at how hard it is still to do some white boarding with someone else remotely or just share my desktop with them so they can see a prototype easily. Gotomeeting and Webex are ok but cost money and are more geared to showing presentations than anything else.

[+] benji-york|12 years ago|reply
It sounds like you're doing Windows development, so this may not help you much, but it helps me. :)

I have a little open source project that lets two Linux users share a console session remotely. It is much like sharing a screen or tmux session but without all the setup. If you're interested you can check it out at termbeamer.com

I'm actively improving it and hope to release a version soon that will let the "client" connect using an SSH client and not need Termbeamer installed at all.

[+] gedrap|12 years ago|reply
I have found opposite regarding using email.

In 6 months, I have been using IM mainly first half, email mainly the second.

While using IM, I tended to talk more about doing than rather doing. It used to take hours to discuss things and chats which were supposed to be 15mins long happened to be an hour or more.

When switched to email, I became way more efficient. I spent more time on thinking about questions I'm asking, and questions to potential answers. This lead to 1) well thought designs 2) efficient communication 3) no distracting IM.

IM is still good for the times when you need to discuss something quickly. And I mean really quickly.

I guess it largely depends on the stakeholders/managers communication habits.

P.S. I am working solo with my boss