| Why
Offshore Your Software and Web Development? |
 |
| Introduction |
 |
| Software development, including
stand-alone applications, network applications
and web-based sites and business applications
can now be done easily and inexpensively offshore.
The focus of this article to discuss some
of the background behind outsourcing and offshore
software development, and why you may wish
to consider offshore software development
for your future projects. |
 |
| Here's
what we'll look at: |
 |
- Outsourcing, offshoring and body shops
and the differences
- Myths about offshore software development
- Global factors impacting the software
development industry
- How the offshore software development
process works
- Benefits of offshore software development
- Best types of projects for offshoring
- Mitigating the risks of offshore software
development
- Why offshore software development in
India?
- Action Plan: Your first offshore software
development project
- Outsourcing, Offshoring and Body Shops
and the Differences
|
 |
| Outsourcing
|
 |
| Unless you've been hiding
under a rock someplace, you have no doubt
heard of outsourcing - and, have very likely
been directly affected by it. Perhaps your
job was 'outsourced'. In some cases - you
become the 'loser' - having your job given
to some local competitor - in other cases,
you may have become the 'winner' - being able
to continue the work you've always done, but
under your own company now separate from the
company you formerly worked for. |
| |
| Offshore
Software Development or "Offshoring"
|
 |
| The term "outsourcing"
can also be extended - in cases where the
work is now to be done outside the borders
of your own country. A new, and popular term
for this is called, "offshoring".
Outsourcing or offshoring in their own
rights are not 'bad' or 'evil' - they are
simply a way companies can gain two benefits
that may be critical to their survival:
Leverage cost reductions - by taking advantage
of lower offshore labor rates or economies
of scale for both local and foreign firms,
and; Core competency focus - meaning that
companies outsource work outside their area
of core expertise. For example, if your
company makes tires - does it make sense
to develop a huge IT shop that develops
complex software and web sites? No - you
focus on what you know best, which is to
make tires, and let outside experts take
care of the IT problems.
Offshore Software Development, or OSD,
is not new. Companies throughout North America
have been using developers in India for
over 20 years with excellent results and
high ROI.
Although you may not hear much about it
- many of products developed and marketed
by some leading American companies are,
in reality, developed abroad, or developed
by foreign workers employed locally.
What has happened in the past five years
that has really brought these issues to
the forefront is the incredible popularity
and ubiquity of the Internet and general
telecommunications infrastructures even
in 'developing countries'. This has served
as 'the great enabler' of a new 'global
economy' - making it almost effortless to
both buy and sell products and services
electronically.
|
 |
| "Body
Shops" |
 |
| The term "body shop"
refers to a local firm whose working staff
are temporarily imported foreigners - usually
working on some form of 'temporary' or 'short-term'
visa, like the American H1-B class of visa.
Body shops have in many cases earned the
reputation similar to the old 'sweat shops'
- where foreign workers are made to work
extended hours for much lower pay then comparable
local workers.
In theory, there are regulations in place
to ensure that 'body shop' employees are
paid typical local salaries for their work,
workers enter the country legally, and receive
the same benefits as local workers - however,
in reality, there are enough loopholes in
the laws so that this is seldom the case.
Hence these shops operate locally, but at
significantly lower prices than local shops.
This is NOT what offshore software development
is about.
|
 |
| How
Offshore Software Development is Different
|
 |
| The term "body shop"
refers to a local firm whose working staff
are temporarily imported foreigners - usually
working on some form of 'temporary' or 'short-term'
visa, like the American H1-B class of visa.
Body shops have in many cases earned the
reputation similar to the old 'sweat shops'
- where foreign workers are made to work
extended hours for much lower pay then comparable
local workers.
In theory, there are regulations in place
to ensure that 'body shop' employees are
paid typical local salaries for their work,
workers enter the country legally, and receive
the same benefits as local workers - however,
in reality, there are enough loopholes in
the laws so that this is seldom the case.
Hence these shops operate locally, but at
significantly lower prices than local shops.
This is NOT what offshore software development
is about.
How Offshore Software Development is Different
True offshore software development is done
either entirely, or very nearly entirely
offshore. Contact with clients is conducted
almost entirely via electronic communications.
In very rare cases short visits or exchanges
of personnel take place - and if so, only
for very short periods of time. The 'real'
development work is done entirely offshore
over the course of weeks or months.
In very rare situations, it may be necessary
and/or desirable to have an offshore worker
placed in your workplace for a short period.
This is a very rare instance, and generally
only necessary if you have a product or
service upon which the developer must be
trained before being able to participate
and be productive on your project.
These situations are not considered to
be 'work' but more of a 'training' or 'knowledge
transfer' exercise. What normally happens
is that the offshore worker receives the
necessary training, documentation and resources
to take back to his home country and train
the other developers and/or complete the
work.
In some cases a project manager or project
manager will do an on-site visit to organize
the upcoming project and put the necessary
communications and technical infrastructures
in place.
|
 |
