Thinkpiece: Think before pushing development offshore
- By Venkates V. Swaminathan
- June 1, 2005
In Bangalore, India, it’s common to hear of developers leaving their jobs
for others that pay twice as much. This churn is driven by companies in the developed
world transferring development to India as fast as possible. In this mad rush,
some projects are being outsourced that ought not to be.
Here are five questions to ask yourself before you send work overseas:
- Are requirements well defined? The classic case of when
not to outsource is when you’re not quite sure what you want the final
product to look like. Given the time differences and communications issues
for offshore development, any uncertainty is likely to result in delays and
This is especially an issue for small teams working on critical projects,
such as in a startup or in a leading-edge product development effort. The
technology infrastructure is often not well defined, standards change quickly
and the customer is often not well understood. Even with investment in process
and communications, these projects are not likely to succeed offshore because
they require the constant communications of a closely knit and collocated
- Is there a suitable development process? Many software
teams now rely on newer methodologies like extreme programming which require
constant iteration across specification, design, development and testing.
These models are incompatible with the approach of many offshore companies,
as they have invested significantly in achieving a Capability Maturity Model
rating of 5, which is based on a more traditional waterfall development process.
Even where offshore partners are willing to use an extreme programming process,
the degree of interaction required makes it very unlikely to succeed.
- How much user interface and business process expertise is required?
Many countries are training their people to speak American English
and to use American idioms like “in the ballpark.” However, all
that training does not make it possible to understand the needs of a user
who has a completely different cultural background.
For enterprise software, especially, where the user community is located in
the U.S., or in other countries around the world, getting local expertise
to design the user interface in terms of workflow, screen design and even
field names, is crucial.
- How critical is intellectual property and data protection?
Laws in India, China and other countries are just as tough on intellectual
property theft as those in the U.S. or other developed nations. However, enforcement
can be difficult, for many reasons:
- The process of conducting employee background checks is generally more
complex and involves ad hoc techniques rather than established databases
- Many outsourcers work for multiple clients, and could well be working
for you and a competitor at the same time. Intellectual property can be
leaked inadvertently in hallway conversations.
- Employee turnover in countries like India now approaches 30 to 40 percent
annually for many IT firms. With turnover rates this high, it’s impossible
to ensure critical employees won’t be working for the competition
after they leave.
- Even where it is detected, prosecuting IP or data theft in other countries
can be complicated and time consuming due to different (and generally less
litigation-friendly) legal systems.
- How time sensitive is the project? Offshore development
may not be the best approach for time-sensitive projects. The high turnover
rates, and the difficulties with communication and process, can create situations
where critical deadlines cannot be met or quality suffers.
Offshore development is here to stay. When used on the right project, with
a process that is well thought out, it can be a tremendous success. As one
engineering manager I recently spoke to said, “It’s a great way
to augment a local development team, and to make things feasible that wouldn’t
otherwise be. But it can’t be looked at as just a cost reduction, as
in ‘Push it overseas to cut costs by two-thirds.’”
Venkates V. Swaminathan is a consultant to
companies that outsource software