The shortage of skilled software developers in the United States, coupled with their high salaries, has led many development organizations to consider moving some or all of their software development overseas. Countries as diverse as India and Russia have an excess of well- educated and trained software developers that can be hired for a fraction of the salary of their equivalently experienced counterparts in the United States. Here are some guidelines for companies thinking about offshore development:
Don't move your architecture offshore. Unless you are moving 100% of your development overseas, keep your software architects local. Software architecture is the most crucial part of software development and you should keep this function as close to your business as possible.
Use existing foreign employees to recruit overseas. In a large development organization, chances are you have someone in your group from the country or region you are considering to move part of your development to. That person may very well still have ties to that region. This person might not only be able to provide you with firsthand references on overseas schools and firms, but a recruiting trip home may be an added incentive.
Separate out well defined, modular components with a limited number of interfaces for offshore development. Having your software developed halfway around the world will certainly limit iterative development. You should identify software modules that have few dependencies and can be tested without requiring local resources.
Apply the same standards to software developed overseas as you would to locally developed software. Don't simply accept a finished product and assume it will work correctly. Remember, good software processes are crucial to successful software development. You have to be concerned that the software processes you have defined for your organization are being followed overseas. If you don't already have these processes in place, moving development overseas will not necessarily buy you any benefits. Similarly, if your processes are too bureaucratic, don't just rely on moving development to someplace where the bureaucracy doesn't exist. Instead, you should concentrate on streamlining your IT infrastructure.
Similar guidelines should be followed if you are planning to outsource your software development to a company that sends work overseas. This can often be a much easier way to take advantage of overseas software development resources.