This report describes the setup of outsourcing environment between parties (client and provider). It is mainly concentrated on software development outsourcing, but many ideas can be applied generally.
The report shows the steps from the beginning of the relationship, as well as ways of solving common problems.
Contract
The beginning of the relationship typically begins with contract negotiations. The NDA is typically signed during first phase or even before it.
It is good to use a flexible setup. Typically frame contract (FC) is used, which defines the basics of the relationship. It typically defines confidential information, ownership of the products, warranties, support and maintenance services, termination, non-solicitation of employees etc. It also covers how communication flow will work, how the products are defined, implemented and delivered.
For flexibility it is good to define both fixed price and T&M type contracts in the frame contract. Extra expenses except the defined hourly rate are typically paid extra. E.g. if the client requires an on-site engineer to travel to other locations, travel, accommodation and per diem charges for the engineer are not included in the original budged. If any special tools or software are required for the project the licensing costs are typically paid by the client.
The frame contract is the base for the relationship. One may take more formal approach and defines each new task/sub-project as a signed appendix to the FC. Other tasks can be defined and agreed upon through mail or any other communication channel (e.g. wiki, issues report tool, Skype …). It is however critical to keep all the relevant information accessible to all parties to avoid misunderstanding.
Beginning
In the beginning it is good to start with something small and well defined. Communication is critical in this stage and should involve all the parties concerned (including CEO/CIO). The relationship should start off on enthusiastic and positive note. The damage caused at the beginning can have a big impact on the whole relationship.
The first project typically involves only a few individuals from the both sides. The task can be the analysis or design of some small part of the future system, e.g. prototype etc. The goal is to know each-other better, to get used to working in a different environment and set up good communication habits.
It is wise to directly connect parties on various levels: management levels, design/analysis, implementation, delivery, testing.
This was the first part of the guide. In the second part we will talk more about next phases of the project and possible isues and their solutions.