How Do You Maintain Long-Distance Projects?
overseer asks: "Recently, I've been working with an increasing number of overseas workers. Regardless of where they are located, or how well they are trained, the common problem that we have is communication across timezones. In a typical 9-6:30 day, none of my working hours overlaps with those of my coworkers in Europe and Asia. If I come in early, or stay late, I can call one or the other but the truth of the matter is that most of my communication is done through email, and results in (at best) a 15 hour turnaround time for even the smallest question. This is OK for large, slow moving projects, but when we are working on 'Now' problems, or doing detail work, it makes it very hard to communicate. It also makes casual communication or constructive feedback next to impossible. Several of my coworkers have adapted by working extended hours, or by taking their work home with them -- this is something that I'd like to avoid. What methods have Slashdot readers found/created to get around the problem of working in multiple timezones?"
I work (code, manage) on several distributed teams. Our saving grace is a shared standard of coding conduct. Everyone (EVERYONE) is held to the standards, regardless of whether they're in India, or whether they wrote the guidelines. Secondary lesson: Create complete guidelines, by which you're willing to live or die.
Don't outsource overseas when timing and collaboration are a primary concern. In the world of in house custom app development, any money saved on over seas outsourcing labor will be lost in delays, communication break downs, and lack of understanding. Not saying that developers overseas are worse, just that when you are rebuilding an invoicing system it is much easier if you can talk to the accounting/leasing departments directly and they can tell you immediately if something breaks.
-Rick
"Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
You have just put a constraint on the problem that effectively makes it impossible to solve. You just said that everyone is working in a different time zone, but you don't want people to work extra hours.
The only way to solve this problem is by people working extra late or extra early.
I currently work with groups in India, France, and the East Coast. It is a nightmare.
Email communication is always misinterpreted, even conference calls are misinterpreted, but at least the turnaround time is a lot less.
The only thing you can do is give people adequate compensation time, ie. better time off, because if they are going to be dedicated enough to work at weird times around the clock, then you have to accomodate them when they want to have time off.
This is the only solution.
Not to sound like Laurence Fishburne, but I have encountered the problem you are after and took a long step toward mitigating it by shifting my hours to 6:00 a.m. to 3:00 p.m. This still gives me 6 hours working overlap with the 8:00 a.m. to 5:00 p.m. crowd and gives me two hours overlap in which I can have AIM chats, fast turn around e-mail and even phone calls with the our partners in the U.K. and then relate these to the rest of my team during the remainder of the day.
Of additional merit is that traffic from at 5:30 a.m. is a tiny fraction of 7:30. And that getting off at 3:00(ish) means the gym at my apartments is empty and all the daytime places (banks, Post Office, and specialty shops) are all open and uncrowded.
It's worth the effort to shift, and the quiet time in the morning at work is tremendously productive.
Phone sex and cybering. Oh wait, long distance projects...
I'll form my OWN solar system! With blackjack! And hookers!
I have the fortune to have have a cool job where I have to coordinate efforts with people in both Asia and Europe. Europeans are going home when I come to work, and the Asians are just getting there when I'm leaving work. And they're just starting when I go to bed.
Most of my work with them can be handled via e-mail. So, before I go to ged, I check my work email and respond to issues in Asia so they don't have to wait a day to get a response. I'm not an early bird, but I try to do the same in the morning before leaving for work.
My boss knows I deal with things this way and realizes that I may be stuck at home dealing with a Europe-issue and will be late into the office, or that I might have been up late for the same reason. So everyone's fairly flexible about these things.
Of course, I don't mind taking my work home. I find that even if I'm going to bed, the people in foreign offices are more relaxed when they get an immediate response to a problem e-mail, even if I'm just saying, "got your message and I'll take care of it first thing in my morning".
Also, I got xearth for windows and put it on my computer in the Mercatur view, with labels set on our foreign offices. It helps me "feel" for when people are in their days.
but if you have projects where you intermittently (say for a month) have to get more instantaneous feedback, shouldn't each team adjust its working hours? Say you get the afternoon off, but you work in the evening with a dinner break. To make this easier on everybody, swap it around so they have to do the same.
Don't know if you have that kind of power to change the working hours in the day, but for a short period of time, I think it would work pretty well.
Well, I personally relocated all my coworkers workspaces to within 20 meters of my office. That way, we're all in the same timezone. The drawback, of course, is that I can no longer blame 15-hour turnarounds for the smallest questions on time-differences or language barriers. I have managed to downplay that drawback by using nerf-guns to instigate pseudo-warlike hostilities in nearby carbon-based lifeforms.
Seriously, a 15-hour latency seems like it would cost more than paying someone a first-world wage to be in the same timezone as you. The option I propose is 'consolidate locations'. If you've got one of those tight budgets, you could even ship yourself off to India. It'd be cheaper to live there, so you could even take a voluntary pay cut!
You flip a coin (or play online game to determine winner, whatever floats your boat), loser team goes on permanent third shift in their time zone, meaning same or overlapping time with the other team. Besides that, there is no good fix for this problem. You can't have it both ways unless there's an actual change in someone's working arrangement. I think this is basic relativity we are staring at. If you can beat relativity, you won't need to be working coding on podunk projects....
Then, figure out which moron thought it was a good idea to outsource half the work, and fire them, or get them fired. You would think by now smart people would have figured out this globalization scam is a congame.
Let's get the facts straight:
1. you deal with an outsourced project where the time shift makes things difficult
2. you aren't willing to make sacrifices to accomodate those odd hours
3. you think slashdot has a magic solution
I think the best thing for you is to find a job with less responsibilities, because clearly you're incapable of dealing with the ones you're currently entrusted to. If you have a "Now!" problem that requires fast solutions, maybe you could stay up late and deal with the problem yourself.. meet your overseas peers halfway and get it done. Your job isn't defined by the hours you work or the money you earn, it's what you do that matters.
-Billco, Fnarg.com
Outsource YOUR position to the same Indian company you outsourced everyone else's position to.
I drink to make other people interesting!
if your company doesn't maintain around the clock staffing, then can you be said to be a truly global enterprise? I think not.
lotsa firms talk the talk, but can't walk the walk
Simply because you are working with others in different time zones doesn't mean you have to work longer. All you need to do is shift your start or end time. Instead of working 9-5 (don't we all wish) work 6-2 or 12-8. And have one or two persons in the other time zone similiarly shift a few hours. This will allow you to overlap with the other people.
A lot of industries do this. Take for example stock brokers on the west coast. They have to be in their office when the stock markets open on the east coast. So, they tend to be in by 5am and out by 1pm. They don't work longer hours because of it, but just modify their work day. Now, you shouldn't have to do this everyday you could do one or two days a week, while someone else does the other days. That way someone can pass off information and no one is working excessive hours.
Quality Hosting e3 Servers
and that they can get up at 1 AM for a consultation.
Firstly, reconsider going to the office. Work from home a couple of days a week, and offset your day (or slice into chunks) and communicate via IM - use the presence feature for overlap. Use a wiki for state info so you can operate asynchronously. Make sure you collate questions for the overlap period, or to mutual day ends. This way time skew can work in your favour I you ask for help as you stop work and have a solution waiting for you next morning.
You might want to check this other Slashdot story.
I recently shipped a project for a client in Colorado while I as living in Japan and the rest of the team was in San Francisco.
Quick Postmortem: Communication delays weren't the problem, substandard employees were.
However, I was on call while in Japan. Everyone had my mobile number (And a local number that Skype forwarded to my Japanese mobile. Cheapskates) and my mobile email. Unless I was too drunk or preoccupied, I could answer questions on a moments notice. I even got up for those 4am (Japan time) conference calls.
But our project ran smoothly for the most part. (I'd say primarily because we weren't all in the same room, but that's a different article.) And when it got to crunch time, the things that threw us off schedule was people being morons, not 15 hour email delays.
However, that said, we didn't mix departments in different locations, and we structure our projects with as little inter-department dependence as possible.
Work all night. Sleep during the day.
That or invent time travel.
My partner is in Slovenia, I'm in Montreal. 6 hour time difference. We have a well defined area of responsibility that reduces the need for communication rather nicely. In addition, there are still overlapping parts of the day where we are both awake. I try to contact him during those periods. Luckily our need for communication is often not critical.
Really, there is a large period of time where we overlap. He is available from when I wake up until about 6PM my time. Not so bad.
As for how we communicate effectively over such a large distance, three methods. When we're both at a computer, MSN messenger (or other IM). When he isn't and I need to contact him, but it isn't important, email. When he isn't and it is important, telephone.
Telephoning Slovenia is affordable. I use Skype. The quality isn't super amazing, but it beats landlines. Unfortunately, while calling a Slovenian landline is about 0.05 euros, calling a slovenian cellphone is 0.20 euros. So I still try to keep my calls short. It costs more than a normal long distance call within North America, but not so much that it breaks the bank for two or three minute calls.
Sorry, real PhD students don't "work for a company". It's either one or the other.. OK option 3, you're just a little bitch doing the research bidding of the company that is bankrolling the entire project, for "class credit". No, I think that's R&D.
Than I guess when you're working on "now" problems, you or them will just have to shift your work hours ariund a bit? I'm not trying to be a smart ass, but honestly, you almost answer your own question. The little time tricks of sci-fi don't work in the real world, If you want to talk to these people with less than a 15 hour "turn-around" you or they will have to stay up late.
"Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
I have a great desire to work nights, for a lot of reasons.
1. I am a night person, coding best between the hours of 12AM and 8AM.
2. I have a good friend in the US who I hardly get to talk to because of the shitty hours that I do work and the time difference.
3. I'd be willing to take over your job and work odd hours to better utilise my time...
I drink to make other people interesting!
Doing the math, it sounds like you're in North Ameria (ok, you could be in South America)... managing people on the other side of the world... see subject...
You cannot deny the immense benefit of having a real time instant messaging and email and voice phone all rolled in one into a nifty wireless handheld package, called Blackberry.
Due to its addictive nature of staying on top of things, this handheld is frequently known as "Crackberry" as in "Crack-head."
I strongly suggest you consider one for your long-distance enterprise as being able to stay on top of things 24/7.
Blackberry, tools of the geek gods.
While I've not worked with people from the distance you're talking about- I think that one of the main problems that occurs when working with people remotely happens regardless of timezones. Electronic communication is slower than face-to-face communication. Even chatting on the phone is much less efficient than chatting face to face.
What I've found to be helpful is to schedule a few face-to-face meetings with the people you're working with. While the details will certainly vary depending on a number of factors (length of the project, number of people, budget, scope of the project, etc.) A couple of face to face meetings can go along way in helping the project run smoothly.
For example, you may want to get everyone together for a week at the start of the project. Spend a day or so letting everyone get to know eachother and doing some team building (it doesn't have to be some hokey team building exercise, just spent some time chatting, have lunch, etc). Collaborate on design work and figguring out what exactly each person is doing.
You may then want to meet again toward the end of the project. This gives everyone a chance to again work face to face and can make integrating everyones work much easier. This is especially important if you've been working relatively independent modules of code or been focusing largely on different aspects of the project. Getting together to integrate various aspects of the project can turn a month long nightmare into a quick, if not painless, week long endevor. Plus it can give the team members a chance to celebrate the completion of a project together.
Famous Last Words: "hmm...wikipedia says it's edible"
One other option for you could be to split up your working hours. Then you could go to the gym or do something else like shopping between 1pm and 3pm.
One other thing I wanted to tell to all the other people giving comments here. He never mentioned that the people in other timezones are working on the same project. Maybe they are a sales team in an other country giving feedback about the product. Just because he is working with people from other timezones doesn't mean their jobs got outsourced.
... is there a piece of software that allows Windows, Linux and Mac OSX users to communicate using voice, whiteboard and also video? From what I see ... there isn't.
If You have intelligent staff, the questions responsible for delays will not occur often. But starting project and organizing mid point conferences is a big pain.
Comment removed based on user account deletion
Comment removed based on user account deletion
I just read Cory Doctorow's delightful Eastern Standard Tribe, and in it he postulates that this is the unanticipated factor that will prevent the "global village". My job should really be in Montreal, but it isn't, because I live in London and it's a bitch of a commute. ;-) I do adjust my hours to get more overlap, and this suits me as I'm not really a morning person, but it is still a problem.
~~~~~ BigLig2? You mean there's another one of me?
OK. So most people are going for the adjust your hours approach -- I suppose that does make the most sense. Honestly, I really was hoping for a magic bullet that came out of software, or management techniques. Some of the things that we have considered trying include:
- creating a wiki/blog/forum to foster communication about small things (that the engineers are hesitant to bring up by email).
- some OSS project management tool that combines features of the above with calendar software, and issue tracking.
- writing very precise requirements documents, in the hopes that it will leave no room for 'intperpretation' and fewer questions.
- writing very loose requirements documents and offering some control back to the developer, in the hopes that autonomy will reduce the dependance
Can anyone speak to any of the above suggestions, or offer your an addiitonal suggestion?
Or is 'adjust your working hours' the only solution to this problem.
I just finished a 2-year contract where I was located in Los Angeles, another guy was in Colorado, and the rest of the team was in London. I have two observations:
1: When in this geographical configuration (I know some L.A.-based bankers whose days start at 5am for the same reasons.) it's just a matter of fact that you are going to have to become more of a morning person. Starting the work day at 9am sounds unrealistic. (Now if truly there's a large contingent of co-workers in Asia, I'll buy that exception. But I also know a lot of programmers who "aren't morning people" where that is really the issue at stake.)
2: The communications problems I encountered were, in my opinion, more an issue of basic communications and team management than shifted time-zones. I've found that often certain developers just don't communicate well with certain other people. They fall into bad habits of avoidance that can be disguised as (or blamed on) a problem of the long distances. Whenever we got more committed to good team management practices--dedication to regular phone conferences and specific times every couple days, better use of Bugzilla to resolve all "issues" that needed to be coordinated, etc.--the communications problems went away.
As much as people see the inefficiencies of being spread across multiple time zones, especially during crunch periods, it's worth noting that with well-coordinated efforts a certain programming problem can literally be worked-on 24-hours-a-day with one person sleeping while another is working. But it takes a real dedication to best communication (and project management) practices.
Murray Todd Williams
As the morning-shift engineer in Boston approaches the end of his day, he calls the afternoon-shift engineer in San Francisco, breifs him up to date on progress he's made, and sends him his test harness.
When the San Franciscan gets ready to quit, he hands off to his collegue in Bangladore, and when the torpedoman gets ready to go to bed, he hands off to Grenoble.
My Boston collagues eventualy wakes up, wanders in to work, and gets breifed by the chap from Grenoble.
Net result? For problms where the approach is inherently a single-threaded investigation, we get 24 hours of work a day, less a few hours of discussion.
For tasks that have multiple threads of development going on at the same time, and therefor require coordination rather than handoffs, this doesn't help much.
Perhaps learning to go months without sleep, like Asok in Dilbert, is the best approach here (;-))
--dave
davecb@spamcop.net
Your question is a good one... To my knowledge it is also one that nobody has an answer to. I know three different companies that try this in depth - one of them has several dozen different projects with different managers. And no one has figured out a way to manage a project if communications and cooperation are important.
I know higher management never wants to hear it but projects fair well with offshoring if you either offshore the whole thing (and US management gets out of the way) or if the US based team is strong enough to completely ignore the remote centers and do the whole job... There are whole books out there that talk about this topic - but nothing works well in real world.
Peter.
Use it religiously and make people use meta bugs, dependency trees, keywords, saved queries, even whine-at-mail if you like.
When someone strolls into the office they can just hop on their favorite saved query and see exactly where the project is.
Plus you have a record of the whole design process and nobody is left out of that important mail.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
I just got really used to working a split day. I will usually get up and work from 4 am to about 8 am with my Russian programmers, and then late evening also. My body and my life have adjusted to a few hours nap around noon. In some cases in the past, I have also found the russians enjoy working late night hours...so...that brings them more into my normal hours. No such luck on my current project. http://www.prod.net/ - Working on the Long Range Wireless Solutions of Tomorrow. Invision a global mesh.