I've witnessed second hand the anti-pattern where a company has lots of remote workers, and fails to support them. You quickly get a 2-tier system where only the workers who are in the office actually know what is going on. This can seem to work for a while, but there is no shortage of problems.
One of my current contracts is different. One of the founders has been remote since the beginning, so they pay close attention to this type of issue. They have a number of remote workers (including me, very much part time) and it seems to be working out quite well for them - because they have the necessary support infrastructure in place.
I'm just curious what we could do beyond that to support the remote people.
In short, make sure that everything is accessible for people who weren't there. And keep the habit going always.
Treat the remote workers as if they are local deaf workers. How would you accommodate a deaf co-worker? You'd write down a hell of a lot more stuff in emails, documents, wikis, blogs, etc. There's huge value in written documentation - and keeping it up to date - that goes well beyond the immediate "get stuff done ASAP!" needs. Every time a new person comes in to the team, they have a record of documentation, mailing list archives to sort through, revisions of docs to learn from, etc.
Somehow all the same tools and techniques that make collaborative development possible and popular in the open source world tend to get shunned in corporate cubes.
Learn with the open source people, they've been doing this for "centuries" (ok, for decades)
The biggest advantage that no other (common) system has mimicked is simple: chat rooms.
But it's not chat rooms, it's because they are:
Easy to identify
Free to create
Easy to participate in several rooms
Irc can be used by bots easily (this is very useful)
Anyways the point is moot - I don't use either. Gmail is good enough for my purposes.
We try to refer to code exclusively by commit hash, and issues exclusively by ticket number. Commit messages often refer to tickets, and our ticketing system provides notes on dev progress and further commentary on (sets of) commits. We use email for archive-worthy discussion and Skype for instant messaging and calls. We have a weekly ~1 hour dev meeting. (And we're fully insulated from direct customer interaction, with wonderful management and (on-site/in-the-field) ops people, who enable us to concentrate on design, implementation, and process.)
I generally don't take them up on the offer as driving for 2 hours (and much longer on bad traffic days) on a regular basis feels like a waste of time when I don't need to do it.
It's funny because I'd much rather work for the companies in drivable distances if given the straight choice. I love to be able to get on site for meetings of if I need something physical done with hardware but alas its not to be. :)
A company that had many remote workers would crash and burn if it didn't have many other qualities (good management, processes and developers) to support the remote workers.
The biggest issue for most employers is trust. "Is my employee just watching the TV?", is the first thought that pops into the employer's mind. As a programmer, the work is largely quantifiable, so the issue of trust is muted. My employer can see exactly what I produce. It is plain to see in every check-in to source control.
I have actually started renting my own office just round the corner from my home, so that I don't have to work from home anymore. I prefer the distinct separation of work and home life. My employer is in a different country if you were starting to wonder why I didn't just go to their office.
Choice quote and very true in my exp.
I've been remote working for about 5-6 years and I use that same argument to get jobs. Hiring, supporting and listening to your remote workers is a great way to validate you have sufficient processes in place that all new staff who come in can get up and running with minimal fuss.
I've never looked at figures, but I'm willing to bet this'll reflect on churn rates too.
While it certainly is a good thing to allow and support working remote, I cannot deny heavy disadvantages.
We discuss many important thing over lunch and especially long-term goals for our project are discussed over a coffee.
Additionally I find it seriously annoying to communicate over Skype / Phone / Messenger / whatever if a peer needs help with something. I love moving my chair to the next table and think about something together. I do not get that feeling at all when I'm communicating over distance. I am NEVER annoyed by someone asking for help on a tricky problem. Instead, I LOVE thinking about it. However, being ask for help via Skype messaging always annoys me. I dislike typing but most of all I can't stand waiting for a response because the other side is doing something besides our conversation.
I'm fine with my peers working from home, but I am incredibly glad it's usually about 1-2days a week and not all the time.
I work remotely most of the time but it has always been within the UK, I'd like to broaden my horizons internationally but keeping different hours to the rest of the team has always put me off.
Remote work I have mixed views of, because it's obviously a good thing in the abstract, but I also think there are major benefits to having people eat lunch together and discuss ideas through informal channels. Also, having a culture where some people cannot participate in those benefits, but others do, is, I think, problematic. I wouldn't be surprised to hear that completely distributed companies do better than semi-distributed ones. I'm glad to see it becoming more common, though.