Software Consultants and Source Code

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.
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: