The Macadamian office spans two continents, four countries and four time zones. In fact, two of our offices are 12 hours apart. Our teams are made up of people from different offices so as a developer in Ottawa, my day-to-day activities usually involve work with colleagues in Romania, Armenia, and California.
Making long-distance teams work as well as local teams isn't easy to do (at all!) but it's crucial here at Macadamian, so we've built up a number of processes and tools that help make this possible. Here are my top four tips:
1. You might have to wake up early for this one...
...or stay up late. Either way, it's important to be willing to adjust your schedule every now and then in order to boost collaboration.
I can't count the number of customer meetings I've been in that started at 7pm Armenia-time. And it goes the other way, too. We just had our first-ever “all hands” meeting involving everyone that works at Macadamian. For our staff in California, which included one of the meeting's speakers, the meeting started at 6am.
It's important to understand the needs of your coworkers. For a global team, this means that you will occasionally need to wake up an hour earlier or do an hour of work from home in the evening. It helps to have team members that are dedicated to the project and to their colleagues, which brings me to my next point:
2. Relationships matter.
In a local setting, there are implicit relationships between team members. Maybe Abby is obsessed with coffee, or Ellis knows way too much about cars. It's easy to casually pick up on these things when you sit near one another – Abby comes in every day with a reusable mug from a local coffee shop, and Ellis drives a car that's older than he is.
You have to find ways to make these connections remotely, too. Luckily, it's easier than it sounds. Start by talking to your remote team members every day. And I don't just mean “include them in your scrum” — that goes without saying. I mean really talk to them. Find out how Romeo is celebrating his birthday this weekend, and remember who Tigran's favorite hockey team is so that you can make fun of him when they lose to your city's team.
It doesn't hurt to spend some time in person, either. We arrange regular trips overseas for managers and developers, often for extended periods of time. Someone from Armenia is actually spending a full year here in Ottawa right now. This helps to boost morale, understand each other’s customs, and make daily communication even easier.
3. Take advantage of time zone differences
It's awful when you're blocked, and the only person that can unblock you is 9 hours away. This is a big downside of global teams, and is usually one of the first things people associate with the global team concept. While time zone differences can have drawbacks, they also present amazing opportunities:
It's awesome when the critical path moves seamlessly from North America to Western Europe/Asia. For example, say you have 80 hours of tasks that can't be done in parallel. A local team will need two weeks to do these tasks. A global team, on the other hand, can work separate 8-hour shifts and get them done in one week. That's twice as fast!
It's awesome when my code is tested while I sleep. A small team of local developers can be extremely efficient when paired with a remote QA. I spend my day fixing bugs and adding features, and by the time I come in the next morning, these issues have been tested and either re-opened or closed. Prioritizing tasks is a breeze, and we don't lose as much time on code freezes leading up to a release.
4. Technology is your friend
This is 2011! There are a number of tools that make overseas communication better than ever before. If you're not using Skype or Google Voice, start now. Being able to talk to your teammates quickly and easily is a fundamental principle of good teamwork. Don't be afraid to use video, either.
Take advantage of wikis and social networking. We use Atlassian's Confluence and Yammer to help keep everyone on the same page for work and for office chatter. These aren't the only tools out there, they're just our favorites. Maybe your developers prefer IRC, or your design team is collectively addicted to Twitter. Find a convenient place to chat with your team, and use it.
Make international meetings feel like they're in the same room. We're experimenting with this one. I was in a meeting the other day where my manager started drawing on a SmartBoard (with a real, honest-to-goodness whiteboard marker), and this drawing showed up seamlessly, in real time, on my Romanian colleague's screen.
This is an area that is always hungry for improvement. My boss told me the other day that we're getting a Google TV for our boardroom in California. I don't even know what that is, but I'm sure it's going to make my next meeting with Matt feel even more personal.
5. Take it slow, and do what works for you.
We didn't get to this stage overnight. We are constantly focused on helping our international teams cooperate as well as possible. The important thing is to start thinking about this NOW. The world isn't getting any less connected, and helping global teams become as productive as possible will only become more valuable as time goes on.
About the Author