Why Offshore Your Software and Web Development?
By Marty R. Milette (www.maverick-media.com, marty@milette.com)
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.
Heres what well 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
- Why offshore software development in Russia or Ukraine?
- Action Plan: Your first offshore software development project
Outsourcing, Offshoring and Body Shops and the Differences
Outsourcing
Unless youve 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 youve 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 and Ukrainian 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 and Ukraine, 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
doesnt mean that the top people dont 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 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 clients
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 doesnt 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 an Ukraine, for example, are cracking down hard
on copyright violations and are 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 whos 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 our Ukraine 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 peoples
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 dont 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 couldnt 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 youve 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 youll 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 dont 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:
- 25 % payment at the beginning of the project
- 50 % payments distributed through the course of the project tied to major project milestones and sign-offs
- 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:
- 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, youre 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 dont 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.
Lets 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 youd 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 theyll 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
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.
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!
Why Offshore Software Development in Russia or Ukraine?
There are a surprising number of reasons why Russia and Ukraine have become the hub of offshore software development today. Some of the reasons include:
- Language Capabilities: English is the official language of our company. All internal communications
and documentation are prepared in English. All communications with foreign clients are
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 and Ukrainians 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 and Ukraine, labor laws are in some ways much more strict
than abroad and in other ways, much more flexible. In general, if employees dont 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 or Ukraine 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 and Ukrainians 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 dont 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 hadnt 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 wont 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:
- 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.
- 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.
- 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.
- 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@hotmail.com ) 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.
<< back |