> #2: When done right, it makes people extremely productive.
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.
There are some things you can do for the environment. The main thing is creating boundaries so that your home life separates from your work life. So for example:
(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.
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.