views:

118

answers:

4

I've been trying to get my head around private software licenses. I'm working for several companies at the same time - most of whom share my codes and all of whom want to own everything. It creates a bit of problem for me since I don't mind them owning the code, but at the same time I don't want to re-write code snippets (classes, methods, functions, etc) for each project. Even if I tried I don't think I could make the code unique enough - I would end up writing the exact same code again.

I would want to use a standard license (eg GPL, BSD, ..) to give the companies every right to use and redistribute my codes with the systems I develop for them, even if they are re-sold or duplicated. At the same time I don't want to get in trouble if the same code has been given to two different companies. Preferably (although this may be contradictory) I'd also want to restrict the companies from selling my codes to other companies, unless part of the systems I build for them.

Does this make any sense? Does such a license exist or do I have to go down the exhausting road of writing special contracts with each company?

+2  A: 

First of all, Stack Overflow is not the place to ask legal questions. So be smart, and get an good attorney (a good one is worth all the money).

(Disclaimer: this is not legal advice. It is practical advice. Please consult your attorney.)

Why do your clients need to own the code? They need to be able to use the code, not own the code. You are in the business of code, not them. Let them run their business, and they let you run your business.

Everyone always wants to own the code. You just need gently explain that they don't actually need to own the code, but you will grant them a flexible licence for using it (source code included).

Royalty free, unlimited, perpetual, etc... are some of the words used to describe such things.

If you are working for more than one company, you cannot grant them both ownership. That is why it is so important for you to retain ownership. I've been involved in cases where the client insisted on owning the code, and it was worth enough to me to sign off on an agreement that stated:

They own it. We have a license to use it in an unlimited fashion, including the right to license, re-license, modify, distribute, etc... But as I said, they were not going to budge, and it was worth it to me.

Regarding contracts, there is important content in a good contract that you should have. We have a really cool standard contract that is nearly identical between clients, except for the actual specification of work is defined in attached schedules.

Take heart, this is all part of the "business of business", that you inevitably get involved in when you are doing business.

If you want a good contract to start with, feel free to contact me.

gahooa
+2  A: 

Hmmm. The simple course is to use a BSD style license and let them do whatever they want with it.

If you want to limit what they can do with your code, you'll need lawyers and contracts and headache. Oh my!

Richard Pennington
A: 

Licensing has pretty much nothing to do with this. You could simply grant shared copyright and let them do what they will.

The nut is simply getting permission at all. Typically, as an employee, all of your work is theirs, not yours. So the game is getting them to let you have any claim to the work.

On a large project, you run in to uglier issues, since you will quite likely be working with several people, to who's code you will have even less of a claim to.

One simple solution is to work for a company that writes open source software, and that fixes the problem at the very beginning.

But, at the other end of the spectrum, a friend of mine went to three different companies and had to rewrite his 3D pipeline each time. Granted, it got better with each revision, but it's a lot of work, and lot of expense for both parties, but you can imagine how a 3D pipeline can be an important asset to a company.

Will Hartung
A: 

Thank you so much for your replies!! It definitely helped clarify things. We ended up using a contract similar to Zend Framework "Contributor License Agreement". This seems to do everything we need it to - assigns free rights to the Company and I'm still allowed to copy code between projects. It's great!

Nick