views:

174

answers:

3

I've written code for my own projects - created before I got my full-time gig and maintained by me since - that would excel at solving some issues that we're having on one of my day-time projects. However, I'm afraid that using my code to solve my employer's problem will accidentally give them ownership. So, It seems like I've got a few options:

  1. On my employer's dime, reinvent the code that I've written in the past, effectively writing a new version from scratch. This seems silly but would probably solve any legal issues as the two products would have a completely different source base. Then, of course, arises the issue of what I can do with any new "ideas" I garnered from writing a new version...

  2. Use the source I've already written and rely on the fact that it's not worth anyone's time to sue me. This sounds like a really bad idea.

  3. Give my employer a license for my software / components. (And, no this isn't open source - my kid has to eat.) This just sounds silly, and I can't imagine a 2000+ employee corporation taking this seriously.

  4. Play dumb and try to find a completely different approach to apply to my employer's projects. Of course, this has a negative impact on my ability to do the best job possible at work since I would be seeking the 2nd most efficient solution to a particular problem.

Help!

update

Well, I already wrote it, so getting them to pay me to write it doesn't make sense. I'm not looking to hijack stuff I'm creating for work - I want to help them (and myself by extension) by applying a solution I invented before I came to work for them to their project.

Also, I'm a salaried employee - there ain't no such thing as overtime in my world.

+5  A: 

Do option 1: rewrite the code on your employer's time.

Your employer has hired you not just for your skills, but for your experience: all you're doing here is using that experience to help them.

In return you'll get more experience as you further explore ideas around the code. Those "ideas you garner from writing a new version"? That's what you get from the bargain.

If you really do feel that a complete re-write is a waste of time then consider open-sourcing your code. You will definitely need to check with your company that they are happy to use open source code, and more critical that they are happy for you to contribute your changes made on their time back to the project.

(Edit: and as others have noted, speak to your manager about this. Open communication is essential, and they will have views on the best way forward.

Jeremy McGee
+1  A: 

If this is a piece of software that you sell to others (and not through your employer), I would say it is important that you have an open communication with them, and solve it in a clean way. Giving them a license could be one option, setting up a contract giving them the right to use it, but also stating your ownership and right to sell it to others could be another option.

If you don't do this, but instead re-invent the code on your employers expense, you may find yourself in a less than optimal situation if your employer later detects that you are selling the software, and they try to claim ownership. If you have proof that you have written it before you started working for them, they should not be able to do that successfully, but then it may be questioned why you silently used their time (and money) to rewrite it; when it would probably be cheaper for them just to buy a license.

Grab a manager that you trust and work out a solution; the important thing is that you have agreed (preferably on paper) before too much action is taken.

Fredrik Mörk
There doesn't even need to be a contract. A unilateral grant of license, with conditions, is commonly used to license a free software work. It retains copyright in the original holder, and grants the recipient freedoms in the work so long as they comply with the license terms.
bignose
+1  A: 

You've set up a false dichotomy. Licensing is orthogonal to price: You can license your work as free software and feed your kids.

By licensing your work as free software to your employer you remain the copyright holder of that work. Hence you're not changing the state of any previous works that you might have built upon it, and you're not cutting off any future free-software use you might make of the work. You're making a pragmatic decision with a non-zero sum result: both you and your employer gain from it.

Your employer gets to use the work as free software, which is far more than they had before. Charge them appropriately for the privilege, pointing out what a saving in time it represents compared to the alternatives.

If you license your work to them under copyleft terms, then you won't have to worry about that work becoming less free in their hands: anything they build on top of it will be licensed under terms no less free than what you sold to them.

Of course, you might still decide not to license the work as free software. But I hope the above explains why "feed my kids" and "retain copyright" do not conflict with a free software license on your work.

bignose
It makes no sense to me to charge someone for software that they can then redistribute to their hearts content. Maybe I'm missing something here, but this still feels like open source, and I have no desire to make this particular code open-source or to give up my rights as it's creator.
David Lively