Freeing my code... need some guidance
turner25 at gmail.com
Sun Jan 11 15:40:42 UTC 2009
I am very sorry, I have mislead you all.
Currently the code has been written entirely by me, at home without my
employer's knowledge. Until now, I intended to use it as a closed source for
private or commercial projects.
I would like to license the code _BEFORE_ it falls into the hands of my employer.
I have read all replies to my post in this thread, I thank you all and you made
me think about something very important:
Although they will have a licensed code in their hands, the copyright will be
mine and I will be free of using it on my own side (i believe that would be the
case if it was 3-BSD licensed before they get a copy of it). Whatever
modifications, additions and other derivatives that I do at work will then be
their own work and I will have no rights on it. So by, giving them, say,
version 1 of the code, they will likely ask me to correct things, and upgrade it
to version 2 or 3, but at home, I will be stuck at version 1.
I would have to come up with some kind of agreement or contract with them saying
that all modifications done by myself or my team at work has to be given back to
me, and in turn all modifications I do on my own (including bug fixes and
upgrades) should be given back to them. Some kind of GPL but involving only
these two parties (me & employer)... if I ever publish my code for the public,
I do not want it to be GPL (clearly not) but the public will still benefit from
my own personal development and the development done at work. The public may do
derivative works and keep it for themselves.
I think I would need an hybrid 3-BSD/GPL licence with an extra paragraph that
states that EVERYBODY is bound to the 3-BSD side and also me and my employer are
bound to the GPL part on top of it. In fact, i guess, it would be better to
make it LGPL to avoid "infecting" my employer and my own derivatives (say i make
a game that uses the original project as engine).
Am I correct to think this way? Or am I bending things in an awkward way? Is
there a simpler way for me to do this?
I dont really have to give my code to my employer, i can just keep it for myself
and keep doing what I want. But it would clearly benefit my employer (and
well... this is the kind of thing that would get me promoted too!).
PS: Ben, i've put some more replies in the text below, specific to your own text.
Ben Tilly wrote:
> On Sat, Jan 10, 2009 at 2:50 PM, Simon <turner25 at gmail.com> wrote:
>> The project needs to be licensed in a way that will not "harm" or slowdown
>> or cause anything negative to my employer, they should even be able to
>> continue building on top of it after I leave the company. I used to really
>> believe in closed-source and private licensing, but I gave it all up to
>> freedom. However, one fact remains and it is that I would like my name to
>> be remembered as the initiator of this project. My employer must also have
>> no rights to remove my own rights on those files and they should become
>> "their property" (as my contract says), but they would still be limited to
>> the rights in the license.
> Woah. Back up. Your contract says that your employer owns the work
> you do for them. That means, literally, that your employer owns it.
> You don't get to dictate or bind them in any way, shape or form. You
> have no ownership of that code you wrote. *Perhaps* you can convince
> them to do what you want, but I wouldn't count on it. Please don't
> try to ignore this fact because if you do then you can get yourself
> into pretty serious trouble, very quickly.
I'm sure I can bind them in some way. I mean, I'm sure they wont like the idea
at first, but in the case where what I bring will also bring them more
efficiency, quality of their service and profits in general, then they might
listen to the idea of being bound to something... would we be talking about a
contract here? A contract dealing with the work done on that project at work,
say while I'm working for them?
>> I would also like to develop my own projects on the side (possibly start my
>> own software company one day) and build my future projects upon this one.
>> My commercial applications will be published in binary form and source will
>> not be released until a later date, under the same license.
> If you wish future projects of yours to use this code, you need to get
> permission from your employer. Because your employer owns the
> copyright, not you. As for projects on the side, you need to consult
> your contract and local state law. A competent IP lawyer would be
> invaluable. Because depending on where you live and what your
> contract says, code developed on your own time with your own resources
> might belong to you, or might belong to your employer. To name 2
> examples, in California it belongs to you, and you can't sign it away.
> In New York it belongs to your employer, and this fact is usually
> reiterated in your contract.
Here is where I mislead you, the code would be licensed before it reaches my
employer. Call that version 1. I could still use the code v1 at home for my
personal/commercial projects and my employer has nothing to say on this.
Versions developed at work would be theirs because of that clause in my contract
with them. My point is, i think it would be easy to bind them to some kind of
development exchange since, I would clearly be fixing bugs at home and I would
share this with my employer, in return that they give me the upgrades and fixes
done at work. The project is really like a core, it is not specific, it's very
much like an engine. So at work, I would be coding other parts/modules (to
communicate with their home-made database/system, etc) and these parts will be
theirs and I don't want them at home... but the core, which handles the lower
level networking (socket stuff) should be shared for their and my own benefit.
>> I think what I have written above states all I feel and I think the new 3
>> clause BSD license would suit it well. "must retain the above copyright
>> notice" would make my name hold up into the future and "Redistribution and
>> use in source and binary forms, with or without modification, are permitted
>> provided..." would fit the idea of giving all rights.
> There is no point wasting time thinking about what copyright license
> you wish to put on code you don't have copyright to.
Misled here again. But then, if my employer is forced to retain the copyright
that was put prior to the time they acquired the code, this would give me a lot
more power and would clearly set this case apart from the very exclusive clause
in my contract?
>> 2) What about the contract I signed with my employer that says something
>> very strong like "whatever is written on the hard disk of the company is
>> theirs and they have all rights on it", etc... I understand that if I drop
>> a copy of Apache, or libSDL or whatever licenced work, this clause in my
>> contract would have no effect. So if i drop my own code, licenced with the
>> 3 clause BSD license (or a modification of it), would it work the same way?
> If it says something like that then it means that anything you write
> for them is a work for hire and they have the copyright on it. End of
> story. But nothing you can write in a contract can make a copy of
> Apache that you drop on the hard drive theirs because you don't have
> the right to sign over a copyright belonging to a third party. Which
> is why dropping third party code in doesn't magically give them
> copyright ownership of it.
> But be careful with this. Because if they think they own copyright to
> anything that goes on the hard drive and you copy someone else's open
> source code into their codebase, they can easily wind up in accidental
> violation of the license. Unless you make sure that everyone is very
> clear about what third party code does not belong to them, you are
> creating a potential legal liability for them.
Very true. This is why I was thinking on 3-BSD licensing my code prior to
giving it to them, they would be able to include it in other projects without
any legal trouble other than copying the copyright.
Actually, while writing this, I thought... Since my project is more like a
core, like an engine that stands at the middle, to which you attach modules that
handle the specifics... I could probably license it LGPL + the special binding
between me&employer I discussed above. I think 3BSD+LGPL starts to be a little
redundant after all... And the programing is really done by linking your
specific code with my project that you simply include...
But I have to clarify one thing here, specific to C++ and it is that my "core"
contains the definition of a class, and the specific code would create his own
class that is meant to inherit from the one in the core and with some
polymorphism, many different derived classes can be made in the "specific" part
(owned by employer) and can be handled by the "core" (owned by me). I think
LGPL allows linking, possibly calling functions, but does it allow something
like inheritance and polymorphism?
>> Last thing, I am young and inexperienced in the legal world, i read it
>> well, but there are many details I don't know about and I might be missing
>> some important points. Please let me know if you think I might be
>> interested in any other details I haven't mentioned. I think I would
>> basically set my stuff as Public Domain, but I like being protected by a
>> license like the 3-BSD.
> You appear to be missing the doctrine of a "work for hire". Which
> says that code written for an employer belongs to that employer and
> not to you.
Also, one very important point, is that the clause mentioned in my contract is
very general. I'm currently hired as a customer service rep, so it just
mentions what I write at work or what I put on their hard-drives. It's not like
a more thorough kind of contract a true programmer would be given that might
also talk about the work the programmer brings back home to keep working on his
own time or the work he has started at home on his own and brings it to include
it in the employer's project... the clause in my contract is the very basic
kind we see in all employee contracts.
> Usual disclaimer. I am not a lawyer and this is not legal advice.
> However if you want to proceed in any way then you need to get a
> lawyer and get some good legal advice from someone who is familiar
> with your local jurisdiction.
More information about the License-discuss