Quality code is important, we all know that. In some way or another developers work to ensure their is tested. We code something then try it out. Maybe check the database, or look at the UI what ever is needed to let us know it worked. As we build up our solution maybe we change our design a bit to make it cleaner or more robust, or just extend it to add a new feature. At some point in this process something we built before will inevitable break. Then we re run our tests and try to find the bug. Unit tests are a great way to help ensure quality code, but developers new to unit testing are often faced with the daunting task of testing mammoth legacy code. Where to start, how to do it right, how to stay sane… Continue reading “Unit Testing Real Code”
I’ve had the opportunity to work with a variety of offshore teams on various projects. While very challenging these relationships can indeed be valuable. So how do you make the most of these partnerships? Here are a few observations.
The most challenging piece of an offshore partnership is the language differences. While most business people around the world speak English, it will typically be a British version and/or be accompanied by a heavy accent. This all becomes more difficult when trying to communicate on a conference call with a choppy reception and the other end sounding like they’re in an auditorium.
How to deal with it. There is no good answer here. Two approaches seem to help, first have someone onsite to act as a translator. This is typically someone from the same vendor, who has been assigned onsite. Ultimately though you need to become accustom to the language, this only comes with time. Surround yourself with people who speak the language. Don’t be afraid to say you don’t understand. When on the phone be sure you’re able to concentrate on the call with little background noise or distractions. Overtime the accents will become more understandable and the language gaps will be clearer.
Surprisingly talking does not equal communication. When dealing with any remote team, clear communication is critical. To frequently conference calls are stressful and where in a normal situation you would ask for more information, on a call you may feel it’s too difficult and you’ll just send an email. Conference calls are critical for a project. Don’t let them go to waste. Ask questions be sure that your question was understood correctly. I’ve found it’s difficult to get participation from an offshore team on a conference call. Typically one individual will do all the talking. Work to get more than yes and no answers and more participation from the whole team. Also in these calls try to encourage conversation outside the simple status updates, you might find out important information.
Beyond the conference call its important to follow up with a clear recap of what occurred on the call. This helps make sure everyone on the call is on the same page and all action items are assigned. With any remote team, following the activates between discussions is difficult. Use email frequently. Insist on a formal agenda and meeting minutes. Clarify action items and blocking issues. If a blocking issue does arise take care of it immediately.
There are significant culture differences that come into play when dealing with international vendors. These culture differences are stem from national/ethnic traits, to corporate/vendor culture. There are traits that surface simply due to the continued relocation of team members.
My experience has been that Indians don’t tend to question authority. I’m not saying challenge authority, but rather look for clarification and understanding. What seems to happen is that individuals will take a message from a higher-up or client that may not be clear, and instead of working with the source to understand it, they will go to their peers to help understand the message. While this may work in some situations, often times it takes much longer to get the right information. When this works the best is when there are a series of mentors available to the offshore team. A series of experienced individuals various team members can turn to. To help this process, try to keep one vendor and one team as long as possible. Inevitably the vendor will swap out resources on you but hopefully you can hang on to a few key resources that can fill this mentor role. When working one-on-one with an offshore resource be sure you have been understood clearly, ask them to repeat what needs to be done, not simply do you understand.
Working culture. These guys work hard, really really hard. They work nights and weekends, often they work far from their families. Even in India they will travel to different cities to work in central location for a client. It is so important to realize these guys a working really hard for you. Take time to make that personal connection with them (if they let you). Get to know your offshore team by name. Express your gratitude to them individually for their effort. A note about working habits, since these folks don’t technically work for you, they may not tell you when they’re going on vacation. Ask regularly when upcoming holidays are and what vacations are planned so you don’t end up with a skeleton crew right before a huge deployment. If you have on site resources realize when they take vacation it’s typically for a month so they can get back to India.
Offshore and outsource projects can be highly effective if leaders take the time to consider the variety of challenges the show up in these situations. Communication is always a critical component of any business initiative. In an offshore model communication is more important than ever. Leaders are dealing time zone changes, language differences, and cultural differences. All these challenges can be overcome with increased and clear communication.