| Myths
about Offshore Software Development |
 |
| The following are some of
the widely held myths about offshore software
development, and developers. |
 |
| Offshore
development is just cheap access to low-skilled
labor |
 |
| This is false on two points
- first of all, offshore developers typically
have very high levels of skills and experience.
For example, in our company, the average developer
has over 10 years of software development
experience, over 4 years of which being with
our company alone. Over 97% of our software
developers hold a University Degree - many
at the Masters and PhD levels - in high sciences
like Mathematics, Physics and Engineering.
Developers with these qualifications can in
no way be called 'cheap' - and in fact, may
cost much more than many other offshore firms
- but, as the saying goes - you get what you
pay for! |
 |
| Are
only suitable for low-skilled coding - not
for design work |
 |
| This is also incorrect. During
the past 5 years, Indian Universities and
private schools have been turning out some
of the brightest software engineers in the
world. This speaks a lot of the dedication
to training, education and certification for
top-notch developers, designers and engineers.
|
 |
| Offshore
developers are underpaid, and work in deplorable
conditions |
 |
| Even in India, there is a
strong demand for highly skilled software
developers. Even though the salaries are still
far below what is available in Europe and
North America, this certainly doesn't mean
that the top people don't make good money.
Naturally the 'best' jobs are considered to
be doing offshore software development - however,
for these jobs, to get the best people still
means paying the best salaries and offering
excellent working conditions. Additionally,
as the work is done for foreign clients, additional
requirements for English language skills and
the latest hardware and software are also
required. |
 |
| Offshore
developers receive no benefits, don't pay
taxes and all cash goes into their pockets
|
 |
| Unless you are talking about
a very small shop, this is entirely untrue.
In our office, we have over 100 full-time
software developers and engineers. All are
legally employed, and our professional offices
(located in the center of the city) are regularly
inspected by the taxation authorities. All
software in our office is also regularly audited
and inspected to ensure we are working with
legal copies. As a Microsoft Development Partner,
we are provided with early copies of the latest
software. |
 |
| Offshore
developers work with antiquated equipment
and have inadequate facilities and infrastructure
|
 |
| Again, this is totally untrue.
At the time of this writing, the average computer
in our office is a 2Ghz Intel Pentium P4 with
512 Meg or more of RAM. We currently have
dual 256k backbones to the Internet. Our internal
office network has 10mb, 100mb and wireless
segments. We have dedicated development labs,
test labs, QA labs, server farm, firewalls
and DMZ isolating live servers from internal
systems. As required, we can establish cloned
development, staging and production servers
to mirror our client's configuration. We are
also able to develop fully redundant and clustered
solutions.
No protection of intellectual property
- problems with rights and ownership of
software
Regardless of whether your software development
is done right at home or elsewhere in the
world, you are well advised to get everything
in writing from the very beginning of a
project. Our company doesn't even ask for
even a detailed description of the project
until a suitable NDA (Non-Disclosure Agreement)
has been agreed upon and signed.
I cannot speak for other countries or companies
but India, for example, is cracking down
hard on copyright violations and is pushing
hard to protect the rights of foreign companies
making investments and business cooperation
with India. Doing so is simply good business
sense.
In the case of our company, the client
retains ALL RIGHTS to any software developed
for them under contract. There are some
exceptions, such as where third-party components
are used to speed development, but those
are normal situations. Clients not only
receive all rights, but also all source
code, documentation and anything else related
to the projects. We are able to maintain
source code for some predetermined amount
of time, but if requested, can certainly
agree to destroy all copies if that is deemed
necessary.
As an example of security and protection
of proprietary information - we have one
team dedicated to one particular company
and series of projects. These team members
are each under strict and separate NDA with
our company. Their lab is secured by pass-card,
and they are not permitted to even speak
with other developers about their work.
If this is the level of security and confidentiality
you need, it can be had even in India.
|
 |
