We are a team of 12 developers in our local office plus five to six remote guys. How do you integrate remote developers? On a technical level (video conferencing, IM), but also on a social/personal level (team spirit etc.).
I have worked remotely for 4 years.<p>Start by creating a remote-first culture. Everyone should think "remote" first. Thus it should never matter if a local employee is working from home, the HQ, from the other side of the world. Make all work processes remote friendly. That should be step zero when considering hiring a remote person regardless of the reason. The goal should be to avoid a two-tiered culture. Some differences will always be there but if the spirit of the remote-friendly culture is there integration is pretty fluid.<p>Thus (near) all communication happens in Slack/Hipchat/etc. Group meetings, when including remote people, happen in video conf / Hangouts. Shared Google docs to collaborate on. Have in-person meetups 2-4 x a year for beneficial face-time and for people to get to know each other better on a personal level. When a new person is hired, have them do 20 min 1-on-1's with all team members to get to know each other and their job role. Have monthly video conf/hangouts on non-work technical topics where people rotate presenting.<p>The biggest element is the decision to be a fully remote team. Which honestly is a major retention benefit as well. Why should local employees not enjoy the same flexibility to work as needed remotely?
In office and working remotely will never be the same experience. I worked remotely for three years at my previous job, where I was part of a team of a dozen or so that was headquartered in a central location. The majority of the team participated at the HQ, and I was remote. We had IRC, video conferencing, and all the necessary technology set up. Regular visits to HQ helped. However, the thing that made the biggest impact was everyone else on the team started to work from home on occasion. This made communication happen in a remote-first manner so it was level playing field for all members. I would suggest reading the book, Remote, for more ideas of how to make it work.
I'm one of a few remote developers on a team of 15.<p>Daily standups, dialed in on planning meetings and the odd visit for project kick off meetings all help to make me feel a little more integrated into the team. In saying that, I'll never be as integrated as the people that are in the office everyday, but I can live with that for the flexibility remote working gives me.<p>I should also note that I don't work from home, but rent a desk in a coworking space.<p>I truly think that this is the future of the work environment. People go to an office to work, but one that is local to them, rather than relocate.
We have a 40% remote staff at DigitalOcean. So this is really important to us.
Initially, they come to the office for 1-2 weeks when they first start to get face to face introductions with everyone on their team and as much of the company as possible. Part of our standard onboarding is for each manager to take them out to lunch and to host a team event while they are in town. This is social time to get to know them on a personal level. We conduct a remote-exclusive on boarding for an hour to provide them with key tips on being remote and how to be a successful remote at DigitalOcean. This includes booking travel in the future, expensing items when in town, information about corporate apartments, and an introduction to our people team Remote Point of Contact.
After they return home with a better sense of the role and company they just started for, the full “remote” experience starts.
We have a slack channel that our remotees “hang out” in all day. They created a weather bot to share their local weather, greet each other with a “good morning” and continue on to chat all day as if they were next to each other in a space. This is actually my favorite channel on slack because it encompasses all the random water cooler conversations around the office into 1 area.
We do a lot for our employees in house and remote. The key is to not make our remote staff feel like they were a second thought. For example, we had a large company Thanksgiving dinner in November so we sent Thanksgiving pies to all of our remote staff. They received it right around the same time we were all going out to eat. We had a holiday dance party, so we sent our remotes speakers in the shape of droplets (which is our product here). We went to Tribeca Film Festival at HQ, so we sent each remote a box of movie candy and gift cards to the movie theater for them AND their families.<p>We have built our current office space to be as remote friendly as possible. We integrated Google Chromebox for meetings in every conference room and telephone room. This prevents about 5 minutes of initial setup for microphone and camera. We have already invested in, and continue to invest in, state of the art technology for our All Hands Meetings. Proper microphones, speakers, and cameras in our “Atlantis”. Once all presentations are are complete, we switch to the camera view so we can see all of our remotes in the room with us as we continue through our AMA portion.<p>These are just the baseline of things that we have done to make our remotes feel connected even when they are not in our office. We continue to upgrade the experience often and are continuing to grow our remote staff Internationally.
Scott Hanselman has worked remotely for several years. Unsurprisingly, he's done so loudly and opinionatedly.<p><a href="http://www.hanselman.com/blog/CategoryView.aspx?category=Remote+Work" rel="nofollow">http://www.hanselman.com/blog/CategoryView.aspx?category=Rem...</a><p>Part of the problem stems from the framing of the question. Flipping it on its head as "how do you integrate local developers into a team?" highlights how easy it is to believe the team's core must be determined geographically rather than functionally.<p>Reframing remote work as the normative context then places responsibility for accommodation on the people who have the habits that make integration difficult.
Pretty much the whole team works remotely.<p>We use IRC for everything, which has the good side effect of preserving knowledge for later. Everyone has a bouncer like ZNC setup so they don't miss anything while they're offline. Managers, directors, and VPs all encourage work from home, and a lot (including my manager) work from home themselves. We have an internal video conferencing system that we use frequently. We have a sync twice per week via video, a weekly 1-on-1 with the manager, and people hop into a dedicated engineering room whenever they want high-bandwidth communication with someone or just want to hang out there.<p>We also have a non-work IRC channel we use to talk about anything, in terms of social / team spirit related things. We have monthly tech talks that anyone can give. Once a year, we meet up for a week in person to get high priority things done. The company also sends us to open source conferences, so we see each other there a couple times a year. A couple folks play video games together like CS:GO. We are thinking about making an optional weekly gaming event with people, maybe something like LoL.<p>A totally optional thing that I like doing to preserve some record of my work is IRC standups. We have a web form where you can submit what you did yesterday, what you're doing today, and any blockers which gets posted to a separate IRC channel to avoid spam. Other teams with whom we collaborate on a daily basis also use IRC heavily. My manager doesn't like having this, but I like having an IRC highlight with my name that beeps whenever someone mentions my nick or asks me a question.<p>With this, we're able to collaborate across quite a few timezones, including one dev in the UK. It's worked out really well. I live near the HQ and sometimes go into the office, but generally working from home has been really efficient for me and a lot of our team.
Hmm, how do you integrate local developers? Everyone is unique. Bob may not be too excited about the Sweet Sixteen beer fest that Jane and Jim are so pumped over. I'd say developers are most integrated when they have important tasks or areas of responsibility that they handle well, and everyone acknowledges their competency. In other words, they are a solid contributor. So have them work on something important, that's within or near their capabilities. Or if they're more junior, give them tasks that require them to ask questions of more senior, local developers. Remote developers have to be driven and independent, hopefully the kind of people that read the docs and code before asking too many questions.<p>Then you just have to worry about communication. But the onus of communication is on the remote worker, IMO. The most successful remote people I've worked with were all excellent at written communication. You may think that having extra meetings and video chats are a way to integrate the team, but it could be better to let remote workers leverage the quietness of their remote setting in order to knock out code that requires focus.<p>That said, chat is huge! But it's like texts, in that it's socially acceptable to answer anywhere from immediately, to an hour later.<p>For team building, I find it's good to fly everyone in a couple times per year, for product planning and social time.
I have been managing remote devs for 4 years and now running <a href="http://devteam.space" rel="nofollow">http://devteam.space</a>. So, have a decent expertise at that. Maybe you can apply it too. Here are must have rules:<p>#1. You need to have a PM for remote devs, on their side. Or decide who is the PM out of these remote devs. This person will be your trustworthy manager. If something goes not right, you talk to him/her first. Ask him to provide all the honest and bold feedback from himself and all the other remote devs if something happens.<p>#2. Request daily short updates from every developer. Just 2-4 lines of text about what have been done during the day. Explain to them that you will not actually reply to these updates. It's just to keep everything transparent. So, they write - you only read. Rarely reply with some questions.<p>#3. Set the goals on projects you work on with them, request deadlines, you can set it in sprints. It's like mini OKRs (google it if you don't know what is it). It helps them to be accountant and spend their working hours wisely.<p>#4. Have at least one 30 min call per week with all the remote devs to chat about what you are doing and motivate them with some good news. So they would feel they actually get paid not just for the code, but they make a difference for your company and for your clients. Share with them what you personally have done during the week. All people want to work with even better people, so it should be clear for them that you are awesome. They will respect you more. Basically, treat them as your usual team members.<p>#5. Use some reporting tools. At DevTeamSpace we have this kind of dashboard - <a href="http://i.imgur.com/F6Q3COn.png" rel="nofollow">http://i.imgur.com/F6Q3COn.png</a> . Maybe it would be helpful for you too.<p>In fact, so many companies struggle to manage remote dev teams. If you need any help - ping me at alexey(at)devteam.space.
The prevailing ideal of a commercial software team is a tight knit tribe. Members are selected for "culture fit", ability to do pleasant small talk around the lunch table, personal hygiene, and so on. The team should huddle around every day for status updates, bonding, and small talk. Communication should be frequent and face-to-face collaboration is considered the ideal.<p>You can adapt this ideal to remote work situations and there is lots of material about how to accommodate that. But many people who gravitate toward remote work are probably trying to move away from this ideal.<p>For some it may be because they've experienced open source collaboration and don't see why commercial development can't be done in a similar way.<p>Open source projects tend to use low-bandwidth, asynchronous communication, perhaps as a cultural heritage from the days of slow internet. That enables collaborators to schedule their work in whatever way suits them.<p>Many programmers are psychologically introverted, which means that they function best when they're allowed to be by themselves, instead of being constantly communicated with. These programmers are often unhappy in the office environment, especially those with open plans.<p>If you take a step back and look at contemporary software development offices from a kind of anthropological perspective, it's actually quite a bizarre and extraordinary way of life.<p>When everyone is in the same house for 8 hours every weekday, the demand for social compatibility is, in some sense, even greater than with most families and friend groups... one way to get around that is for each worker to wear headphones all day, which is also quite a strange situation, socially...<p>I'm personally yearning to be able to work remotely in a way that suits my introversion and my preference for asynchronous independence—or to be frank: I just don't want to be in the same house all day every day with 10 other dudes, and I really don't want to be on conference call with them all day either.<p>Nor do I really want a strong "team spirit" in the sense of social bonding. I think work would be more sustainable and enjoyable if team relations were <i>less</i> tight, and if my lifestyle allowed me a wider spectrum of daily social interaction.<p>I'm motivated by helping to do good software development. I'd rather do this in a way that's like the open source model, preserving my basic independence in terms of location, time, and communication.
My team (I'm the project manager/tech lead) is roughly half remote, with the remotes including my product owner and lead test engineer (among others).<p>As noted elsewhere, thinking remote-first is required for non-co-located teams to be successful.<p>Technical items, in no particular order:
All meetings are conducted with full video teleconferencing.<p>Most meetings are configured to default participants as muted (help stop random noise on line).<p>When we white-board, we use a webcam (or lacking that, frequent cell-phone pics) to keep remotes in the loop.<p>Heavy use of IM tools, online wikis/notes, etc<p>Social Things:
Try to meet in person occasionally. Obviously doesn't work if people are truly global, but I usually see my team in person at conferences, client meetings, or we fly them in every so often (project kick-offs, major high-level design efforts, etc).<p>Find team building activities that can be conducted via video-conference. Commit to doing them regularly.<p>If you conduct 1-on-1s, make sure part of those meetings is social. Take the time to do some "water-cooler" chit-chat.
Not good general advice maybe, but I had good success working remote with more like telepresence setup. I had small monitor in the corner of the office and people could walk up to it and speak to me. I could also overhear quite a bit of the chatter in the room. It was very important that people could see me on the screen.<p>Although I missed many of the perks of working remote I felt pretty connected socially. What I discussed with my colleagues they also found it ok.<p>As said this is not for everyone, but I look forward to technologies that enable people being in same place remotely.
- Smalltalk can happen over IM, if you work at it. During standup ask for "consumption updates" meaning what movies, books, TV shows people have consumed - great fast way to learn interests.
- Move from oral to written communication. Could a person who could not hear at all make it at your company? Write everything down to keep a remote minority in the loop.
- This is harsh, but teach the remote developer that they need to do some of the work themselves to integrate. They might have to go out of their way to push updates, ask questions, etc. They are the canary in the mine and should tell you when they are left out. Be open to this feedback
I've been working remote for the past 5 years at 2 employers.<p>My first group was very coherent and supportive even if remote. We were constantly in contact via chat/email/phone and there was a sense that we could count on each other to get things done. We only met in person once or twice a year, which didn't seem like a big gap given our close communication.<p>My current group, while the company strongly supports remote workers, is very detached and isolating. I actually see my coworkers a lot more frequently but don't feel a lot of commonality or support. Some of that is just how this organization is constructed - it deemphasizes peer-ship.
@alistairSH is right about taking time for chitchat. I think of it as an investment in a relationship, like any other. Be interested in the other people and what they're passionate about in their lives. Share some of yourself as well. Sending an occasional article or image the other person might be specifically interested in takes very little time, but if it's of quality and a great fit for them it's a nice building block.
Picking either in-office or "remote-first" is what matters most. Companies cannot optimally be both simultaneously.<p>I'm Justin Gordon, the founder of ShakaCode, <a href="http://www.shakacode.com" rel="nofollow">http://www.shakacode.com</a>. My article and video on telecommuting from Maui is still the number one google search result for "telecommuting maui": <a href="http://www.railsonmaui.com/blog/2014/05/06/remote-pair-programming-tips-using-screenhero/" rel="nofollow">http://www.railsonmaui.com/blog/2014/05/06/remote-pair-progr...</a>.<p>I've been a full-time remote worker from Maui, since 2007, a remote freelancer since 2011, and over the last 2 years, I've run a remote consulting and product company. To brador, that says "Remote devs start to have mental health issues from the loneliness and lack of supervision in down times", I'd say that's total hogwash. We spend almost every day video chatting on Skype with people (team members and clients) around the world, and we are very often on ScreenHero sharing screens (often with Skype video), and always on Slack and github conversations. There is 100% no loneliness with this lifestyle. In fact, I'd say spending 1-2 hours a day commuting is a far bigger risk for physical and mental health issues!<p>Since I founded my company to be 100% remote-first, we've avoided many of the issues that face companies that are schizophrenic about remote work. I've heard numerous stories around Silicon Valley about how companies start allowing "work from home days" and then the senior managers see the parking lot 3/4's empty at 11am, and then there's an ultimatum that you have to work from the office unless you have specific management approval to work from home for one given day. And I'm NOT EVEN EXAGGERATING ONE BIT!<p>One of the keys to my firms success is to hire team members that love what they do, either programming or design, and that typically interact well on open source. To that end, I've found almost all my team members though our popular open source, <a href="https://github.com/shakacode/react_on_rails/" rel="nofollow">https://github.com/shakacode/react_on_rails/</a> (1238+ stars), which is the number one package that integrates Ruby on Rails with React via Webpack and NPM.
In our team there are 4 remote guys. We communicate in Slack, share Google Docs when needed, track tasks in JIRA, collaborate on the product design in RealtimeBoard app, conduct daily meetings via Skype.
To support the team spirit we organized several AMAs within the team via Skype. There was no restriction on the questions, so we also learned some facts about employees private life (f.ex. when they have shown their pets).
In addition to everything said here, one thing I find that helps is framing video meeting. Are you calling to mainly shoot the breeze and talk a little bit about work? Or is it literally 5 minutes to get a specific answer? Or a 30 minutes formal meeting with an agenda and take always?<p>If you don't some people will become very reluctant to video conf as they'll see it as constant water cooler talk that prevent them from working.
First, all remote developers must first work on site for a few weeks/months. That way people know what they mean between the lines and vice versa, and what their personality is like etc. So communication becomes much more fluid once remote again.<p>I also would insist on tools equivalent to screenhero and floobits to facilitate pairing, whether remote or inhouse.<p>I would also have a convention of not switching off webcams in meetings. People often do that, thinking why do people need to see my face, but it is essential that they do so that visual communication/presence also works.<p>I also like the idea of having a skype/hangout running all day long so remote people are aware what happens in the office, who is around etc. At one startup I hurt my leg and was WFH for 3 weeks. They left an ipad running skype all day on my desk. It was great as people would walk up to my desk to ask quick simple questions / water cooler comments etc, instead of most likely not send a hipchat/slack message as not important enough.
We're quite dependent on all the Google tools: chat, Hangouts, shared Docs. We do screenshares often as well as normal face-to-face video conferencing all in Hangouts. It's worked for us for many years.<p>We also use Basecamp on a daily basis for specific project tracking.<p>All in all, we are pretty "integrated" using this rather minimal set of technology.
I tried remote developers and couldn't get it to work efficiently. Remote devs start to have mental health issues from the loneliness and lack of supervision in down times. Regular employees can start to feel jealousy towards them, and organizing teams and talks becomes hell with a random face showing up.<p>My advice - have a core team in house and out-source what you would have given to a remote dev. You're going to be parcelling out jobs to the remote dev(s) anyway, but with freelance they're not your problem if they get lazy and you can next them easily. Also, a single cost for the job and no employee paperwork to deal with.<p>Plus, if a freelancer proves themselves an excellent part of the team you just throw them more and more projects of increased scope.<p>It's win-win.
With difficulty:<p>1) Use as many visual techniques as possible e.g. Screen sharing and drawing pictures and sketching examples of what you're talking about.<p>2) open chat channels all day<p>3) ability to build rapport e.g. During standup calls look at what the weather is like in their country or share something about what's happening in your area at the weekend. Ice breakers if you will<p>4) if possible get them to visit you so they understand the culture in your office and understand the people. the most success we've had is when people visit the local team soon after joining
Automattic, the makers of Wordpress is an all-remote company. Here are a couple of good articles on how they make this work:
<a href="http://www.businessinsider.com/automattics-awesome-remote-work-culture-2013-8" rel="nofollow">http://www.businessinsider.com/automattics-awesome-remote-wo...</a><p><a href="https://automattic.com/work-with-us/" rel="nofollow">https://automattic.com/work-with-us/</a>
Good quality time together when you can get together. Initially I'd try to conduct as much business as possible during office visits, building rapport and friendship is more important. Eat together, talk about non-work things. Do team building.<p>Beyond that, you have to practice the technical bits, conduct all meetings on a google hangout. If people don't offer remotes that opening to talk, they have to make it.