If you are developing software of any consequence, you almost certainly have employees, contractors, or other third parties assisting in, or perhaps leading, the effort. You could be developing software for commercial sale, an app for consumer use, or perhaps you have hired a vendor to custom-build important business software. In any case, here is checklist of some things to consider.
Before we get to the list, here is perhaps the most important question:
Do you have a written agreement with your software developer? If not, think about how to obtain one as soon as possible. Now, on to the checklist:
IP Ownership – who owns any intellectual property that is created? Source code is IP, and is protectable at least by copyright. Does your developer have a written obligation to assign all IP that he or she creates while in your employ? Is there a specific obligation to execute copyright assignments?
Third Party IP – the developer should represent and warrant that he or she will not use (or at least that he or she will not knowingly use) third party intellectual property in developing your software. This means that the developer will not infringe someone else's copyright in source code, but could include other things, such as a third party's patents. You may want to have the developer indemnify you for any such infringement.
Source Code -- is the developer under an obligation to maintain source code in a way that you have access to the latest versions (and to compilable versions) at all times? How and when is the developer supposed to deliver source code? Is the developer allowed to keep any copies?
Deliverables/ Statements of Work – are these clearly defined?
Third Party Software -- is the developer allowed to use any third party libraries, templates, or modules? If so, do you have the right of pre-approval, and to review the license terms of third party components? Does the developer have the obligation to deliver all licenses you may need to operate the software the developer is providing? Can the developer use open source licenses, and if, so, which ones? (This is important; some open source licenses, notably the
GNU GPL license, have unacceptably onerous terms for software owners.)
Confidentiality/Trade Secrets – does the developer have the obligation to maintain the confidentiality of your proprietary information? Further, all parties, but employees in particular, should acknowledge that they may receiving, and will take appropriate steps to protect, trade secrets.
Non-compete obligations -- can the developer work for one of your competitors during or after working for you? If so, subject to what time limitations? (Non-compete provisions are often a very good idea, but note that most states enforce them for very limited periods of time, and sometimes for limited geographic scope.)