| Global
Factors Impacting the Software Development
Industry |
 |
| One of the great 'equalizers'
in the global economy is the Internet and
other forms of modern telecommunications.
Today, unlike just a few short years ago,
programmers in one part of the world can work
seamlessly on projects across the globe. Likewise,
work may be distributed to programmers in
many locations - unrestricted by time or distance
- to be reassembled as working units back
home.
What is actually more important than the
pure communications aspects of software
development and project management can be
found in how the software development industry
has changed in general during these few
years:
Programming and general software development
is no longer a highly 'specialized' or 'rare'
skill - universities and colleges throughout
the world have increased their output dramatically
in these areas of focus for the past 5 to
8 years.
Private Colleges, business schools and
commercial training institutes were even
earlier adopters of the IT training and
get-rich-with-an-it-diploma programs - flooding
the market with truck-drivers-turned-systems-engineers,
and network administrators who's previous
work provided them with a free paper hat.
Thanks to the dot-com bust in recent years
- many 'web experts' are now on the unemployment
line. (Either unable, or unwilling to accept
and adapt to the fact that the work they
formerly received $100K+ per year for can
now be done in India for 20 Euros per hour.)
In the reverse - the global economy also
means that companies can sell their products
and services to a global market - provided
that their products and services can be
developed and delivered effectively, efficiently,
and for a reasonable price.
As well, many of the recent graduates are
lacking in basic scientific, mathematical
and analytical skills. They may know how
to 'code' - but they may not have a grasp
of the creativity and science to develop
creative and innovative solutions to business
problems. These very skills are what have
made the Indian educational system stand
out. The Indian focus on fundamentals, science
and logical thinking give their graduates
the ability to develop creative solutions
despite limited resources.
Unfortunately, the situation is unlikely
to change in the nearest future. Although
universities and colleges are cranking out
'computer science' graduates - many are
coming to the market with the hopes of making
a lot of money very quickly. Despite the
recent downturn in markets - salaries in
North America and many European countries
are still artificially inflated.
Another problem these days is rapid staff
turnover - and a loss of company loyalty.
In North America it has become frighteningly
easy and popular for people to jump from
company to company. Sometimes employees
are lured away by money - other times it
is perks and benefits or more exciting and
challenging work. One would almost wonder
when looking at some people's resumes whether
they will even be able to stay with one
company for just one entire year.
This trend has led to an upward spiral
of salaries, benefits and perks - reaching
the point where even to attract mediocre
staff - you have to give away benefits and
salaries formerly only available to top
managers and executives. As well, unless
you are able continually offer more and
more - people will quickly become dissatisfied
and move on. This is simply the law of supply
and demand at work. (Employees demand -
you supply!)
In India, and many other countries abroad
- the situation is quite different. Companies
who are able to offer very modest benefits
and salaries as compared with their western
counterparts are highly sought after by
job seekers. When a person lands a job at
a stable Indian company with a good salary
and benefits - they are going to put forth
their best effort to keep the job - because
they know that there are hundreds of people
just dying to snap up their position if
they leave.
This reversal of demand between the companies
and job seekers means that offshore software
development companies can pick and choose
the best people possible from a much wider
selection. Relaxed labor laws and a huge
labor pool mean that it is much easier to
replace workers who don't perform.
The overall result is that Indian companies
typically have a much lower turnover rate
than their North American counterparts.
People who work together over many years
on many different projects tend to have
much better communications between team
members - teams become tighter, more dedicated
and more focused. Working on many different
projects gives each team member valuable
skills and knowledge to carry through to
future projects.
Today, the world is a very small place
- and our competitors are no longer just
those businesses within our own town or
city - they may be anywhere in the world
and in many cases are not restricted by
time or distance.
During the dot-com boom period, companies
used up all the local resources they could
find, and used offshore resources to build
staffs they couldn't otherwise find. After
the dot-com bust - companies are struggling
to survive - and simply cannot afford to
pay inflated salaries of internal staff,
or local companies for basic work.
It is no longer a question of whether or
not you want to have your software development
done offshore - it is a question of survival!
|
 |
