Management A policy beating

Remotely

Anyone who’s worked with me has stumbled on my policy on remote employees. The short answer is, “No”. The longer answer is, “The team is moving far too fast for you to miss the various hallway conversations which randomly point us in different directions.”

Software is art. It’s team art. When the team collectively decides to start painting blue over a round of stiff drinks, you, as a remote employee, are going to look pretty silly come Monday when you’re still painting red. It’s this communication latency that troubles me. I’d rather freely communicate rather than worry about whether or not I’m freely communicating or not.

My remote employee policy has been taking a beating for years. First, we, as a software development community, continue to spread out. It’s entropy at work and it’s being driven by insane home prices as well as ever improving means of high bandwidth communication with folks on the other side of the planet. Combine those facts with my impression that the population of qualified developers outside of the US is exploding and I’ve got a policy problem.

Ok.

I’ll adjust.

In fact, I have to as an employee recently made a run for the Northwest and there was no other option than to let him work remotely.

I’m ready to learn and that’s today’s question, “How do you, as a remote employee, stay in the loop?” The converse, if you prefer, is, “How do you, as a co-worker or manager of a remote employee, keep everyone on the same page?”

So far, I’m trying the following:

  • Created an internal IRC channel where the team hangs for informal conversation
  • Include the remote employee at staff meetings via iChat video conferencing. It sounds lame, but throwing the remote fellow on the 30″ flat panel gives a solid visual cue that he’s there

What else works? Other tips? How are you making remote work?

