|
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 Russia?
· 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 Israel and
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
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, Russian
Universities and private schools have been turning out some of the
brightest software engineers in the world. In fact, if you look at
commercial institutions – there are over 6 Microsoft Certified
Training Centers in St. Petersburg Russia alone. 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 Russia, 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 Russia, 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 Russia. 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 Russia.
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 Russia 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 Russian
educational system stand out. The Russian 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 Russia, 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 Russian 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 Russian 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:
1. 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!
2. 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:
· 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
Russia, 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!
Finding people with the latest skills such as .NET, J2EE and other
high-end skills is still difficult – even in Russia. In addition
to internal training programs, our company, for example, has set
up our own on-line recruiting firm
(http://itpersonnel.ru/eng/customer/index.html)
Although there are literally dozens of high-end universities and
private institutes locally, there is still a stiff competition for
the best people. However, between our contacts at the institutes,
our own IT Recruiting company, and leads we receive regularly – we
are able to generally satisfy all our typical needs. Other firms
may not be so lucky.
Another advantage of being in the St. Petersburg region is that
our company, along with many others, are members of the “Fort Ross
Consortium” http://www.fort-ross.ru – a consortium of offshore
software development firms – each with somewhat different skills
and focus areas. When one company has requirements it can’t meet
internally, it may call upon the services of other consortium
members.
Flexible Teams, Team Scalability and Employment Terms
-----------------------------------------------------
As with most contract-based arrangements, offshore
software development offers a great deal of flexibility in selection,
reallocation, reduction and growth of the team assigned to your project.
This flexibility ensures that you are billed only for the resources you
need, when you need them.
Flexible teams also mean that work may sometimes be scheduled to
run during hours of your own choosing. For example, an offshore
team may be called upon to provide 24/7 support for a product or
service.
Teams tend to be highly ‘scalable’ – meaning if you desire to
change deliverables or schedules, you can quickly and easily
allocate additional resources – or perhaps conduct additional
research with a sub-team to investigate a hot new technology that
may have great impact and/or benefit to your project.
Conversely, in the event of project termination, or in cases where
budgets must be reallocated or reduced, flexible teams and
employment terms mean that your liability for penalties is
generally significantly less than if you had contracted the job
locally – and certainly much, much less than if you hired
full-time resources.
In most cases, the problems and legal issues regarding firing
employees or downsizing in general is simply not your problem.
Compare this with employment laws in some countries where once you
hire someone – it is almost impossible to fire them or downsize
without severe legal and social consequences.
Best Types of Projects for Offshoring
-------------------------------------
In general terms, certain types of projects are more
suitable for offshoring than others. For example, if the project would
require someone from the offshoring company to be present on your site for
an extended period of time – this is not a good use of the offshoring
resource. Instead, what you may be better to look for is a body shop who
can provide resources locally.
If you would only need someone on-site for a maximum of three
months, then this is quite a likely option. In terms of visas
(which are almost always required), a three-month visa for
‘training’ purposes is not difficult to obtain. The candidate
would be located on-site, for the training period, and then bring
the knowledge back to their home country to continue working on
the project.
Other projects that may not be suitable are ones that require a
US-based Security Clearance. In general, only US Citizens
operating in very specific regions may work on those projects –
and the restrictions are stiff.
Projects that require the use (and delivery) of large and/or
expensive equipment to the contractor site are also not generally
good candidates – for several reasons:
· The cost of transporting the items
· The length of time to transport the items
· Risk of damage or loss to the items
· The inevitable battle with Customs services – to prove that the
items would be imported and used only “Temporarily” – failure to
provide satisfactory proof could result in the items being
rejected, or impounded, or huge and unreasonable duties and
penalties applied.
· The items would also have to eventually be returned – to
encounter the same problems but in the reverse direction
Projects that are much more suitable are ones that are:
· Typical business systems or services based on common hardware
and/or software platforms – or ones that could be easily and
cheaply transported. (Small embedded-controller-based devices may
qualify.)
· Where there is a good match between the skills/experience of the
development company and those required of your project. There may
not always be an ‘exact match’ – so try to achieve a balance and
be reasonable.
· Where the development company has done similar projects using
similar technologies before. (Keeping in mind that they may not be
able to provide a reference due to confidentiality agreements.)
· Where you have a budget in place – it must be REASONABLE, and
should be approved, and ready to be disbursed according to
schedule.
Note: I stress the word REASONABLE because a surprising number of
people somehow believe that offshore projects can still be done
for $1 per hour and 10 times faster than at home. Unfortunately,
neither of these assumptions are the least bit true.
· Where the project can be done either entirely off-site, or with
a short-term on-site placement for training and/or knowledge
transfer. (Mentioned previously.)
· Where continuous and frequent communications between the client
and vendor can be set up and maintained. Handing off a set of
specifications (no matter how detailed) and expecting the
(perfect) result 3 months later does NOT WORK.
Speaking of communications – we recommend at least daily, and
sometimes more frequent contact by email – as well as Instant
Messaging. It is amazing how many simple problems and barriers can
be overcome with a 5-second MSN Messenger session!
Mitigating the Risks of Offshore Software Development
-----------------------------------------------------
Checking References
-------------------
One of the most important things you must do when
considering offshoring your next software development project is to check
references and if possible, check out samples of real work. In some cases,
it may not be possible to get the most appropriate references or to see
the best possible work – this is sometimes because of the non-disclosure
agreements signed between clients and the offshore software development
firm. They should, still provide at least two or three solid references,
and you should certainly take the time to check them out. The types of
references to consider are those where the projects are similar to yours,
or where the technologies used are the same. You may also look for
references from clients with projects of a similar size to your own.
When requesting references, please be aware that they may not be
given out freely unless the offshore firm considers you to be an
honest and sincere prospect. They will not want to give them out
until they are relatively certain that you are in a position to
follow through on completion of the project. This only makes
sense – as every time they give out a reference, is one less time
that this reference may want to be contacted in the future.
When speaking with references, be certain to speak courteously and
do not try to obtain information of a confidential nature, such as
prices, or information on specific developers, etc. Use common
sense.
Consider ISO and CMM Certifications
-----------------------------------
As mentioned previously, third-party certifications
are a good indication of the maturity of processes and systems within
offshore software development companies. However, I would not necessarily
exclude a company just because they don’t carry one of the certifications.
You must realize that some of these certifications are relatively
new to specific countries – as well, in some countries, the whole
idea of systematic processes for certain industries is relatively
new. In these cases, certification programs may not be in place
today – but certainly are under way for the future.
Formal, documented development processes and procedures ensure
top-quality results. Formal recognition of our policies and
procedures through ISO certification and audit. Facilitated
through dedicated Quality Assurance and Test Engineering
department.
Start with Smaller, Non-Critical Projects and Pilot Projects
------------------------------------------------------------
In general, unless there is a pressing and urgent
need to suddenly have a project developed offshore – it is highly
recommended to start out with a small, non-critical pilot project to feel
your way into the process.
In fact, with our company, this is how virtually all major clients
began – just one small test project – perhaps one or two
person-months is going to give you a very good idea about the
process, procedures and how well the system actually works. What
it also does is get the critical ‘communication channels’ and
‘administrative systems’ in place and working smoothly.
As the first project progresses, you may find benefits in
establishing an ‘open’ or ‘frame’ contract – where the offshore
company simply invoices you for billable work on specific
projects. These allow you to very quickly and easily add and
subtract resources from projects as demands, project priorities
and budgets change. It can also be structured to guarantee a fixed
rate for some duration of time – meaning you always have a known
and guaranteed price with which to plan your budgets.
Why Offshore Software Development in Russia?
--------------------------------------------
There are a surprising number of reasons why Russia,
and in particular, St. Petersburg Russia has become the hub of offshore
software development today. Some of the reasons include:
· Regional Infrastructure and Geography: St. Petersburg enjoys a
strong community infrastructure – which has been vastly improved
over the past 4 years in preparation for the city’s 300th
anniversary. The city has an extensive public transit system,
reliable, stable power, well developed telecommunications and data
communications infrastructure and all forms of transportation
access – by land, sea and air – to all points in Europe and
abroad.
· Language Capabilities: English is the ‘official’ language of our
company. All internal communications and documentation is prepared
in English. All communications with foreign clients is done in
English. In the rare event where software or documentation must be
developed in other languages – there are many pedagogical
Universities with language departments for every major language –
and plenty of students willing to help with translation and
interpretation. Culture is an interesting cross of Western
European and North American.
· Creativity and Innovation: Russians are used to ‘making do’ and
developing creative, cost-effective solutions to difficult
problems. Their innovation is as well known and highly developed
and their high level scientific and mathematical foundations.
· Labor Laws and Flexibility: In Russia, labor laws are in some
ways much more strict than abroad and in other ways, much more
flexible. In general, if employees don’t object, you can have the
flexibility of operating shops on a 24/7 option, or synchronizing
working hours with your shop back home. Weekdays and weekend days
are easily swapped. Vacations and schedules tend to be more
flexible and closely linked to projects.
· Time Difference: In many cases, the time difference between
Russia and other countries becomes a distinct advantage rather
than a disadvantage. For example, problems discovered in the USA
during the day can be solved overnight for presentation first
thing in the morning. The difference between Western Russia and
Europe is typically 3 hours at most – so workdays are generally
synchronized.
· Travel is Less Difficult: Russians are now able to relatively
easily obtain visas to most countries for the purpose of on-site
training and project planning – most managers are granted either
6-month or one-year multi-entry business visas and can travel
quite freely.
Offshore Software Development Applications
------------------------------------------
The following include many of the typical
applications for offshore software development teams. Some of them you may
not have considered before, such as Internet Marketing support:
· Marketing and promotion assistance. (Internet marketing.)
· Independent evaluation and audit of existing products and
services – may prepare formal recommendations for
changes/improvements.
· Outsourcing of product development and/or services.
· Support of major organization or technology changes.
· Knowledge transfer.
· Use us as your European partner to outsource training and
support.
· A dedicated pool of specialized engineering and programming
resources, which may act as virtual extension of your own
development team.
· Jump-start projects.
· Professional development.
· Documentation and training.
· Entire systems, modules and sub-components.
· Allows you to maintain focus on your core competencies and
outsource what you are not interested, or able to do yourself.
· Ability to become your ‘back office’ – a member of your team –
just located remotely. Many clients have ‘dedicated’ permanent
teams.
· Redesign and reengineering services.
· Migration of products to new and improved technologies based on
business requirements.
· Migration to different platforms and operating systems to meet
changing market needs.
· Inexpensive research, specification development and prototyping
services.
· Usability testing and re-engineering. Collection and
implementation of enhancement requests and bug fixes through
automated mechanisms.
· Automated feature enhancement / bug request system available.
· Superior documentation – built into source code and help files.
Action Plan: Your First Offshore Software Development Project
As I have attempted to present in this document, Offshore Software
Development and participation in the global economy can truly be a
win-win scenario. It will help you gain quick access to
desperately needed skills and experience – while cutting costs and
making the most of your shrinking budgets. The next step is to
plan your first offshore software development project – here are
some things to consider:
· Consider a smaller, less critical, or ‘pilot’ project to start.
· Prepare as detailed a description or specification on your
project as possible. The more information you are able to provide,
the better and more accurate your quotation and proposal can be.
· Prepare a comprehensive, but reasonable non-disclosure
agreement. If you don’t have one, ask your potential partner to
provide one, and work together to refine it. Once signed, you may
release details of your project to your partner.
· Consider advances in tools, techniques and technologies – ask
your partner for advice on the fastest, cheapest and best way to
implement your project – they have a wide range of current
experience and may make suggestions you hadn’t thought of.
· Consider the impact of new development on legacy systems and
code. Often it is better to rebuild systems from the ground up,
rather than trying to patch on new features. Consider the future
expandability and flexibility of your systems.
· Do your ‘due diligence’ on potential partners. Start with
preliminary research, check published references and samples of
work from their web site. After narrowing the field, ask for more
personal, and more specific references – but be aware that solid,
personal references are very important – and won’t be given out
unless you are serious in making a commitment.
· Come to an agreement on the general terms of how you wish the
partnership to work. There are several common models:
o Open Contract – where you authorize hours to be billed against
an open contract based on specified parameters. This model works
well for a series of short-term projects. It saves the
administrative overhead of opening and closing new contracts. This
method offers the best budget/work flexibility.
o Fixed Price Contract – where the partner bids a fixed price and
payment schedule based on specific deliverables, milestones and
project plan. This model is rapidly losing favor, as projects more
frequently tend to change direction or scope while in progress. To
honor a fixed price – fixed deliverables and scope are essential.
This method offers the least flexibility.
o Time and Materials Contract – where the partner makes a
reasonable estimate of the time and materials required for the
project – however, if the scope or direction of the project
change, this method leaves open the flexibility and opportunity
for a certain degree of negotiation.
o Resource Rental – where you agree to purchase a certain amount
of person-days/weeks/months and allocate work and consume
resources until such time as the terms are extended or exhausted.
In this method, it may be possible to obtain a reduced price in
exchange for guaranteeing more work over a specific period of
time.
· Probably the single most important aspect that will determine
the success or failure of your offshore project is the
establishment of solid, reliable communication channels. I
generally recommend that all participants communicate via MSN
messenger (my address is Marty_Milette@h... ) Sessions may
be saved for documentation purposes. This is the fastest way to
have questions answered and problems solved that I have found.
· Consider telecommunications and infrastructure needs. For
example, will your partner be required to connect securely to your
network (VPN), and/or will they have access to ‘live’ data or
servers, or will they work on ‘sanitized’ data and/or used
mirrored servers, etc.
Naturally, this is a topic that would require much more than these
few pages to fully explore. I wish you great success in your
offshore adventures, and if you wish to request more information
or have questions on the topic, please feel free to contact me
directly.
Marty R. Milette is president of Maverick Media, and has served in
management positions for some of Canada's top IT and training
firms. Marty is currently Director of International Business
Development for Arcadia Inc. and works as a Microsoft Certified
Trainer and International Business Consultant.
mailto:marty@m... of http://maverick-media.com or visit
http://www.arcadia.spb.ru for a PDF or MS-Word Version.
[
click here to return to job resources]
|