Apply today for a FREE subscription to CIO Magazine!
Sun, Jun 24, 2007 17:03 EDT
|
Posted by: Michael Kavis in Rants Topic: Development
Current Rating: |
There have been so many articles both for and against offshore development over the past few years. For every success story there is an equivalent horror story. With every horror story comes countless articles chanting "I told you offshore development doesn't work". Here is my take on why offshore development fails and where the blame typically lies.
There are always going to be some offshore companies that are bad business partners just as there are US based consulting companies that can't perform. So let's take those companies out of this discussion. Regardless, who is responsible for selecting a bad partner? That's right, look in the mirror.
Before I get too deep into the discussion let me get my disclaimers out in the open. As an American citizen and an employee in IT, I cringe when I see IT jobs sent overseas. As an employee of a public company and a manager in IT, I understand that it is my duty to control my budget and give the business the best bang for their buck. When done right, offshore development can be an effective means for accomplishing these goals. In my world, the business has always demanded way more work then my staff was capable of delivering. So as much as I don't like seeing American jobs leave the country, I understand the economics behind it.
With that said, let's get back to my point. Offshore development can work when it is used for the right reasons and more importantly, when it is managed properly. I have seen companies who send development offshore because they are frustrated with their IT shop's ability to deliver. This can be a recipe for failure. If your IT shop can't manage their own projects, how do you expect them to manage projects where the development is done thousands of miles away? One of the biggest barriers to success in offshore development is internal resistance from the home based staff. So who is to blame when these projects fail? Again, look in the mirror.
At my current job, there are three different offshore initiatives in place. Two are working and one isn't. Let me explain the reasons why.
Case Study 1. We have one application that has been leveraging offshore development for a few years. The first year was a disaster because we ignored the change management aspect of the initiative.
Quite interesting article. I agree very much many points of the article, especially the point that failure is not only on the vendor side. Managing the offshore development effort is quite challenging at times. Many development managers feel that they can "throw the requirements" over seas and expect magic.
I believe that one of the important aspects of managing the offshore relationship involves doing the indepth architecture and design onshore. This way the offshore developers do just that "develop" based on the established design.
In implementing over 2300 (twenty-three hundred) projects (about 60% have been sent offshore), I noticed that sending off "just the requirements" offshore is very dangerous and has decreased the success factors.
Great points. Here are some tactics that have worked for me:
i) I prefer to outsource projects that can be easily specified in an unambiguous fashion (example: UI design) rather than projects where it can be difficult to measure the output (example: algorithm design where it can be difficult to evaluate whether the algorithm is efficient enough).
ii) I prefer to chunk up projects. This way I end up with weekly deliverables that my team can evaluate on an ongoing basis and track success. This approach also has some IP protection advantages. I recently chunked up a project and different parts of it got done by 3 different vendors in China, Brazil and Canada. The core algorithms got done by my own team. This way, none of the outsourcing firms gained access to any valuable IP but we were able to significantly accelerate our development.
One missing point seems fundamental to me, and that is communication. I assume that you are implying it in "vendor management", but it deserves a paragraph, if not a post or even a full Blog!
My observation is that the communication should be established at two levels:
- Formal one, through the usual tools, for managing the project, etc. In our company we are using wikis and blogs, which “force” the parties to communicate in a more interactive way. We found that emails and other structured software were inhibitors
- Informal ones. There is much more than a time difference problem between the clients and their offshore centers; the difference in culture is way bigger, and the ability to communicate in English is not sufficient for people to truly understand each other. We have developed internally some tools and techniques that help people understand each other’s culture and behavior better. We found it a very efficient way to get all parties involved to accept the cultural differences more easily.
Remi,
Good points. I did imply communications within the term "vendor management". I recommend a person full time on-site as the central point of contact. That person can manage the communications to the offshore team.
Another part of the vendor management is to establish and enforce clear expectations throughout the project(s). This is done through regular scheduled checkpoints where the team accesses the work that has been done, discusses any challenges or issues that have been encountered, and makes any adjustments necessary going forward.