I’ve had some frusterating expereince recently with a software consulting company that we’ve been doing business with. I think this information is prudent to share because there are many organizations that use consulting companies for software development. Hopefully some of these guidelines, that I’ve learned the hard way, will be handy when negotiated your next contract.
Essentially, the rights and transmission of your source code should be outlined in these 4 ways:
- Define Source Code – The most fundamental, legally acceptable, definition of source code is the code files themselves. But, as most developers would tell you, this is useless without the project structure, repository history, and project files. In our case we had to clarify our statements from requesting source code to requesting a Subversion repository backup as of xx/xx/xxx.
- Define Ownership of Source Code – Make sure that your vendor contract explicitly states who owns the source code. In some cases, you could find that you own the compiled version of the application, but not the source. Whereupon your vendor will probably request additional fees for the source.
- Declare Your Terms – Make clear when and how you expect the source code to be delivered. Is it okay if they send to you a year later?
- Request Transition Assistance – Predefine your time and rate requirements (e.g., 15 hours @ 130/hr) for post contract support. Some consulting companies have been known to double or triple their rates for support after a development contract is over.