| How
the Offshore Software Development Process
Works |
 |
The basic steps in taking
your idea from concept to reality are actually
very well structured and fairly simple.
Depending on your personal level of sophistication
in the software development process, and
how well you are able to prepare your specifications,
the process may go one of two ways:
If you have only limited internal software
development resources, and are unable to
prepare a detailed technical specification
yourself.
You develop a statement of concept, or
a proposal that outlines your idea.
You locate a suitable offshore partner
to work with. You may find them by searching
the Internet, but better is to have referrals
and references from satisfied customers.
(This part of the process could be a research
document of its own.)
Your partner should provide you with a
signed Non-Disclosure Agreement - either
of your design or theirs. You would then
provide all information about your intended
project to your partner.
Your partner should be able to give you
a very rough idea how long your project
should expect to take, and roughly the amount
of resources (person-hours/days/months of
development)
If you have a budget for your project -
you may be at odds with yourself on whether
or not to release the figure to your potential
partner. If you are worried about the partner
'padding up' the estimate to meet the proposed
budget - then you've picked the wrong partner!
In my experience, if a potential client
gives me at least a 'ballpark' figure on
the proposed budget, I can almost instantly
give a yes or no answer as to whether it
is feasible or not. This saves everyone
a lot of time and effort.
REMEMBER: At this point, the best you will
receive is a VERY ROUGH estimation - however,
you should be able to judge whether your
project is feasible or not and whether or
not to proceed to the next step. (DO NOT
expect to receive a fixed-price contract
unless you are able to provide detailed
requirements specifications as in the second
case below.)
The next step is to contract the partner
to work with you to develop the idea into
a concept document, and then eventually
into a software specification. The partner
will normally be paid for this. The end
result is that you should have a detailed
enough specification to either attempt to
recruit better prices for the development
work, or to proceed with your current partner.
NOTE: This is often the point where you
may be tempted to take the 'lowest bidder'
rather than to continue with your current
partner - use extreme caution if you take
this route because: a) the lowest bidder
may not have the skills, expertise or experience
to complete the project - and you'll be
left with nothing, and b) you will alienate
your current partner, who has already invested
a lot of time and effort above and beyond
what they have been paid - don't expect
them to want to work with you again.
At this point, you should have a formal
proposal, which should include a schedule
and specification for the desired result.
Upon your approval to proceed, many offshore
development shops will require a 'start
up payment' before work begins. This is
typically 5% to 30% of the total budget
for the project.
Here is an example of a typical 'progress
payment' schedule:
a. 25% payment at the beginning of the
project
b. 50% payments distributed through the
course of the project - tied to major project
milestones and sign-offs
c. 25% payment with 30 days of project completion
and acceptance.
This type of schedule benefits you by ensuring
that at no point you ever have more than
25% of the project funds 'at risk' - it
also ensures that the developers have an
incentive to meet milestones and achieve
signoffs - and finally it ensures that they
have an incentive to deliver good, high-quality,
bug-free code to achieve the final payment.
For the development company, this kind
of schedule is also of benefit. It ensures
that no project is started and receives
resources until there are funds available.
It helps keep developers and project managers
on-track and accountable, and it helps ensure
that test and QA staff have high incentives
to do excellent work.
In short - it is a win-win situation!
If you are a more 'sophisticated' client,
have existing software development resources
in-house and can prepare a detailed software
specification.
Perhaps you are considering offshoring
your project to obtain the benefits of time
or skills you may not have available, the
scenario is typically accelerated as follows:
You and your team will have a well-developed
product design and specifications. You may
have a detailed project plan, and time/resource
estimates. You locate a suitable partner;
exchange NDAs and your project package.
The offshore partner will prepare a detailed
project estimate that either is in agreement
with your own, or the differences would
be pointed out. It may be possible for the
partner to provide a fixed-price contract,
or possibly not without further paid estimation
and revision. At this point, you will either
agree to proceed or not - and if so, then
agree upon a progress payment schedule
|
 |
| Project
proceeds to completion. |
 |
| Benefits
of Offshore Software Development |
 |
