Wednesday, February 15, 2012

Managing Remote Teams

A while ago my company decided to move some of the work to outside workers. It began by outsourcing the development of our new site to outside “professionals” in our region and continued with more and more components development outsourced off-shore. Even though objections rose all around Management have set their mind, developing off-shore is cheaper. Now almost all our web-development is done outside, by people who do not natively speak our language, and prefer not to speak. A situation which forced us to develop new working methods which do not include speaking. Basically it’s working just with emails and IM.

In this post I will not speak about the quality of code but how instructions can be misunderstood when you say one thing, but mean much more. It’s about the importance of detailed design to get what you want.

The first thing you notice when working like this is the lack of immediate response. When everything is inside your company everyone is just a quick stride away. Even when the work was done by someone in our time-zone the working hours were basically the same and you could always pick up the phone and talk to someone. And if something is misunderstood you could usually pick it up from the call, because when we speak we convey so much more information then just our words. We show how urgent items are for us (we picked up the phone and called instead of e-mailed the task, this shows urgency), we show a work-flow by throwing around adverbs (“and then... and then”) without thought. Off-shore workers can work at completely different timezones and you can have just a few hours of overlapping work-hours. It is usually best to agree that someone will stay late/arrive early, just in case something urgent does indeed come up.

The second thing you notice is that you only get what you asked for. If you wrote “update the username text color” they will update the username’s text color. nothing more, nothing less (well, sometimes less). It doesn’t matter that you wanted all the username’s on the site’s or just one. What you wrote is what you get.
You have to explicitly request any change you want, and if you are ambiguous in any way you can bet that they will understand it the wrong way. Anything that can be misunderstood - will be. Visual aids like screenshots or movies are very good ideas to use. It may take a bit longer to create the change-request ticket, but you can be sure it will take longer to get the same ticket fixed multiple times because the request was misunderstood.

The third item I’d like to talk about is task prioritization. When managing remote teams I highly recommend having a good and easy to use project management tools. We are currently using Assembla which is really great, it’s simple yet holds everything we need. Don’t expect other people to work on the items you think should be done. If you want it done first make sure you prioritize it accordingly so they will understand it is important.

The last thing is that you should always keep on top of things and demand constant updates. Even daily or bi-weekly ones. Remote teams don’t always feel the same commitment as you do. If you don’t have a good team-leader there they can really take their time with tasks or even fail to notify you they finished the task and are sitting doing nothing. Make sure they have everything they need to keep working.

Bottom line is that moving to off-shore development might appear to be cheaper, but it ain't always so. They may work for cheap, but I don't think the time (and health) spent is worth it.

No comments:

Post a Comment