35 Responses

  1. We don’t have any formal policy, but I’ve generally found that an internal IM server (we’re using Apple’s 10.4 Jabber implementation) does wonders for in-house communication, especially between locations. Very easy to pile into a conference room there when there’s a crisis, lots of robust clients, etc etc.

  2. Trey Boudreau 11 years ago

    I’ve worked remotely for two different companies for the last 9+ years. At both places we had (have) an internal IRC server and we expected engineers to hang out there. This, along with a weekly “Team I/O” meeting has worked very well for me.

  3. I think the secret here, which almost no one ever tries, is to switch completely to forms of communication that work remotely for a while (a month or two) and from then on have days where you do that.

    The tools (IM, shared whiteboards, etc.) are really good enough to foster the communication that’s needed, but no one has instincts for using things (other than IM, which seems to have gained an instinct foot-hold). Without practice, the tools don’t get integrated. You really need to wind up with everyone having a web page, or buttons, or elisp, that can bring someone into communication as fast as a phone call or hallway trip. That doesn’t happen if there’s just one or two odd-people-out unless someone makes a conscious decision.

    Hallway meetings are less commonly random encounters than someone trying to hunt someone down, and often waiting. Given the amount of telecommunications gear on people’s desks, the whole thing starts to look a bit silly. It’s not necessary as much as habit.

    In any case, forcing the issue and making everyone use the tools, even if they’re in the same building, will make the strengths and weaknesses clear, and give people a better appreciation for how they’re interacting with, or not interacting with, remote employees.

  4. Erik Scrafford 11 years ago

    My personal experience on this is that 100% remote doesn’t work well. The employee becomes too disconnected from the reality that exists in the office and, depending on the person, a bit wiggy from not seeing people. Remote people need to come into the office atleast once a week, preferably twice.

    Remote work must be offered on an all or none policy. If one person is special and they get to work remotely, they will be resented by the rest of the team, and the rest of the team assumes that the remote worker is jerking off in front of the tv all day. Once everyone is allowed the opportunity to work at home, it all smooths out.

    As for communication, everyone must be on IM all the time, in office and out. The remote employee should have been an office employee for some time already so that they’re comfortable chatting with everyone else on the team. It’s really hard to build the relationships necessary remotely, but easy to extend prior relationships. This will show up the longer the employee is remote, as more people get hired.

    On the upside, for employees that it works for, you will never get them in a more productive state than working in their private office at home. No distractions, no reason to go home; they’ll slave away all day and enjoy it. Some people will continue to prefer working in the office 100% of the time (no private office at home, they want work/home separation, or they just prefer the office environment).

  5. A few useful tools:

    * email

    * Jabber server with Coccinella clients (allows for IM with virtual whiteboards)

    * Subversion for code control

    * email

    * Trac for Wiki, issue tracker and SVN browsing

    * A project tool (dotProject) or at the very least a forum for less urgent communication

    * clear and concise development standards (code style, naming system etc)

    * did I mention email?

  6. I agree with a lot of things said above. One of the things I think is key is that once one of the employees/team members works remotely, everyone needs to go online and handle communication online. Once you do that, all the hallway conversation moves to the IRC-channel and IM-windows and it should work out. From what I’ve seen, the remote approach can be VERY good, the tools are incredibly effective (I’m thinking of the OSS stack, Subversion, Trac, an IRC-channel with a bot interfacing to the Trac instance, Jabber stuff) and they can make the team incredibly effective.

    One very big advantage that I’ve gleaned from these kinds of communication is that there are Archives. For hallway talks, there are always going to be people that weren’t there, who have to depend on second-hand accounts. With chat, there are logs, and logs are the truth and can be read back by those who have missed them. This is why I rather communicate to clients using email then using the phone.

  7. Disclaimer: I’m a sysadmin and not a programmer.

    Remote 100% has only worked for me when the culture of the office permits it. Sometimes everyone is comfortable with IM, email, and online chat. Other times, key people are unable to communicate that way. In situations where an important team member can only effectively communicate in person, the remote worker will always be at a horrible disadvantage. My personal prejudice is that this is the fault of the one whose communication style is limited, but you have to adjust to the more useful team member.

    At workplaces where everyone is comfortable with online communication means, we’ve used them already in the office more than in person meetings to start with, so we knew that someone working remotely wouldn’t be a problem.

    I feel ineffective as a 100% remote sysadmin at my current gig because I’m underinformed. The people with the necessary information can only communicate by impromptu desk visit. As much as it’s really their limitation and not mine, I know what I would change were I the boss, and I’d be the loser there.

  8. I work on a team where several of us are in Colorado and several in California. Two of the helpful things we’ve done are use IM for hallway conversations and send emails describing whatever we accomplish. The latter helps us keep our forward momentum going. We have a lot of interaction and a project manager who keeps us on our toes, so it works out well.

  9. Email is almost the only solution when coworkers are over 10 time zones away and I’m not fluent in their language. They got very interested in having videoconferences, but we only did that a few times, sticking to evening phone calls and painstakingly written email.

  10. Scott Bruce 11 years ago

    Google talk, a good headset, version control software (subversion) and a wiki for the win.

    And maybe point the help link on your wiki to the front page of jerkcity.

  11. As a all-in-one collaboration/communication platform I haven’t found anything that even comes near Groove (soon to be part of MS Office family since Ray Ozzie sold company). Brilliant for remote staff as all work thats done off-line is automatically synched when they next go on-line.

    Has extensive API so you can build/customise to heart’s content.

    The PDF (Workspaces Overview) on this page shows how we use Groove.

  12. I’m a brazilian programmer working remotely for an american start-up. Here’s a few things that come to mind: constant IM, IRC, Skype, SVN/Trac, mailing-lists, reliable you-can-usually-reach-me-any-time cellphone and here’s the killer: pair programming with VNC.

  13. With difficulty – 100% Remote simply doesn’t work. You must have at 2 days in the office, just in order to foster some minimal inclusiveness, team jelling and all that other good stuff. However, most of those things really do take a beating when one or more members work off-site.

    When employees simply must work off-site for some of the time, I found the following to help:

    * IRC with everybody in the team;

    * The off-site worker should have very clearly defined and well structured work to do that requires minimal interaction with other team members;

    * frequent, scheduled back-to-base meetings;

    However, other then the very occasional “Crunch-time-is-on-and-I-have-to-get-my-head-down-to-get-shit-done” events, remote working doesn’t happen much in my team. Works better for all involved.

    Having worked in many “remote working”, “hotdesking” and other grotesque schemes (usually involving some consulting job or other), the key issue you will find is isolation from the team, and significantly reduced team productivity. All involved almost always end up on the losing end of that deal.

    Cost of living near the office is an issue here (London) as well, and I tend to make a case to HR for a cost-of-living adjustment in wages, and offset that against the provable quality and productivity increase you get from a well running team. You may have read it already, but “Peopleware” from DeMarco & Lister is a good read on issues around team productivity etc.

  14. I worked remotely from a development team in Sweden for about two years. Aside from all the things that people have mentioned above (i.e. IM, Email, Video Conferencing) the two biggest issues I encountered were:

    1. The tools must be designed for disconnected/low banwidth. Make sure source control, bug tracking and document repositories are web based or something similar.

    2. You’re going to get an Us-and-them thing – get used to it. When you don’t see people face to face all the time you forget that they are human beings. You can keep it to a minimum with plenty of social events. Other than that, to stop things getting too nasty, think carefully about what work items you give to remote employees. Either give remote employees standalone components, and make sure the interface is well defined. Or, pair remote people up with some else and make them work together very closely. Somewhere inbetween you run the risk of having people blaming each other for why things don’t work.

  15. I have a couple of thoughts:

    1. Be prepared that the employee may hate it and quit. I’ve seen this happen. Telecommuting isn’t for everyone.

    2. Do your best to keep the remote people involved. If possible, bring them into the office a few times per year and arrange some fun, out of the office activities so that people can bond. When you’re working remotely, all of your contact tends to be business, and you miss out a little on some of the social aspects of work.

    3. Put photos of the team out on your corporate intranet. This is vital if you don’t use videoconferencing. Even though your employee may have started working in the office, people will come and go after they leave. It’s important to put a face with the person on the other end of the IM window/speakerphone.

    This can work really well, but the people on both sides of the equation need to put the effort into it.

  16. I work from home four days a week, and primarily use IM and e-mail to keep in touch. We also have a fairly-well-used intranet for documents and schedules and whatnot. I’m not sure things would work nearly as well without my one day/week (sometimes more during heavy design phases) in the office. We do have developers who only come in once/month or so, but generally they end up being A) mostly out of the loop, and B) necessarily assigned to fairly disconnected pieces of owrk.

  17. I work with 2 remote employees – one I see maybe one day a week, and one half a country away I might never actually see. In addition to all the usuals mentioned so far (good CM, websites, instant messaging), I’d like to add three tools, and some ceremony.

    Skype: Sure you can use a phone, but when you are collaborating, you need your computers anyway. Skype just seems to ‘fit’ better than dealing with a phone.

    VNC: Two good ones are TightVNC and UltraVNC. Lets you work collaboratively as you share your desktop. A shared desktop with a voice connection is almost like pair-programming.

    Some bug-tracking/task-tracking software. We use TestTrack (because it is what we happen to have a site licence for), but anything like Bugzilla or Scarab should be fine (which brings me to my next poinr)

    All the tools won’t make a bit of difference if you don’t plan the work though. Things just have to be planned a little better with a remote person – think scrum-like meeting (What have you donne, what are you going to do, what resources will you need), but keep track of it in the issue tracking tool.

  18. I’ve been working remotely with one small company for about 9 months now, and things have been working pretty well. I live about an 8 hour drive away from the rest of the team, so the ‘1 day a week’ office visits suggested by other commenters simply won’t work for me. I’d worked with the company for about a year before I moved out of town, and the team’s pretty stable, so I know everyone that I work with very well.

    The key, for me, is that my work is relatively isolated. I work on an essential component of the system, but it’s an ‘endpoint’; it only communicates with one other piece, and has very well-defined input and output. I just need to keep track of large overall design changes, and those don’t happen too frequently. They fly me out to the office once every month or 2, depending on timing, to catch up on these large decisions.

    I’m happy with this arrangement, and so is my boss, so I have a feeling this will continue for at least the near future.

  19. Working in a large company is a little like working remotely… there’s always something that you missed. In addition to all the real-time tools, I think if everyone takes a minute or two at the end of the day to blog their work it can make it much easier to stay on top of rapidly changing stuff.

  20. I tend to work in ad hoc teams dispersed over wide geographic areas and placed in two or more corporate cultures (not counting my own).

    My work is mostly project based, I work out of my studio.

    I keep these projects together using two main tools. Basecamp and iChat.

    Basecamp. Basecamp is your write-board, project tracking, milestone, to-do list, and email. It is excellent. You should know about this already. http://www.basecamphq.com/

    One afternoon with the whole team and you’ll have it put together. I’ve done remote instruction using iChat video on how to get it going. But it doesn’t take long at all.

    For the more informal stuff, keep an IRC channel or an iChat open constantly. The informal stuff is what you miss by not being in the same meatspace as your co-workers. So you need to simulate it. IRC and/or iChat is a good way to do this.

    Good luck and happy growing!

    g

  21. Benjamin 11 years ago

    I work in a research setting in graduate school with about 6 other people in a mostly open area. The lab has a couple projects running simultaneously.

    For better or worse, we don’t have any cube walls or partitions. Part of the reason for that is that our shared advisor really wants to foster lots of collaboration, so that students, on one to two-year stints while getting a degree can work together really easily. I enjoy it, but am also very exhausted sometimes after spending the whole day in the lab and getting next to nothing done, because the day has been spent talking (mostly about work) but also the unavoidable small talk when you are next to each all the time. Kind of like having a bunch of cube-mates I suppose. Even without verbal/audio distractions, just the visual distractions create this “gopher-mode” where it’s impossible to ignore people’s comings and goings.

    When stuff hits the fan and things need to get done because of a rapidly approaching deadline, it’s hard sometimes to tell others that you just can’t talk to them right now. I’ve found through others’ and my own experiences that it’s just better to disappear and go home (which is nearby as we’re at a university) and get things done. It’s amazing how your productivity goes up when you’re at home away from the lab.

    A colleague recently was very successful with a productive stretch at home from 9am-noon and then would swing by the lab in afternoons for fire-fighting and collaboration discussions. Although that’s not really feasible I think if you live too far from work, where you might as well not come in. Two days at home and three at work in a week could be a good compromise for sanctuary from disctraction-insanity and enough to maintain that at-work presence manifested by those hallway meetings.

    As for remote-communications tools, I also think there’s nothing wrong with using the phone as well, in addition to your mix of IRC/IM/email.

  22. We’ve been engaged in a lot of remote work for the last few years. For us, process transparency and frequent communication has been a key success factor.

    Our business (http://www.odesk.com) is all about remote work and we eat our own dog food.

    80% of our development and IT folks are remote (and as far away as 11 time zones).

    We do a lot of chat and developed our own technology that tracks developers tasks, activity level, takes desktop screen shots, and adds webcam shots. We also use voip (skype/googletalk), bugzilla, SVN, and mail lists.

    We think it’s working pretty well because we have a few hundred customers and about 1000 global developers who also use our paradigm.

  23. Background: I currently work full time remotely and we also now have 5 other people who are fully remote developers.

    What I’ve seen in the past is that the reasons that remote people fail is not because of the technology – heck, I was doing remote work back in the days of 9600 baud modems, but rather because of the process (or lack of.)

    The tools we use daily (IM, IRC, Wiki, VNC, Skype) all allow for the same scheduling flexibility for “in house” developers as remote developers. What is different is that the teams all know that communication is the key.

  24. Jason Williams 11 years ago

    We use a combo of wiki, SVN, FogBugz and Groove for communications. Binary heavy things (like PDFs and Word func specs) and chat we do in Groove. The wiki we use like a big scratchpad that vacuums up all the little knowledge the team needs. Its so damn easy, even lazy programmers in their skivvies use it. 😉 SVN and FogBugz speak for themselves.

  25. There is an upside to working remotely! It’s F O C U S. Focus is required for software productivity! It’s something that office culture doesn’t effectively cultivate. Verbal in the hall congeinial task delegation maybe a lot more fun than email. But is it efficent? Yeah, it’s really efficient for a manager… For the receiving party in can be very defocusing and you’ll probably have to ask for things twice. Sometimes your beloved individual contributor will not receive the same focus nirvana for the entire day – and you might as well of given him the day off rather verbally assigned another task.

    Ask yourself this question, at what hours of day does the most code get checked in? When are documents completed? Next, ask yourself if you ( the manager ) are in the office when that stuff is happening…

    Focus can be used by the remote worker as a serious advantage. A remote work life can be created with minimal distractions, and remote workers have a productivity advantage since they are divorced from all of the typical office distractions.

    However, this can go the other way. Remote workers can fall victim to flexibility and wind up being ridiculasly unproductive. This however is pretty easy to determine. An unproductive remote worker sticks out like sore thumb in a productive group. If you don’t see results from your remote worker, or feel out of touch, you are probably working with a remote worker who isn’t very good at working from a far. It’s probably not you, so don’t take it personally! Instead just send him on back to college and find somebody local.

    As a far as communication is concerned, I’ve found that the key to staying in the loop is not skype, jabber, a wiki, a mailing list for commits, or really any tool at all. The key is to actually show up in the office at regular interval of a day or two per week. The goal of these visits is primarily to gather information. This allows the people who are primarily verbal communicators to get their message across, and allows managers the arms length type interaction and attention they require.

    If you can always count on your remote employee to show up on a particular day, you’ll probably be much happier with the situation. Rather than setting up a corporate jabber server, I suggest you start talking to your facilities & travel departments to get him a place to park and a plane ticket to visit you in you in the magic kingdom at least twice per month… After he returns from the magic kingdom he can spend two weeks in solitude churning out the goods with clear focus back up in the northeast…

  26. I’ve been working from my home on the East coast for companies in the Valley for 9 years. People have pretty well covered the technology in this thread, but I wanted to add a couple of comments:

    – IMO, VNC+Skype is even better than in-person pair programming, because you have two keyboards and two mice. Once you learn each others’ rhythms and get the hang of not fighting each other, it’s much easier/quicker to switch control back and forth this way than by scooching your chairs around.

    – There is definitely downside as far as decreased interpersonal bandwidth. And unfortunately, it’s largely on HQ’s (i.e. the manager’s) shoulders to keep the remote people in the loop, though they also need to be really proactive communicators. If you’re not getting the communication you need from HQ, it’s up to you to let them know.

    – HOWEVER… for those who enjoy (or at least tolerate) the lack of a work/home separation, there is tremendous productivity to be had in the flexibility and always-on-ness of working at home. I work when I’m productive, and I don’t work when I’m not, and as a result the company not only gets more hours a day out of me than they would in an office, but they’re my BEST hours as well – many of which are outside of conventional office time.

    There’s a big difference, I suppose, between remoteness of necessity (geographically far away) and remoteness of choice (“I’m working at home today.”). I’ve always been the former, so I can’t really speak to the latter.

  27. P.S. to Andy: If he was really in the Northeast, then twice a month would be too much – he’s be spending 4 days a month just getting to and from, and he’d be jet-lagged ALL the time. After many years, I’ve determined about one week every five to be optimal for my situation; YMMV, of course. Anyway, Rands’ guy is in the NorthWEST, in which case twice a month is totally reasonable (maybe for just 3 or 4 days each instead of a full week).

  28. treborinato 11 years ago

    My experience has taught me that only exceptional indivduals, for example, those “free electrons” that you have written about, would be worthy of a remote gig.

    We had three members of our team work remotely. When this started, two were about as good as any other member of the team, but in a short time, both managed to alienate themselves, despite all the sorts of tools that have already been mentioned. Why? One person could have been in the office every day, but managed to work out a deal with a former manager who later left and was able to somehow grandfather the agreement. This person developed brain rot, got stuck doing mundane work, and is now perceived by many as milking the system.

    The other person, while talented, wasn’t seen as particularly exceptional. This person moved to work two states away and the rest of the team occasionally complained in private about how (a) the rest of the team did not have the same buying power as he did — so the result for everyone else was a lower standard of living, despite equal contributions to the product, and (b) how they had to make special accomodations for him [extra setup for teleconferencing, netmeetings, and sometimes postponing certain types of meetings until he was able to fly into town…]. The question “why can’t we hire someone else locally?” were brought up by several members during one-on-ones.

    The third was a free electron. He was the principal of the original codebase, held several patents, is ridiculously productive, and well-liked among all the developers. He was diligent about accomodating remote issues moreso than anyone else, being available by IM, email, and phone during business hours, and his in-depth knowledge about the product made him invaluable to the team’s productivity. Even if it took him several hours to get back with an answer to a question, it would have still taken the team days to find the solutions on their own.

    So, yes remote workers can be a part of the team, but it’s trickier than you think. The team’s perception of the matter is vital, and they may not be easy to reveal how they really think about the situation.

  29. You, as a manager, have to make sure you get the guy as much information as you can. My last business we both worked from various locations, and even though we were in the same city, it ended up being difficult to get information when I needed it. Be proactive about keeping the guy in the loop, so that he doesn’t have to go casting about when he needs something.

  30. Hilarious – I spotted a co-worker’s response above on working remotely. =)

    The productivity comments on working remotely are bang-on IMHO – I can’t tell you the number of times where I’ve left work feeling like I’ve got nothing done because of all of the interruptions (both personal and environmental). I try to work from home whenever possible, just because I know I can get more done in the same amount of time.

    At the same time, dealing with a remote co-worker does slow things down, especially when it comes to communicating design changes or serious bugs. I can tell you that having a co-worker remote when there’s a bug traced to their section of the program is a righteous pain for the rest of the team. Mind you, we haven’t really invested in some of the tools discussed earlier in this section.

  31. Oh, and it doesn’t help when the remote co-worker tells you Wednesday afternoon that the reason you couldn’t reach them earlier in the day was because they were out snowboarding. =P

  32. 1. Constant online presence. It’s not as good as actual “hallway time”, but it’s as close as you can get. Whether this is accomplished via AIM, Skype, IRC or whatever probably doesn’t matter… whatever the team likes.

    2. Face time. This is crucial. Now and then, the remote employee should spend a week in the office with the rest of the team. Ideally this would be once a month; once every two months is as far as it can probably be pushed. If a team member isn’t worth flying around this often, they’re probably not essential.

  33. morganusvitus 10 years ago

    The site looks great ! Thanks for all your help ( past, present and future !)

  34. I work for a large software company (Novell), and I’m in Technical Product Marketing rather than engineering, so I don’t think the teams I work with go as fast as those you describe.

    However, I am what you might call an Extreme Remote Worker…

    I was office-bound for Novell for six years, then home-based in the UK for 18 months before my wife’s job (Diplomat) took us on a mandatory two-year tour in Riyadh, Saudi Arabia. Despite being seven hours ahead of Eastern time (eight in the Winter), having a high-latency 512kbps satellite internet connection, unreliable mobile phone network AND a different working week from the Western world (Saturday to Wednesday), I have been able to bring my job with me and my team is still delivering the value it did before, we hit our deadlines, we continue to improve quality.

    How do we achieve this? Regular weekly conference calls, constant IM (GroupWise Instant Messenger), ad hoc phone calls via Skype whenever needed, and now we’re starting to look at virtual meeting tools like Elluminate. I travel to the UK or a US office on average once per quarter and stay for three-four days.

    It can be isolating but if you’re the type of person who can keep the teams goals in mind and work under your own steam and initiative it can work very well.

    Another benefit is the work/life balance I am able to achieve. I control my working hours fully, sometimes on a conference call at 10pm, sometimes sunbathing by the pool on a Monday morning. And I’m always able to attend events at my kids’ school. This stuff is important!

  35. OVGuillermo 9 years ago

    Thank you for your site. I have found here much useful information.

    Good site ! 😉