Just having long conversations in chat tends to not be productive, but you need chat. Something like Slack is a good choice if you can't get everyone on IRC.
Somewhat still wanting for better "whiteboard simulator" type options.
Ultimately not having an office not only saves the commute, but it saves a lot of thought-cancelling interruptions. People say this is "collaboration", but usually it's just someone being noisy in another department talking about a football game, or someone repeating the required meme / pop-culture reference to hearing a word.
The advantage of having a great home office and being able to play your own music (or not to HAVE to play your own music into headphones) is pretty much priceless.
It does require hiring the right kind of folks and being able to communicate very clearly what you want.
It's especially valuable as I really believe being able to work on what you work on shouldn't be constrained based on where you live, because that's unfair to a lot of smart folks with reasons to not want to live in the half-dozen or so major tech centers. (Or someone gets bored working for the only major software company in town).
If you'd like to give it a spin: https://awwapp.com/
All feedback welcome!
Our solution for "whiteboard simulator" part is http://sketchboard.io that lets team sketch structural diagrams together in real-time.
It is not the same thing as working on a same room locally and use whiteboard since locally you can communicate a lot with your body language as well. But good remote team tools can give you something back.
edit: direct link to the app is https://sketchboard.me.
Yes, you do the Video calls and you've got HipChat and email. But there's something about being there down in the muck with the rest of the team that builds cohesion, camaraderie, and enthusiasm. I say this as someone who doesn't like crowds or lots of noise. It's also really easy to lose the pulse of the group being remote. I can't easily tell how morale is, what the team's general perception of our future is, and I can't head off issues that would have been obvious in person from 180 miles away.
Perhaps some of this is exacerbated by being a remote Co-founder, but I wouldn't do it again if I had the choice. I wouldn't hesitate to hire the right remote developer, but they probably wouldn't ever enter management or be a partner. You really need to be around each other because of all of those side conversations that happen outside of the meetings. That's where the best brainstorming, dreaming, and bonding happens.
Of course managing remotely is different from managing locally. Coding, and actually being a productive knowledge worker, however, really isn't. Luckily, managers already make a large multiple more than most others in the organization, so asking them to adapt and work harder to accomplish their responsibilities should be less of a big deal than dumping that kind of thing on lower level employees who area already generating far more value for the company than they're being paid for.
edit: Oh, and brainstorming is a terrible waste of everyones time and is worse than a total lack of it. Multiple studies have been done and show that brainstorming results in groups taking far worse actions than if they use other methods of coming up with solutions.
This guy is just looking to be contrarian to be contrarian. I'm not sure you're going to want to take his reply as potentially useful.
No, I think this is pretty far off. I knew it'd be different being remote, and I knew I'd have to work harder to be in touch and involved. Being remote ended up working OK, it just wasn't as optimal as being on-site. I missed being there on-site, and felt like I could have been more effective had I been. It wasn't for any lack of desire or effort, it's just a sub-optimal arrangement for us in particular.
The rest of your reply seemed to assume that I thought there'd be no difference in remote vs on-site (which is incorrect), so I won't respond to the rest.
It doesn't do anything for the camaraderie/happiness/emotional aspects mentioned in the article though.
Except that nobody else has a Surface Pro, so the only time I've tried it was with a friend with a Bamboo on the other end. Maybe someday.
Thanks for sharing your thoughts!
We've had to construct our hiring and on-boarding process to gauge in so many ways whether someone is a good culture fit and is also energized by remote working. We feel like there's no way to truly tell unless you work with them under a contract period, which is what we do for everyone that's hired. Generally we've found about 30% who enter this period aren't quite a fit for either remote or culture for us.
If you're hiring for a remote position, I think hiring people who "want" to be remote is obvious.
Hiring remote doesn't mean that you have to "embrace the isolation." There are plenty of people that do like the isolation, but I've worked with plenty of remote developers (I'm remote as well) that aren't isolated. We stay on hangouts/chats, work from coffee shops, meet up to work with colleagues/friends, or even work from someone else's office.
It's quite easy to meet other people in the same scenario (remote workers) that are more than happy to meet up to work, even if you're working with different companies. Just to have casual chat throughout the day or to bounce ideas off of.
I think "fitting will into the culture you already have" should be a requirement in general. Just because I worked on site wouldn't mean that I'd want to sacrifice culture anymore than I would if I worked remotely.
We just hit around 128 people, all remote, all over the world.
Mumble is a cross platform, open source VoIP application. Often used for gaming in a group (like Teamspeak or Ventrilo). It has the idea of channels (rooms, offices, etc) is very high quality, low latency and low bandwidth installed on your companies servers in minutes, always encrypted... and clients are available for linux, windows, os-x, android, ios, etc.
So you can have channels like "Bob's Office", "Working on XYZ problem", etc. People can come into these channels to speak to you and can leave them. It feels a bit like an office environment, I can pop into Jay's office, talk to him about an issue, and go back to my office. I recommend people setup Push To Talk, which really helps create a silent non-annoying environment. Basically, me and another developer can be working on an issue, but maybe not actively talking, but in the same channel -- and there is blissful silence... I don't hear the fan, the cat, the fact that his wife came into talk to him for a minute, etc.
When I start my work-day -- I start it by logging into the mumble server (or more accurately, moving myself out the AFK channel) -- and when I end it, I move myself back into the AFK channel. This is a realtime communication system, async work still happens... well, everywhere else.
It is easy to be on all day as an "in-office" experience... when I am eating lunch, I create a "eating lunch" channel under AFK and put myself there.... We find it works so much better than video chat (or really anything else), is far more casual (like an office) and far more fluid... it is like having an open door policy. Sometimes I might be in a channel that says "Debugging Race Issue Go Away" -- but it technically doesn't keep anyone out, it is a request.
Using mumble day to day basically changed the experience from mediocre to great for us. We still use everything else, but mumble is our real time core, and slack is our async core.
We're currently in private beta and I'd be interested to get your input on what we're building. We've got a quick walkthrough here https://www.youtube.com/watch?v=KV7HBXuhT7Q and you can signup for the private beta at http://speak.io
What codex are you guys using?
Oh and re codex, I believe we're using opus.
I wrote a webapp targeted for gamers to easily setup temporary Mumble servers (http://guildbit.com). So I'm sure someone can build a service similar to wrap the Mumble API for workspace users. Similar to Slack with IRC.
If anyone has question about the software or the project feel free to ask.
Stuff like "native look" on OS-X, some shiny features and ability to be easily pre-configured and shipped to people. So I could just give <person-X> a pre-configured little bundle and they just run it, it would generate the cert and do the wizard, but we would have stuff like default push-to-talk, a few default keys, etc.
We work on Mumble in our spare time and as such developer time is scarce. We try to focus on what we think most users are going to benefit from. There's a long "Would be neat to have X" list ;)
One goal for the future is to make Mumble more modular which should make creating such a specialized client feasible without much extra work.
If someone here is interested in C++ with Qt and wants to contribute to a FOSS project used by nearly 400,000 users monthly we can always use more hands.
Does the entire staff of statuspage.io feel this way? Sounds like this is more of a personal issue for the author of this post. There's nothing wrong with admitting working remote didn't work for you. Maybe the title should be "Reasons working remotely is difficult for me."
That is just one point out of several though so I thought it was fine to add here.
Also, the time I save on commuting is the only thing that makes being a mom and working work for me.
REMOTE DOESN'T WORK FOR GENERALISTS
and more this:
Some people just aren't wired for working remotely.
Nothing to beat yourself up over. And in my view not something that needs to apply to the full team - I've done a lot of work with a company where you get to choose whether you want to work remotely or not. Once every three months the whole company meets up for a couple of days and in between occasionally people will choose to meet up for a day to kick a project off or wind it up. Some people work full time in an office together. I think it works brilliantly letting people have the choice from a developer's perspective, although I can think of a few project managers that perhaps didn't get it.
Full disclosure, I work remotely and it's by far the best decision I've ever made in my entire life.
So to address a few points. Collaboration to me is when a group of people, at least two, are working on a project together. As a designer this is one of the core aspects of my job. I'm constantly working on things with engineers, founders and marketing people. Therefore I feel that I have a solid idea of what it takes to collaborate efficiently.
At my previous job, that was location dictated, collaboration typically took place over chat. We did have meetings to go over larger ideas and aspects of the project, but typically critiques, pair programming, decision making all took place over chat. Even though we were in the same room we made it a point to communicate over chat because one: you need to respect my space and not interrupt me just because we're in the same room and two: we have a transcript so we can reference it later.
When I decided to leave that job as a developer and pursue a career in design I decided that I would look for remote work only. I firmly believed that everything I did on a daily basis in a single location could be done remotely.
The biggest point I want to make in this post is that tools are essentially irrelevant. What matters most is the management of people on remote teams. When you hire remote employees they need to be both self managing and self motivating. You need to make them aware that collaboration on a remote team is what each individual member puts into it. If they aren't documenting their work each day, if they aren't participating in daily scrums, if they aren't contributing to chats, if they aren't volunteering to review PRs, etc. it's just not going to work out.
For me, and many of the folks I work with, remote work is about freedom. The freedom to build your own schedule. The freedom to work on something early in the morning or late at night, in the comfort of your own home. The freedom to walk to a coffee shop and work from there. The freedom to forgo that commute. The freedom to be more productive. The freedom to spend more time with your family and loved ones. The freedom to just build great products without the hassle of office politics.
As mentioned below Screenhero is really great for 1v1s (they plan on adding team collaboration early this year).
For reference I wrote a post a while ago with some tools and methods we use at Catalyze. The only tools we've added to the list that aren't in this post are trello and teamspeak.
- less disruptive to others in an open space
- both have a good full screen view of the code
- both can use their second monitor to look things up or try something during the session
- it's easy to switch from one "master" computer to the other (eg. I fix something, commit, and we continue the session on the coworker's screen, on the environment he's comfortable with)
None of these things are exclusive to doing things remotely, but they're included by default.
While I prefer this for pair programming, I find coaching works best in person, where body language (understanding), off-screen talking and drawing stuff on a piece of paper, are more important.
This wouldn't work for folks who work in an IDE though, since it's terminal based.
One programmer shares screen with another programmer.
Both discuss what they are doing, what they should do.
One programmer codes. Another programmer monitors coding for bugs and sub-optimal implementation.
Communication tool: Skype (or possibly Google hangout?)
I've been a part of 3 teams, that each were rather different, with significant remote reliance. It was great each time, productivity and collaboration, developer happiness were all at highs. Maybe he was just working with the wrong personalities and timezones, since two of the big problems he cited were "work-life balance," something that is very personality oriented, and another being East-West coast related.
Unfortunately it seems, people who are against remote work typically just want employees to invest more into their product, as too much independence for the employees is viewed as a bad thing. This is always a factor to keep in mind.
The ability to manage work-life balance when working remotely is a very rare ability, and one that takes practice to develop. The same ability is required of startup founders. Those who can define structure for themselves, even without external instruction, and then execute within that structure, will always succeed before those who cannot.
Because this ability is so rare, and necessarily present in startup founders, we can logically assume that a higher percentage of startup founders have the ability than the percentage of others who do. Or, at least we can assume that startup founders are the most well-practiced in this ability to execute within their own structure.
This means many of (not all!) the people who are best at managing work-life balance (a requirement for a productive remote employee), are already founding startups. So the best remote employees are selected out of the hiring pool if they decide to found startups instead. This leaves you with a plethora of less-competent potential remote employees, who are not as skilled at managing their own work-life balance as the best of them.
A risk when hiring a remote team is that you recruit too many employees who cannot properly manage their own work-life balance, and therefore suffer productivity losses. I would imagine the effect compounds as you hire more employees sharing this weakness.
When your local employee commutes to the office, I open the lid on the work laptop. When your local employee leaves the office to go home, I close my work laptop.
If I'm needed outside hours, which blessedly is rare, the message needs to go to my phone either way.
I guess I can see why some folks would find the balance hard in the "life/fun" end being too heavy and fail to drag themselves to the keyboard for 8 hours a day. I'm glad I didn't, coz offices really suck for concentration and headphones all day are horrible on your hearing.
The key phrase there is "after you finish work". For some people, that point is not clear. Also, for some companies, your work laptop might be your laptop.
"I guess I can see why some folks would find the balance hard in the "life/fun" end being too heavy and fail to drag themselves to the keyboard for 8 hours a day."
For me, this is one of the things that I was worried about. Currently, there isn't a good place conducive to getting work done in my home.
Home-work requires a home-office. At least a bedroom with a desk you don't mind never-leaving. I live alone, so it's easy. Working from home when I was 23 living in a shared house would have been way harder, indeed.
On the other hand, I think besides the commute itself is the freedom you get from not having to constrain yourself to living in places where the commute is doable. I work in downtown Seattle and I would love to move to the suburbs but I'm not sure it's really feasible to spend 45 minutes on the bus to get to work.
In otherwords, it was a wonderful mix of everyone in the same office, remote teams, and working from home. Based on this, I learned I really prefer having semi-regular meetings in person (things like kick-offs and 6-month project retreat weeks), regular tele-cons (weekly all-project-hands), and the rest of the time I was able to work on my own from where ever felt the most productive that morning. On those days non-synchronous email communication worked splendidly. There were co-workers who really preferred only ever working in the same location as the rest of their team, so we structured teams that met that preference. There were other co-workers that were perfectly happy with completely remote work (in fact, I never met, face-to-face, three of my regular co-workers).
By and large, it really did boil down to preferences, although I did note that my co-workers that preferred in-person projects were the ones most likely to interrupt me - and be completely oblivious to the fact that they were interrupting me! My remote coworkers were much less likely to interrupt me, check to see if it was a good time when they did, and apologize for the interruption.
Collaboration over the wire is slower than collaboration in person and less enthusing, but it's also more considered, more precise.
We each have different styles I guess. Introverts likely prefer the considered precise way, extroverts the enthusiastic fast-paced way.
People who remote-work need to have a good social life outside work, certainly. I'm glad I've got that, coz remote work suits me so damned well.
We use Google hangouts and tmux for most of it. If I'm working with certain people, we end up using ScreenHero.
You learn to say things like "you take over" or "I'm taking over" to make sure the other person doesn't try to type at the same time.
Remote pairing took me all of a few hours to get used to and it's been very productive.
As a lead for a team, I have to take meeting minutes and it's been a dream to just mute my mic and not have people get distracted by typing, coughing and other noise while they are speaking.
I can share more about my remote pairing experience if you'd like. But I think the above covers it.
It looks so much like a game of "Cluedo" I'd be tempted to try a murder to see how it worked. "It was Thad, in Patrick's office, with the pistol"
Seems odd to use a location metaphor, when online you can be in more than one place at a time.
If you can give me any timeline till a linux version I would appreciate it, firstname.lastname@example.org
There's a web version under development right now - it should work with Chrome and Firefox.
"Unlike the web, we're centralized so we control how much value we capture, much like twitter"
Truth is I don't really like being in the seat of pair-programming anyway. I like to be free to make incredibly stupid mistakes while I feel my way to an answer and someone shoulder-surfing me inhibits my thought process as I wonder what they'll think of it rather than just the "it" itself.
It's okay as the shoulder-surfer though, especially when training someone.
I'd be interested to see how many other of the team are unhappy, and more to the point how many are perfectly happy with the current situation.
The main reason is really that we feel like we'd be more productive if we were together more often.
Now I work in an office and work from home at least one day a week, sometimes more, and the freedom to work where I feel like working that day is quite nice. Sometimes you just don't feel like doing the commute, or you didn't get much sleep or whatever, and it's fine.
I agree the tools are not very good - using Skype-the-app sucks, but Skype is also the only video-chat solution I've tried where the audio isn't terrible or echo-y. (Sometimes the echo situation turns into straight-up feedback.) Actually, they all work fine for one-on-one video chatting, but when you start adding people to the call, things get ugly quick.
Wouldn't want to miss it again.
I have two kids, 2 and 1 years old, and the office was the far noisier environment. Constant nagging, "Can you just for a moment" interruptions and people playing foosball (or whatever you call the tables on which you can waste a lot of time shouting and kicking hard plastic around) in the next room... Not for me.
Home does have its challenges, certainly. But for me it's the far better trade.
Now, communication and tools: I prefer less. We're a Windows/MS shop, so it's Office 365 (worst. thing. ever. ) and Lync (sad..) for us. I'd prefer mail, in a decent way, and a reasonable chat (IRC would work fine, but HipChat et al might work just as well). I have a corporate phone, that is with me all the time. People _can_ reach me - in theory - 24/7 with that.
That's enough. I have no need in this job for sketches on a virtual whiteboard. I couldn't care less about conferences (aka discussions with > 4-5 participants). Phone's fine, mail is for persistence and tracking, git is for source code and .. that works pretty well.
Sad to hear that it didn't work our for StatusPage.io, but I'm convinced that this model can work perfectly fine.
1: Remote as in 'Less than a single digit number of days in the office per year', although the distance to the Real Office™ is manageable at about 90-100km one way, same country.
2: WSDL files? Can't open those in OWA for example, because everything that looks like XML is obviously 'scary'. OWA 'protects' you and according to our IT Office 365 doesn't allow you to fix that. WSDL is just one example of gazillion, I should by now create a template for the "Sorry, dear customer. Our mail server is batshit crazy and acting up. Can you zip that stuff/share it in other ways?" mails I send regularly. Your company/coworker uses s/mime? Forget about using OWA, it will either throw around scary warnings or .. just refuse to open the message completely.
I agree with the whiteboard part of your comment, but don't feel that I stated something to the opposite effect in my original comment?
It doesn't work for teams where the Project Manager/owner/whoever is client-facing doesn't like to sit down and write out proper specs.
There are some teams that can't work remotely merely because the guy who knows what it is all supposed to look like doesn't like typing, and so there needs to be an environment where people can "drop in" on each other's work areas.
That's not a great thing anyway, but it definitely doesn't work when you aren't all in the same place, or even timezone
The third one is a social issue, and one which can only be solved through experience. The problem is not that human beings are destined to struggle with work/life balance in this situation, but that they have no experience to draw upon to learn how to do that.
The major problem here should be pretty obvious when looking at that list - the pros RADICALLY outweigh the cons. That 'no office overhead' thing? Just that alone benefits your organization more than all of the cons combined detract from it.
I solved the problem of being alone by working from a coworking space where I shared an office with three other people, none of us actually working together. All the benefits of being around people, but none of the downsides of being stuff in a small box filled with office politics and whatever other BS is going around that week.
I would argue that a lot of engineering work can be done by remote teams; but defining your product, your market, your business model... all those need to be done by a team in the same location because remote working stifles creativity. All those interruptions that destroy productivity in an office are also great when you're working on a creative task - by looping a coworker into my creative process to help vet my ideas, the work product I produce as a whole is better. Inspiration strikes at all times, so it's nice to be able to just drop in on someone and discuss a topic.
Many companies reach a point where creativity isn't as important as execution; and at that point I think remote teams are appropriate. OP discovered the hard way that when you're in the ideation stage, it's hard to have a meeting of the minds unless those minds are in the same room. Again, I don't think it's about remote teams being inherently good or bad as much as they aren't appropriate in every situation.
What it sounds like to me is that they don't have someone doing the communication. I get all the bummers that is no face time, no hallway stuff. But we are systems programmers (he said generalists and I think it is sort of the same thing, everyone does everything, there aren't any narrow roles) and we have made it work.
Some ramblings on what works for us.
IRC is big. We're all on it, if there is no chatter I know something is wrong.
Weekly staff meetings. I hate meetings but the team needs to sync. So do those. Maybe even twice a week.
Phones. So much phone, you have no idea.
This is perhaps the biggest thing. Here's how we do design. It's all on the phone and it is all someone talking about a picture. Then the other person talks about the picture. Then the other person. What I mean by picture is we're trying to solve $PROBLEM and we have a proposed $SOLUTION and we talk about the solution. Someone leads because they believe they have a real solution. So they articulate that and the next person either articulates it back or proposes a change. When you go around the circle and everyone says the same thing, you are done. Start coding. Don't code before that, you need to have all the people seeing and saying the same picture.
We've made it work. It has not been easy and someone needs to step up and be the communication dude (that was me). That person has to see everything that is going on and know who needs to know what and make sure they either get the info or talk to the person who can give them that info. It's a lot of work. Many, many hours on the phone. But it can work, we've been doing it for 15 years, we gave you distributed source management as a result, all that work was with a team that didn't live in the same city.
I would not give up on remote teams so quickly, they can work.
Get all the company together to a trip to Hawaii each year.
I'm sure this can build camaraderie and morale, and I hope someone gives it a try.
There's still an issue with timezones but I think the communication/camaraderie problems will be fixed in a VR workplace. This gives you all the benefits of remote and mitigates many of the downsides. If the downsides are sufficiently depressed then many more teams will be able to be remote and distributed and that may have a dramatic effect on society.
May be this does not have to be an either or proposition. For some people remote works and others are energized by being together with people. It varies depending on their role as well (as you've stated).
In any case, let me be the first to welcome you to Denver! There's no other place that I'd rather work non-remote. ;)
I can see how remote teams can work for a couple of super passionate startup founder/employees but if it's in a highly political giant enterprise it never works.