What Is the Best Way To Build a Virtual Team?
stoolpigeon writes "The department I work in is growing and including new members that live quite far apart. Right now most people are in the same office but new members are in Singapore and South Africa, with more coming from other places. I would be interested in Slashdotters' recommendations for software, practices, services and anything else that can help build strong virtual teams."
Try to have a quick team meeting meeting every day on Skype/VOIP, if possible. People can start to stray "off message" if left to themselves too long (not through laziness, or anything). If they are in the same office, that can is normally regulated.
Lots of small targets as well as an overall project target.
Do try to have face to face meetings occasionally.
America, Home of the Brave.
So, there's two categories of things you need. You need equipment/services to make it possible. And you need to create a sense of "team" among the members, which is harder to do when you're not in the same room.
Stuff:
-campfirenow.com. A web-chat for multiple users, where you can see what you missed while you weren't logged in.-
-Webcams. There's still such a thing as body language.
-Project management software. We use fogbugz to track dev projects. Whatever you industry is, you might want something similar, because you can't just lean over and explain the issues to your team members. Also, it's good to have a record of issues so you don't forget.
-Various kinds of shared desktop software. You'll want to be able to show people things, instead of just typing out descriptions.
-Extra desks. We have extra desks for team members who work from home. If they come in, they won't be homeless, sitting on a tripod, and working on a 10 year old machine.
Teambuilding:
-Try to meet for socials now and again, wherever you are in the world. Paintball/Steak/Strippers, depends on what people want to do, but don't skimp on money. You don't want people to feel like they're just sitting in front of their computer taking orders from a web page.
-Sometimes, you'll need people to actually work together. Looming deadlines and important launches will benefit from flying people in to work face-to-face.
-Generally, the more life-like contact, the better. I've seen offices where remote users were on webcam, able to join in the banter.
Seconded. IRC works great for group discussions. Most IRC software is also very customizable in what messages should cause it to pop up or alter you, so you can continue working concentrated when needed. You can easily move from group discussion to 1-on-1 or seperate chats if needed.
You can also leave an IRC client running and see discussions that happened when you were away/asleep, which is nice if there are timezone differences.
I've used Jabber on a previous job, because this was supposedly more secure, but I don't think there's any advantage over IRC+SSL.
Skype doesn't work as well in my experience, as it's less customizable. During the working day, I want to have my colleagues able to interrupt me, but not my friends. Separate accounts isn't really a good solution for that. Maybe there's add-ons for that?
Well, first use git or mercurial. Then set up an in person meeting of the team at least once at the beginning of the project. A lecturer at UCLA told me that projects are 70% more likely to succeed if people meet face to face once. I don't have a link to the original research that claims this, though.
I am in the UK, and work with a team in Finland, India, Czech Republic, Germany, Lithuania and Sweden... I work with no-one else in the UK. Communicating regularly and often around work topics is a given, both in group meetings and just by following up with IM or a quick call. I make the assumption that you have an appropriate toolkit, such as Office Communicator / Lync, and LiveMeeting or whatever you prefer, but you need something to chat, speak, video call and conference with.
The real challenge is really getting to know someone virtually: by that I mean not just what they do, and what their work strengths and weaknesses are, but also what they enjoy away from work and what their personal situation is. This is the sort of stuff that gets discussed at lunch, making a drink, or whatever, that simply doesn't often get considered when working virtually.
It's difficult because you can't force it, but on the other hand it does pay dividends as you actually do end up building a real camaraderie. I end up just chatting on IM with colleagues to see if they had an interesting weekend, and take it from there.
I also like to be reminded of where the team is, and in what timezone, and what they look like: I have a world map printed on my wall with photos of the team pinned to it. (Well, a powerpoint slide printed!). It helps cement someone in your mind, I find.
One thing that helped put the icing on the cake is a one-off, physical meeting. Yes, this is expensive, and yet it takes a week out of everyone's schedule practically, but the value in building relationships with colleagues and making friends of colleagues really cannot be over-stated.
Another potential communication issue worth considering is that native English speakers tend to speak fast, and use odd colloquialisms from time to time. Recognise this, slow down, and explain colloquialisms: you'll find non-native English speaking colleagues greatly appreciate this, and will often start a chat to question word use, constructions, sayings, colloquialisms or whatever which is a great way to build a better relationship, too. It's also fascinating to find the literal translations in many languages as the expression for 'you're pulling my leg' in Russian translates to English as literally 'you are hanging noodles off my ears'.
Most of all, have fun, and built a relationship of trust.
When you're remote everyone needs to feel valuable, cared for by the organisation and spared annoyances.
1. UK ENGLISH IS NOT INTERNATIONAL ENGLISH. AMERICAN ENGLISH IS NOT INTERNATIONAL ENGLISH.
Avoid slang and colloquialisms if anyone new is in the conversation. Think HARD about what might be slang or idiom. Be particularly careful to avoid phrases where the meaning is the opposite of the individual words.
Learn what "mistakes" are common in speakers from particular countries and learn how to go around them. Often non-native speakers will use academically correct English which sounds imperative and aggressive to idiomatic speakers. e.g. "I'll have John look at that" is perfectly natural American English but sounds imperialist even to English English speakers. I've noticed Indian staff often do the opposite and what should be "you must, otherwise this project is doomed" becomes "if you don't mind when you can get around to it if it's not too much trouble."
2. Remember cultural references are not universal, despite Coca-Cola Co's best efforts. Watch out for this when drawing analogies, especially with TV shows, social situations, and personal money.
3. Be patient. It's not anyone's fault that you were born 9000 miles apart. If a communication doesn't make sense or seems offensive on first sight, check.
4. Quick phone meeting every day is essential. Try and find a slot that isn't the end of day for anyone (can be tough to do that depending what timezones are involved.) And I do mean quick - 15 mins - and have a tight agenda e.g. "UK hotspot/news, India hotspot news, Singapore hotspot/news." Be careful about what "today" and "tomorrow" means in practice. "End of tomorrow" is probably "first thing the day after tomorrow" for someone on the call.
5. Unified Comms is great if used properly, but do remember it's not face to face conversation and works on different assumptions. Instant messaging is particularly dangerous because written English and spoken English do not operate on the same set of assumptions; but in IM it's tempting to mix it up. I ran two similar projects in a bank two years apart; the second time, we had Office Communicator and it made the whole thing a HELL of a lot easier. I was astounded by how useful it was.
6. In a virtual team, it's very likely that not everyone in the team will be in the team full-time. Be aware of that and don't assume that "four hours work" means that it will be done the same afternoon. Ask.
7. Notice how far down this list technology is...
"... and more and more now there are all kinds of electronic goodies available" -- Pink Floyd 1972
I've worked in a virtual team for over 10 years and the short answer is that making it work takes work. Most engineers are solitary and it takes a lot of communication to keep a virtual team together. I wrote a book about it. The One Minute Commute. It is available free.
1. Blog your progress. Whatever you did today, blog it. Let people know what you did that worked, or what was faster (Nginx vs. Apache), or what wasn't (ColdFusion?). Don't reinvent the wheel, use WordPress, regardless of whether you like PHP/MySQL or not.
2. Use a subscription/payment management company. You're just a small group of nerds, not accounts receivable clerks. Fastspring, Plimus are free; Chargify, Subsify, Cheddar Getter, BrainTree, Spreedly charge; and Zuora is expensive.
3. Use Google Docs and Slideshare to share documents.
4. Chat. Don't just rely on email. Emails can often read like "this way or the highway". Be collaborative. You can often accomplish more with 15-30min collaboratively as opposed to composing and responding to long emails. Skype, Jabber, SIP
5. Take notes on what you did. Made a server configuration or a setting change in your CMS, your compiler, or whatever? Copy and paste from xterm so you don't have to guess about those commandline switches next time. Take screenshots and make them available to others. Zim, Projly, DokuWiki.
6. Have a phone numbers. If not bog-standard landline phones, take advantage of Google Voice and SkypeOut and SkypeIn (people can call your Skype line on a normal phone number). I realize Google Voice might not be available in South Africa yet.
7. Someone mentioned version control. Use git if you're a cool kid. Or svn if you're old and busted. Read the RedBean book. I've had success in having non-tech colleagues using graphical clients like TortoiseSVN (integrates into Windows Explorer).
8. Write tests. Any member of your team, sitting anyplace, should be able to push a button and run all your tests. Tests document how you're supposed to use a given method, class, etc., especially valuable when you're so far flung. Use JUnit, PHPUnit, FooUnit for your language. Write the tests before you develop, and you're doing Test Driven Development.
9. If you're writing tests, that implies loose coupling, which might require dependency injection. Can be difficult to climb that mountain, but it's worth it when you can just run a test and be sure your project works.
10. Development processes: Scrum, Extreme Programming. UML lets you communicate graphically about objects.
I'm not a lawyer, but I play one on the Internet. Blog
make sure y'all have webcams and the software to show the video wall of all connected users. i work remotely myself, and i can't tell you how much more PRESENT i feel at meetings when i can see the participants in the office meeting room, plus any other remote users. Just being able to see who's talking helps in a way that's difficult to describe, everyone will definitely notice the difference.