08.18.03
By
Marty R. Milette
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:
- 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.
About the Author:
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. marty@milette.com
of http://maverick-media.com or visit
http://www.arcadia.spb.ru to view a PDF
or Microsoft Word Version of this document.
|
|
|