3.2 Start to offshore a pilot project to test and build the relationship.
Another way to start an offshore relationship if you have enough time and wish to build a long term relationship, is to start with a small pilot project just for testing this relationship and build trust.
A quicker way is to give an offshore team a requirement/design document that includes flaws (obvious and not so obvious). If flaws are detected or questioned, that would give you a good feeling of offshore team competencies. By the way, they might even discover flaws that were not intentionally included :-). This "test" would also test the degree of knowledge of the western culture as shown in chapter beware of cross cultural issues
3.3 Some offshore companies propose to share risk.
Some offshore companies also propose to share the risk of developing with them by being paid through a royalty scheme rather than cash.
3.4 Miscellaneous considerations.
Offices outside India: if a company does have offices abroad, it is an indication of its success and the fact that it has exposure to foreign work cultures. To an extent, this contributes to bridging the culture gap that I'll write on later.
Beware of high offshore turn-over. "Always take care of the offshore personnel" is a statement similar to "Always take care of your local workers". Offshore engineers know they are paid 4 times less than your local engineers and may dream of doing whatever it takes to come to work in western countries.
4. Ease communication as much as possible but rely on it as less as possible.
This is best achieved by offshoring some activities which requires minimal interfaces / requirements management.
An example of a project that requires minimal interfaces is "port this existing software on that new platform".
When handling complex projects, it is vital that local company has a very solid requirement management process and/or level of trust / ease of communication between local and offshore company is high.
When the requirement management is not solid and the project is complex, a solution is to split it in 2 steps:
1st step/task is defined in a few words (minimal interfaces) and is 80% of the work.
2nd step/task requires a lot more communication but understanding between offshore and local has been improved during the 1 st phase.
It is also important to have a manager, not a programmer, leading the communication process. It is a vital specific job in itself and should require extended skills and dedicated focus.