| Virtually every client has
slightly different needs and expectations
about how Offshore Software Development can
benefit them. I have broken it down into these
main categories: Development |
| |
- Cost reduction
- Time to market
- Experienced team members
- Skills and development
- Access to the latest, hard-to-find skills
- Flexible teams, team scalability and
employment terms
|
 |
| Cost
Reduction |
 |
| Many people believe that the
sole motivation for using offshore software
development services is merely as a means
of reducing cost by taking advantage of lower
general salaries and living costs abroad.
Although this is certainly one factor - there
are a number of other equally important benefits
you may not have thought much about. These
will be covered further below.
Regarding issues of cost reduction, you
always need to think about the "Loaded
Labor Rate". Although slightly different
for full-time employees, contract employees
and local contractors - they may include
many 'extras'. For example, for a full time
employee your list of costs starts at the
recruiting stage. Professional recruiting
companies typically charge 30% to 100% of
the annual salary - sometimes more! Recruiting
cycles for top specialists can be from 3
months to over a year. Can your project
wait that long to begin?
Other factors in the 'loaded' labor rate
include not just the 'salary' or 'per-diem'
rates - but must also factor in employee
benefits such as training, medical, dental,
vacation, pension plans and co-contributions,
stock options and stock plans. Then there
are fixed costs such as office space, computers
and office equipment, telecommunications,
furniture, and more. So, your $75K/yr employee,
in general, has now cost you a minimum of
$150K to $200K just for the first year.
Another point to consider: how many employees
are truly 'productive' and 'contributing'
to the project from the first day? When
you hire a new employee, you're typically
looking at several months of training and
indoctrination to get them up to speed on
your company, your policies, procedures,
products, services and standards for documentation,
coding and more. This adds typically 3 to
6 months to the date when they can actually
become fully 'productive' and a 'member
of the team'. How much extra does that cost?
Compare this against the price of an offshore
employee - just 20 Euro per hour (on average),
including all benefits, administration and
loading. Plus - if they don't work out -
just replace them with another - no questions
asked!
|
 |
| Time
to Market |
 |
| Every product or service has
a "window of opportunity" - the
span of time where it must reach the market
and become the leader. Missing the window
means that at best case - your product or
service is a 'second-best wannabe' competing
with the leader - in worst case, it falls
into the 'who cares' category of 'also-rans'
- and quickly into oblivion.
Time to market is probably one of the most
important advantages that offshoring your
software development work will give you.
Let's take a simple example: if you and
your company wished to launch the development
of a new product using the latest software
tools available and you wanted to start
tomorrow - could you do it?
In most cases - (if they are honest) the
answer from your project and project managers
would be a resounding "Not A Chance!"
The reasons are simple: if your company
has managed to even survive the past 5 years
- from dot-com-bust through wars and soft
markets - terms like 'downsizing', 'staff
reduction' and 'focusing on core competencies'
should certainly be familiar to you.
In most cases this means that the 'dead
wood' has long since been cut away - and
the people who are left are stretched to
the limit with all the work they can currently
handle.
Add on the factor that probably none of
the few remaining staff have had the luxury
of frequent high-end, vendor-provided training
such as offered by Microsoft certified training
centers to improve and upgrade their skills
in the latest technologies - both for reasons
of cost and time constraints.
This means the people who are left, are
not only too busy and overworked to begin
new projects - they are also severely lacking
skills and experience in the latest new
technologies like .NET, J2EE, CORBA, SOAP
and many others.
Lastly, even if you wanted to hire top
developers with the latest skills - you'd
have the problems of finding them, recruiting
them, and being able to afford them! Top
talent is always expensive. As discussed
earlier, recruiting costs can easily exceed
the annual salary for these kinds of professionals.
Top professionals can take many months,
if not years to find and recruit. Even in
India, top professionals with the latest
skills are becoming more and more difficult
to find - so companies here are now beginning
to 'grow their own' internally.
Your choice is very simple - start your
project quickly and have a chance of beating
your competitors - or try to do it yourself
using local resources and miss the critical
window of opportunity.
|
 |
| Experienced
Team Members |
 |
