Sunday, May 24, 2009

Common Issues with Outsourcing

Businesses spend billions of dollars on IT outsourcing for obvious reasons:

  • Lower the cost of IT development and maintenance;
  • Free up internal IT stuff for more high-level work;
  • Raise the skill level of internal IT staff thru the transfer of knowledge from outsourcing providers;
  • Free up in-house staff from IT services and focus on the core business competencies.

According to analyst firm Aberdeen Group, reducing IT costs remains the main driver behind outsourcing for 82% of companies in the US that engage vendors in developing countries.

But how much do you really save when you outsource?

Surprisingly, companies report only a 26% average cost savings on outsourced projects, with nearly half of outsourcing projects failing outright, or failing to meet expectations.

According to Aberdeen:

  • 76% of companies said that vendor management effort and costs were much higher than expected
  • 30% reported ongoing issues with outsourcer management processes (e.g., inadequate governance and conflict resolution procedures)
  • 51% reported that outsourcer was not performing to expectations

What are the main barriers that reduce success of outsourcing down to such numbers?

A lot of companies fail to recognize that $25/hour in India versus $100/hour in the US for IT development work doesn’t simply translate into a linear 75% cost reduction for the overall project. Since a successful project goes beyond writing code that compiles, it has to include a set of other important factors and processes that have to be managed, at least partially, in the US:

  • Thorough understanding of your business, your competitors’ strategies and your industry in general.
  • Proper communication of your business goals. Is it speedy and cost-effective time-to-market and adding more functionality later? Or is it building a full-functioning product from the start? What functions are less relevant and could be sacrificed now in order to get the best value for your dollar?
  • Properly set Service Level Agreements that clearly define expectations and responsibilities
  • Detailed Discovery phase and proper documentation throughout the project
  • High commitment on the home front to keep the strategy and processes on track
In many cases - a special set of management skills since the development team is located abroad and is out of your sight. The "out of sight - out of mind" approach is doomed to fail.


Instead, what you see quite often is:

  • Application specifications documents don't go beyond "specification outlines" that briefly describe what screens are supposed to do, but don't include use cases, detailed field descriptions and text of the messages
  • Service Level Agreements (SLAs) are set very vaguely, or not set at all, so there is no way to accurately measure the outsourcer's performance, since performance metrics haven't been defined from the start
  • Client Company's goals (long-term and short-term) are not taken into consideration. The client expects the achitecture of the web application to be flexible enough to allow for an easy addition of certain features that his competitors are starting to implement in their online systems. Instead, the developer hasn't researched where the client's industry is going, and designed the application to be somewhat extensible in general areas that are of little importance to the client
As a result, the oursourcer delivers a project that doesn't meet the client's expectation for some of the following reasons:
  • Overall look and feel of the application fails to meet industry standards, is unintuitive and full of grammar and spelling mistakes
  • Certain requirements were simply assumed as common sense, but weren’t spelled out and therefore weren't delivered
  • Screen flows and process flows are not as smooth as expected, and at times just plain awkward
  • Items that should be easily editable are hard-coded instead and require significant effort to modify
  • The application "works" overall, but is buggy. Some of the "bugs" are due to miscommunication (the client expects a certain confirmation message to appear after the user clicks on "Submit" button. Instead, the information gets submitted, but no confirmation message is displayed to the user).

As a result, the client company would attempt to revive the project by pumping in more money and dedicating a higher management effort. This becomes a problem since making changes to the "existing application" is not the same as designing a good system from the start. The original architecture may not withstand the new changes, and some of the existing functionality gets broken in the process.

At this point the original developer may have already moved on to the next project, or to the next development firm.

A few months later the client company is ready to turn over the code to a local consulting company in the US.


So what is the cost of an outsourcing failure?


Since generally the client would be willing to provide a lot more additional funding to "recover" a failing project, as well as much more management effort at a rate of professional labor in America, the cost of a failed project may be equal or higher than the cost of developing this project successfully in the US.

Lets say, the original bid was 200 development hours at a cost of $25/hour ($5000 total).

The actual cost of the failure might be as follows:

  • $5000 initial offshore development
  • $5000 additional offshore development
  • Project management performed by Company A at Discovery phase of the project (say, a typical 20% of the development hours): 200 dev hours * 20% * $75/hour = $3000
  • Project management performed by Company A at "Recovery" phase of the project:
    (another 20% of the development hours): 200 dev hours * 20% * $75/hour = $3000
  • Bill received from the local IT consulting company for auditing the code: $2000
That brings the total initial cost of the nightmare to $18,000!
And this doesn’t even include potential revenue and customers lost due to unrealized time-to-market.


This doesn't mean that every outsourced IT development project has to turn into a nightmare. But for an outsourced project to be successful, domestic client company needs to engage a strong local management resource to oversee and actively participate in the project.

Strong local control of the process is absolutely crucial:

  • A US-based resource is more likely to understand your industry and your business goals, plan for changes in the future, act as a consultant and recommend the best solution for your dollar.
  • A human that lives in the same culture is likely to experience the same pressures as you and distinguish between the important objectives and the less urgent ones. In the end you get more "meat" with less effort.
  • A local resource is more likely to feel accountable for the outcome of the project and be interested in building a strong long-term business relationship with you versus making a quick and easy profit and then disappearing and moving on to another client when working relationship with you gets bumpy. This is especially true if you are a small company.
  • And then there is the "look and feel", something you may not be able to explain intelligently, but you know it when it doesn’t feel quite right. It may be an awkward wording of the "thank you" message that your system sends out to your customers, or perhaps the overall feel of your application is dry versus "sticky" or "cutting edge, yet trustworthy".
Are you willing to spell out what "cutting edge, but trustworthy" means? Are you willing to define every piece of verbiage in your application? No? Then you need to have another local resource, who would set your project on the right path, both for your brand, and for the business functionality (and who has enough experience foreseeing and addressing these "common sense" issues). 

If very little executive effort is spent throughout the development of an outsourced project, chances are the end result will be very disappointing. There has to be an intelligent gateway between the client and the outsourcing team. Someone who fully understands not only how business works in the US but also knows the strengths and weaknesses of outsourcing to that particular country. Only such a resource can help you develop the long-term outsourcing strategy, draft a high-level diagram of the processes involved, correctly translate your business requirements into IT language, foresee and workout the cultural differences and hold tight control over the execution. 

In other words, someone to help you smoothly go through the process and get the most value with less effort.

At elKore we offer the most efficient and cost-effective development process by combining project management, technical design, support and delivery resources in Dallas, TX with software development and creative design resources in Eastern Europe.

No comments:

 
hit counter
unique hit counter