SearchCIO.com, November 10, 2003
http://searchcio.techtarget.com/originalContent/0,289142,sid19_gci935985,00.html
10 secrets of successful offshore software development
By Nari Kannan
A large percentage of American companies are already utilizing offshore software
development or considering doing it soon. Many large companies are setting up their own
operation in countries such as India and China or contracting with companies there.
Offshore development advisory services often concentrate on the procedural
mechanics of offshore development such as selecting a country, selecting a
provider, drawing up appropriate legal documents, monitoring, benchmarking
performance, etc. These steps are important and necessary steps in offshore
development but by themselves are not enough to guarantee that it is successful.
So what will make offshore software development successful?
Extrasourcing is disciplined, strategic and appropriate offshore software
development. Extrasourcing advocates extended or virtual software development
groups offshore. The core software development group here works closely on a
daily basis with their offshore counterparts. There is very tight project
coordination and communication between the development group here and its
offshore counterparts.
Extrasourcing puts a lot of thought into what tasks are appropriate for
offshore software development and how they must be performed -- from the moment
it is initiated through to its continual execution. It minimizes the discomfort
and alleviates the perception of threats to job security that an offshore
software development group may have on your core software development employees.
It helps select the right kind of tasks, communication and project management
techniques that work for offshore software development.
In other words, extrasourcing is intelligent offshore software development,
maximizing its potential for success on an ongoing basis.
Here are ten secrets of successful offshore software development that
extrasourcing brings:
- Prototyping locally, product completion and hardening offshore: As
anyone who has led a software development group can attest, the most valuable
resources on any development project spend a lot of time fixing bugs or making
small, important but time-consuming changes to user interfaces in every release.
The result is that the core development group does not have time to talk to
product management or business groups and proceed with prototyping the next
version release of a product or application. A Core software development group's
time should be used only to quickly transform business needs or product
requirements into prototypes. This can ensure that the core development group
addresses risky technology issues, ensures consistent architecture, etc. in
their prototypes. That leaves the completion and hardening (testing on multiple
platforms or browsers and fixing bugs) of the product to offshore software
development teams.
- Tight and local overall project management: Most offshore software
services vendors are SEI, CMM or ISO certified. However, following these
processes may mean writing extensive requirements or design documents. The
reality with many software development groups especially in venture capital
funded companies is that there is not enough time to write these documents.
Extrasourcing advocates tight and close overall project management and considers
the offshore team as an extension of your team here rather than as a vendor that
delivers on specifications. This can easily be done with a local technical
representative of the offshore vendor present onsite all the time and
participating in all strategy and tactical product requirements or team
meetings. This eliminates the need for extensive documentation and keeping it to
a basic minimum as needed for contractual purposes.
- Communication techniques and tools: Extrasourcing, by its very
nature, imposes the need for effective communication techniques and tools. Since
software development teams here and offshore are working on the same development
efforts, they cannot get their work done if they do not communicate well and
frequently. Communication techniques and tools are more important to offshore
software development efforts than technologies and programming. Companies that
have used offshore software development efforts can attest to the fact that
efforts that fail do so, not because of technology or programming skills, but
because of communication issues.
- Better employee morale: Core software development groups are always
working on exciting architecture, prototyping and high technology risk efforts
while the offshore development groups are taking care of the other important
software development tasks like product hardening. This effectively removes the
perceived job threats that many offshore development efforts bring to your
software development personnel.
- Shared responsibility avoids finger pointing: Since the tasks for the
software development efforts are shared between the local and offshore teams,
the responsibility for making the whole effort successful is shared equally
between the two as well. This is better than the situation where the offshore
service provider supplies -- in perfect working condition -- the wrong solution!
Communication is the culprit here, and as anyone who has dealt with requirements
knows, business conditions change quickly and can make requirements obsolete
very quickly.
- Parallel offshore efforts lead to accelerated release cycles: Since
the local software development group is always working only on prototypes of the
next release, there is a possibility that multiple release cycles could be
planned at the same time. For example, while the local software development
group is working on, say, prototyping v3.0, multiple offshore software
development groups are working on hardening, testing and fixing bugs in V2.8 and
V2.9, in parallel. When these releases are ready, they could be released on a
schedule that makes sense to your customers. Time between releases is not
dictated by development tasks and schedules, thus compressing release cycles.
- Development continuity: Extrasourcing ensures that the local software
development group always has a group of people familiar with the source code of
every release. If software development efforts are fully outsourced, knowledge
of the code may be only with the vendor, and this may be somewhat disconcerting.
If for some reason the offshore vendor relationship does not work out, there
will be a local group of software developers familiar with the code.
- Safe and effective knowledge management: One of the biggest concerns
companies may have with complete offshore software development is safe and
effective knowledge management. With extrasourcing, this concern is somewhat
alleviated since core knowledge about requirements, architecture and complex
technical designs are always available to the local software development team.
- Intellectual property protection: Extrasourcing enables companies to
provide stronger intellectual property protection. Many highly sensitive parts
of the software that incorporate intellectual property can be wrapped in an API
(Application Programming Interface) -- and only the interfaces provided to the
offshore development team for further development. This can ensure that core
intellectual property is always protected.
- Alternative sourcing: If a relationship with an offshore software
vendor does not work out, extrasourcing will make the switch to another vendor a
little easier. Knowledge transfer is less of a problem because the core software
development group may have the knowledge to do effective alternative sourcing as
opposed to when the whole project is outsourced.
Offshore development promises, has delivered, and continues to deliver a lot
of value to those companies that have the knowledge and experience to do it
right. Extrasourcing provides a thoughtful effective way to pick the right parts
of projects for offshore development, provides a framework for ensuring their
success, and safeguards intellectual property and knowledge management.