| In most offshore software
development shops that have been in business
for any length of time, you will find that
the developers have gained tremendous experience
with all kinds of different business systems
and with all levels of code - from binary
and assembly languages for real-time controllers
and dedicated microprocessors - all the way
to the largest international distributed financial
systems, Internet and intranet portals. This
vast pool of experience means that you have
an excellent chance of getting exactly the
person you need, exactly when you need them.
Another advantage is that these skills readily
translate into better quality, and more
rapidly developed solutions for your projects.
Many times, tips, tricks and tools developed
on one project can speed up the development
of other projects. (Naturally, project-specific
code is excluded under terms of non-disclosure
agreements - however, tools and utilities
are reused wherever possible.)
In addition to the experience of the team
members - you are able to call upon the
experience of the team, and the company.
Many offshore software development companies
have highly optimized productions systems
and process flows already established. They
make their money from turning projects around
quickly and efficiently. This is in stark
contrast to some IT shops that must justify
increasing budgets with increasing staff
and increasing delivery times.
The experience of the company is further
documented by CMM and ISO certifications.
These third-party evaluations are an excellent
indicator of the maturity of the company,
the quality of their processes and levels
of documentation. |
 |
| Skills
and Development |
 |
| I spoke a little about upgrading
and maintaining the skills of your developers
if you are doing development projects in-house.
This is incredibly important these days because
of the speed with which technologies are changing
and evolving. For example, your developers
with many years of Visual Basic experience
will find themselves virtually useless when
attempting their first project in VB.NET -
it is a whole different beast!
Does your company want to spend the money,
and lost productivity to continually train,
and re-train your top developers - only
to find that they'll jump ship at the next
higher paying job offer? This is the risk
you take when developing software in-house.
Another factor is experience - if your
top developers are only used to developing
one type of code, with one type of coding
style, with one set of tools and technologies
- how will they even know there are better
ways to skin that cat!
In contrast, by offshoring your development
work, you benefit in a number of ways. First,
most offshore companies, who have been in
business for many years, have no doubt worked
on many, many different projects - with
many different tools, techniques and technologies.
Some developers become 'multilingual' and
comfortable on both C++ and VB, for example
- others become comfortable on both UNIX-based
and Microsoft based operating systems -
others tend to specialize more.
Offshore companies have a vested interested
in using the fastest, best and most efficient
combination of tools, techniques and resources
to solve your problems - this means that
the best people for the job are assembled
to form your team. In some cases, clients
may be presented with a list of resumes
and be able to assemble their own team as
well.
Speaking of skills and development, in
addition to offshore companies having employees
with a wide variety of practical experience,
their people also have a wide variety of
the latest skills at their disposal. The
reason is simple: how many new clients would
come to them and ask for new projects to
be developed with old tools and techniques?
In fact, in some cases, there is such a
high demand for the latest skills that some
offshore companies have had to create their
own dedicated training and certification
departments in-house.
Even in the offshoring world - you may
find that the best companies already have
a backlog of several months for work in
certain hot technologies - it always pays
to plan ahead if you can! |
 |
| Access to the Latest, Hard-to-Find
Skills |
 |
| When evaluating offshore software
development firms, you can almost break them
down into three distinct categories. The first,
are those focusing on maintaining and enhancing
legacy applications - typically in COBOL,
PL/M, FORTRAN, etc. The second category is
those firms focusing on migrating legacy systems
to modern technologies. The third category
is those firms focusing on developing new
systems with state-of-the-art tools, techniques
and systems.
In this article, I tend to focus more on
those companies in the third category, as
these are the ones representing the most
exciting opportunities and advantages for
new, unique and innovative systems - ones
that are able to leapfrog the competition
and enter new markets.
Even with just the Microsoft family of
products and operating systems alone, there
are dozens of tools and multiple releases
every year to deal with. This represents
a recruiting problem, but also means that
companies must focus on internal training
and re-training on an ongoing basis.
For example, in our company, we have a
full-time Microsoft Certified Trainer on
staff - part of his duties to include training
and re-training developers on the latest
Microsoft technologies. When researching
offshore software development firms, do
ask about how they keep their people updated
- the answers may surprise you!
|
|
| |
|
| |
|
| |
| |
Why
Lotus Domino ?  |
|
|
| |
| |
| The
question of whether a computer
can think is no more interesting
than the question of whether
a submarine can swim. |
|
E. W. Dijkstra
|
|
|
| |
|
| |
 |
|
| |
|
| |
| |