As a result of the recent trend of IT outsourcing, many IT managers' career advancement potential and marketability now depend on their ability to manage fully or partially outsourced projects. IT managers responsible for outsourced projects commonly find that the greatest obstacle to project success is miscommunication. The outsourcer seems to understand the manager's expectations but then delivers software that incompletely or incorrectly implements the requirements. These problems typically aren't discovered until the end of the project -- when correcting them requires the greatest amount of resources. Code needs to be rewritten by outsourcers or by local developers, which typically leads to missed milestones and/or budget overruns. Eventually, the costs of the required rework outweigh the expected cost savings of outsourcing.
Here are some tips for reducing the risks of outsourcer misunderstandings causing project setbacks or failures.
Tip No. 1: Recognize cultural differences.
Realize that not everyone you communicate with shares your assumptions. What's obvious to you is not necessarily obvious to your outsourcing services provider. If you grew up in the U.S., your beliefs were shaped by American culture, and this may skew your understanding of the way people think outside U.S. borders. For instance, you might assume that if you write a contract, everybody's going to adhere to it. However, for many people, a contract is just a suggestion.
Tip No. 2: Choose the right words
When you explain your requirements to an outsourcer, word choice is important. For many outsourcers, English is still a foreign language -- even in India, where both outsourcing and the use of the English language are prevalent. No matter how commonplace English has become, your outsourcer might have a basic understanding of each word you utter, but it is quite possible that they are not completely clear on the true meaning of the message you're trying to convey. This is exactly why you must speak in a direct manner using simple vocabulary.
For instance, you might be talking and talking, trying to very politely tell the outsourcer what you expect without seeming too direct or demanding. Each of your demands is prefaced by something like, "It would be nice if..." or "Maybe you could also..." The outsourcer agrees. You assume everything is fine, but the outsourcer does not implement your requirements as you expected. Why? You were beating around the bush with niceties instead of being straightforward, and the outsourcer, who is used to very straightforward communications, interpreted your requirements as suggestions.
Tip No. 3: Confirm your requirements.
There are a few steps you should take to confirm that the outsourcer thoroughly understands your requirements.
- Document your requirements. After you convey your message verbally, follow up in writing. Commit your requirements to paper for the outsourcer. Many people understand written languages better than spoken languages, probably because there is more time to process the message. The reader has the opportunity to reread the language at his own pace and look up words in a dictionary as needed.
- Insist that your outsourcer redocument your requirements. Leave nothing to chance. Require that outsourcers write the requirements in their own words. If outsourcers can't relay to you what you explained to them, then they didn't understand you. You must get this feedback to verify that they actually "get it." Don't settle for a response such as "Yes, I understand." Your outsourcer must reiterate your verbal and written communications to close the loop.
- Request an outsourcer-created prototype. After the requirements are written, the outsourcer should create a prototype for you. This is a safety net that ensures that they absolutely, positively understand your wants and needs. Pictures are powerful vehicles for communication -- even more effective than the written word. Request that the outsourcer sketch what you want your final product to look like or build a quick, simple program that reflects how the final product will look. That way, everybody working on it can see and thoroughly understand how the final product should look and act.
Tip No. 4: Set deadlines.
Another important cultural difference relates to schedules and deadlines. To Americans, a deadline is a set completion date. You estimate an appropriate amount of time to complete a project, select a specific date and then deliver a completed product on that date. In many other cultures, a deadline is a suggestion that maybe something will be finished by the indicated date. To ensure that your product is delivered on time, it is imperative to add a penalty clause to your contract. Make it crystal clear that you will not pay if your product is not delivered by the specified date. An alternative approach is to enforce late fees if your outsourcer doesn't deliver on time. A simple rule of thumb: Without consequence, there is no delivery.
Adam Kolawa is co-founder and CEO of Parasoft, a vendor of automated error-prevention software and services in Monrovia, Calif. Co-author of Bulletproofing Web Applications (Hungry Minds, 2001), Kolawa has contributed to and written more than 200 commentary pieces and technical articles for numerous publications. He holds a Ph.D. in theoretical physics from the California Institute of Technology.