Thursday, August 14, 2008

Musings on a plane

I'm on a flight to Zurich, Switzerland, reading Tom Friedman's "The world is flat". Stories of how virtualization makes travel less necessary. How people around the world can easily interact over the Internet. How time zone differences make it possible to easily have work happen 24 hours a day. And I experience all of this in my daily worklife. However, still, here I am on my way to Switzerland to meet with all my team mates in person, because there's no better way to build and manage personal relationships than face to face meetings.

Yes, you might be able to conduct business efficiently and effectively using "the power of the net". I find IRC and individual chats an amazingly effective medium for coordinating and collaborating with co-workers around the world to work together and solve problems. The expert on a specific part of the system might not be in my office, but I can quickly loop them in to help me debug an issue. In other situations, just asking a question on an IRC channel, or web based forums, often gets me a correct and complete answer, or pointers to documentation, faster than trying to use my favorite search engine and digging through results (yes, that's ironic, showing there's still plenty of room for improvement in search engine technology...)

However, I also find that oftentimes the most value-add happens after you leave the conference room, in hallway conversations. When you run into someone by accident. When you thought about a topic for a few more minutes and then pop over to the other person's desk for a follow-up. This personal interaction is very hard to harness in a virtual environment, particularly if people work in a regular office, instead of tele-commuting. In some teams I worked with there is zero "virtual socializing", idle chatting on an open IRC channel, with random work-related comments. In other teams, such channel forms the life-blood of the team. It's the way how a globally distributed team keeps its act together and it's amazing to watch when it works.


When it works, you come to work in the morning, India is still awake, Europe getting close to the end of their day, the East Cost is ready to go to lunch, and you are getting breakfast. As the day progresses, Europe signs off (aside from the few night owls that apparently can never leave their computer screen before 10 or 11 pm local time) and you are getting lunch. While the early birds in East Coast offices are starting to prepare to go home at the end of their day, IM status of the first Australians becomes green and you spend the afternoon coordinating projects with your counter-parts in Sydney and then, shortly before you leave for the day, Tokyo. As you go to bed in the evening, India wakes up, and a little later around midnight, the workday in Europe picks up again. When it works, there is always someone from your team online, somewhere in the world who knows the answer to your question, or knows where to look. When it works, it's an amazing experience.

To make it work, you need continuity and critical mass. I think continuity happens by having globally distributed teams that are big enough to help each other locally in a pinch (as well as build and promote a local flavor of the team's culture), but small enough to not be completely self-sufficient (since then they have less motivation to seek out the connections with people outside their office). The critical mass is important in a specific way: If everyone spent all their time on "keeping the channel alive" no work would get done. The socializing aspect is important for team culture. Some people are better at this than others, and there need to be enough people that can keep the chatter and banter going from the random idle time people spent on "something" between tasks.

In terms of technologies I haven't seen anything that beats IRC (Internet Relay Chat). IRC has been around for many years, is amazingly robust, quite easy to administer, and almost trivial to get going. People with a minimum amount of Linux foo can set up a company internal IRC server in no time. IRC has well defined, and well known APIs, that are quite easy to use, so there exist tons of add-ons. It's major drawback is that IRC is not sexy. It's text chat. The clients usually don't look pretty. There's no support images, audio, video, ... but, on the other hand, all that stuff makes other systems more complex and prone to failure. I really don't care that much if I can see my co-worker, as long as I can get my problem solved. Video conference systems tend to work better and are more effective for virtual meetings than desktop conferencing software, especially if they involve more than 3 or 4 locations.

Bottom-line, I like both worlds, but for different reasons. Many relationships that started in face to face meetings, are kept alive and strengthened with regular interaction. People want to communicate. The easier one makes it, the more they are going to use whatever method is available.

No comments: