As a software attorney, I think there are a few practical things to think about when using an offshore software developer/outsourcing software development, and negotiating the software development agreement. As you know, this has become commonplace, even for smaller Software, SAAS and IT services companies. Here are a few thoughts, from a software attorney.
- Ownership Rights. While I am sure you saw this issue coming, make sure you document it very clearly, and address ‘work for hire’ copyright, pre-existing code, open source licensing, patent issues, etc. There is a lot to think about so dig in and get it right.
- Termination Rights. Think about it, you know that this relationship will not go on forever, so the termination rights in the contract will be exercised (relatively soon). I would spend a fair amount of time with your software lawyer detailing what happens upon termination and how your property is returned to you (hardware, software, etc). Also, I suggest you should be able to terminate (without cause) on much shorter notice than the service provider, so think about that practical issue too.
- Gap between Expectations and the Contract/SOW. While this is not purely a legal issue, in a way it is the most important issue. One of the main purposes of a contract is to communicate and outline which party is responsible for what and when. Take ownership of these important details, and don’t delegate this to your attorney. I think the contract should be 100% consistent with reality and what the parties expect to happen along the way; while this may not be easy, it is worth striving for.
- Where is my Source Code? I always recommend that you keep control of your source code and know were it is at all times (your server, their server, in the cloud, etc). You don’t want to rely on a contract to get your code back. The thought should be that if there is a dispute you can get control of all your intangible assets, without the service provider having to do anything (think about that!).
- Which Law Governs? This is a complex issue, but the importance of it should not be overlooked. Think through which law will govern the transaction and where disputes will be resolved (arbitration may a good option too). Also, if you are contracting with a developer offshore, get an in-country attorney to look at the IP and local law issues, as irrespective of the contract, local law will be important in figuring out who owns what (if there is a dispute). There are lots of reasonably priced in-country attorneys you can find on the web. I recently found and used one in Europe for a client, and it worked out well.
Any company outsourcing part of its software development should consider these issues when offshoring, and drafting the software development agreement.
Disclaimer: This is for educational and information purposes only, and does not constitute legal advice. Contact an attorney before taking any action based on this.