A large percentage of American companies are already utilizing offshore software development or considering doing it soon. Many large companies are setting up their own operation in countries such as India and China or contracting with companies there.
Offshore development advisory services often concentrate on the procedural mechanics of offshore development such as selecting a country, selecting a provider, drawing up appropriate legal documents, monitoring, benchmarking performance, etc. These steps are important and necessary steps in offshore development but by themselves are not enough to guarantee that it is successful. So what will make offshore software development successful?
Extrasourcing is disciplined, strategic and appropriate offshore software development. Extrasourcing advocates extended or virtual software development groups offshore. The core software development group here works closely on a daily basis with their offshore counterparts. There is very tight project coordination and communication between the development group here and its offshore counterparts.
Extrasourcing puts a lot of thought into what tasks are appropriate for offshore software development and how they must be performed -- from the moment it is initiated through to its continual execution. It minimizes the discomfort and alleviates the perception of threats to job security that an offshore software development group may have on your core software development employees.
In other words, extrasourcing is intelligent offshore software development, maximizing its potential for success on an ongoing basis.
Here are ten secrets of successful offshore software development that extrasourcing brings:
- Prototyping locally, product completion and hardening offshore: As anyone who has led a software development group can attest, the most valuable resources on any development project spend a lot of time fixing bugs or making small, important but time-consuming changes to user interfaces in every release. The result is that the core development group does not have time to talk to product management or business groups and proceed with prototyping the next version release of a product or application. A Core software development group's time should be used only to quickly transform business needs or product requirements into prototypes. This can ensure that the core development group addresses risky technology issues, ensures consistent architecture, etc. in their prototypes. That leaves the completion and hardening (testing on multiple platforms or browsers and fixing bugs) of the product to offshore software development teams.
- Tight and local overall project management: Most offshore software services vendors are SEI, CMM or ISO certified. However, following these processes may mean writing extensive requirements or design documents. The reality with many software development groups especially in venture capital funded companies is that there is not enough time to write these documents. Extrasourcing advocates tight and close overall project management and considers the offshore team as an extension of your team here rather than as a vendor that delivers on specifications. This can easily be done with a local technical representative of the offshore vendor present onsite all the time and participating in all strategy and tactical product requirements or team meetings. This eliminates the need for extensive documentation and keeping it to a basic minimum as needed for contractual purposes.
- Communication techniques and tools: Extrasourcing, by its very nature, imposes the need for effective communication techniques and tools. Since software development teams here and offshore are working on the same development efforts, they cannot get their work done if they do not communicate well and frequently. Communication techniques and tools are more important to offshore software development efforts than technologies and programming. Companies that have used offshore software development efforts can attest to the fact that efforts that fail do so, not because of technology or programming skills, but because of communication issues.
- Better employee morale: Core software development groups are always working on exciting architecture, prototyping and high technology risk efforts while the offshore development groups are taking care of the other important software development tasks like product hardening. This effectively removes the perceived job threats that many offshore development efforts bring to your software development personnel.
- Shared responsibility avoids finger pointing: Since the tasks for the software development efforts are shared between the local and offshore teams, the responsibility for making the whole effort successful is shared equally between the two as well. This is better than the situation where the offshore service provider supplies -- in perfect working condition -- the wrong solution! Communication is the culprit here, and as anyone who has dealt with requirements knows, business conditions change quickly and can make requirements obsolete very quickly.
Click here for the second part of this story.
Nari Kannan is a technical consultant with Iris Software, Inc. in Metuchen, N.J. He also has extensive experience defining and developing products using offshore development resources in India for such companies as FileNet and Inktomi. He can be reached at firstname.lastname@example.org.