Hello
and welcome to the first issue of our weekly
newsletter.
Our
objective is to keep you informed about
the topics related to the offshore outsourcing
especially in the area of Software Development.
In coming weeks, we will discuss the Risks,
Best Practices, Tips and Techniques and
other topics related to offshore software
outsourcing.
In
this issue, we start a five part series
to discuss the risks related to the offshore
outsourcing and how to mitigate or eliminate
these risks.
It is a well known
fact that the offshore outsourcing (or any type of outsourcing
for that matter) carries known and unknown risks. The
important thing is to find out if your offshore outsourcing
provider is aware of these risks and has a plan to either
mitigate it or eliminate it altogether. The top 5 risks
of offshore outsourcing are as follows:
Services
Application
Development & Maintenance
eCommerce
Dedicated
Offshore Technology Center
Product
Lifecycle Management
Quality
Assurance & Testing
BPO
Technology
Consulting
Requirement
(Mis)understanding
Quality
Risks
Data
Security
Process
Discipline (CMM)
Project
Timeline
Many times
it happens that the requirements get written
in a hurry to get the project started as soon
as possible. This is okay if the project is
being done inhouse. However if it being outsourced,
it becomes a risk. If the specifications are
not written properly or are incomplete or do
not have enough details, the project will have
problems on various fronts such as Project Understanding
- what needs to be done and delivered, Project
Planning - putting together firm dates for delivery,
Change Controls - lots of change control will
be generated later on in the project life cycle,
which could obviously delay the project as well
as increase the cost.
Per
the study conducted by Software Engineering
Institute, not enough understanding or the clarity
around the customer requirements is one of the
top reasons on why software projects fail or
get delayed.
In
order to mitigate this risk, make sure that
your provider has gone through the requirement
understanding phase before starting the coding
phase. The requirement understanding phase should
have multiple rounds of discussion with all
the parties involved to fully understand and
document their requirements in the Software
Specification Documents. This phase is independent
of technology selected for the project. For
the web based projects, the provider should
also prepare the HTML mock-ups which is an excellent
way to capture the application flow. [These
mock-ups should get reused during the coding
phase for embedding the application method calls.]
The
first phase of any software development project
must be the Requirements
Development. The objective of
the Requirements Development phase is to gather
the needs of the customer and translate that into
requirements specification of what the system
must do. Requirements Development consists of
three related activities:
Analyzing
Requirements, which is about determining the
acceptability, implement ability, and testability.
Inspecting
Requirements, which is accomplished by discussing
the proposed requirement in detail. The goal
is to identify the issues and errors related
to the requirements ambiguities or discrepancies.
Gathering
User Requirements, which is accomplished by
interviewing the potential users about the system
they want, building the interactive prototypes,
writing the Requirement Specification documents.
The
deliverable from this phase is a detailed requirements
document which should get jointly reviewed and
signed off.