Open Source Code In a Closed Source Company
An anonymous reader writes "I have code that I've written for my current company that I'd like to open-source. The only problem is that my company has the usual clause that says that anything I write belongs to them. Now that they've decided to abandon my code for another product that replaces its function, I'd like to continue working on my project as well as open it up to the world. The easy part is cleaning it up and posting it on SourceForge and Freshmeat. The hard part is making sure that I am free of any legal complications in the future. I've looked online to try to find a legal document I could present to my employer to get them to sign off on it, but I'm not having any luck. Has anyone else been in this boat or can refer me to some legal documentation that may help out?"
"Mr. Ballmer, I'd like to release some code for the new MS Office under the GPL.
It's some of the UI code that people might really enjoy being able to, you know, work with a little better."
No doubt you will chairish the moment.
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
As parent says, they own the code. If they want to abandon it they still own it and don't automatically abandon rights to the code.
Ask them if they are prepared to release the code and if not, why not.
If their major concern is laibility, then get the code signed over to another party who will shield them from liability. THis might be yourself or EFF or whatever.
If they still won't well you're screwed as it is theirs.
Engineering is the art of compromise.
Print the code you want to release, pedantic I know, but legal folks like paper. Draft a simple document that says the attached code is going to be released under XXX license (whatever you can agree on with them) and that the company agrees to the action and that any derivation/modification to the released code is copyright the respective author going forward (your choice of license probably will take care of this for you).
Affix the license, the document, and the code. Have a legal officer of the company sign the document, initial all the pages of code and the license in front of a notory, and have the notory do their thing and seal it.
Should work for any trivial amount of code. As was joked about in another post, I doubt you'd want to try this with Ballmer and the Office code base, but if you think your company will let you get by with it in the first place, its probably enough. The key thing is that you've got their sig and its notorized properly so you can't be sued later for releasing their IP into the public spotlight without permission cause lets face it, once the code is out there, they aren't going to put it back in the bottle, they at best will sue you for releasing it.
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
You need a laywer, sir.
Sorry dude, you're out of luck. The code is still theirs. Their ownership of it is not predicated on whether or not they actually decide to use it.
You can always ask them if they'll give it to you. I've done this successfully. If they really have no interest in it, they might be willing to discard it.
We are the fire that lights our world.. and we are the fire that consumes it.
Why don't you talk to the person in charge of software ? That might be easier than dealing with the legal team....
:)
One approach is to explain that by releasing software components to the open source community, you'll get other people to improve and test your software. This reduces your costs and people in charge tend to like that
If you look in the file usualy attached to any GPL'd code, for example /usr/src/linux/COPYING on many linux distributions, you will see that part of the file is the actual GNU Public License and part is an explanation and philosophy and so on. If you want to open source your work, I'd hope you would have read that file at some point . . . but in any case, here is the relevant portion:
"You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice"
I like that copyright disclaimer because it is short and simple. No doubt someone suffering from the brain damage of a legal education could provide you with a longer one.
What you need is a clear transfer of all copyrights, patents and trademarks in the specific program from them to you. Look for a copyright transfer agreement, they are quite particular.
If you wrote it using their equipment on their time they might have a problem releasing it unless you can convince them of a good reason. They could really benefit from your work being open sourced.
If you wrote it on your own time with your own equipment and not on their premises then they really shouldn't have any problem writing you a release of any of their possible copyrights, patents and trademarks in the work - since it wasn't a work for hire. You might need to state that you didn't incorporate any lines of code from their work into your code. You'll also need to clarify if their work has any of your code in it - that could be a sticky point (a.k.a. SCO) if it's not clarified now in writing.
However it's complicated by them having a similar program that they are commercializing.
Really you should consult a lawyer rather they us fiends.
You can't release it without management buy-in. Your manager knows vastly better than you whether that could happen, and how to get it to happen.
If your manager agrees with you that open sourcing it might work, he'll know how to do so. If not, it's not happening anyway.
Why was your project dropped?
Politics / Good 'ol Boy / Politics
-OR-
Bad UI / Past due date / Hard to modify / Poor interaction with existing systems / Can't talk to financial systems / not profitable to deploy / No audit logs / whatever.
If the former, keep plugging at it but get a lawyer. If the latter, save everyone some time and refocus your efforts. Tough love, sorry but serious.
I would suggest starting any project by building on another project that is already open-sourced therefore the GPL or whatever license would mean that your new project is automatically in the public domain.
I'm not a lawyer but...
It sounds like they've paid you for this work. That probably means they are the copyright owner. Copyright does not transfer by accident. So if you haven't got a document in hand by someone who is a principal of the company that unambiguously identifies you as the new owner of the software, you should tread very carefully.
Also, you're talking about having them 'gift' it to you, effectively. You apparently did work they paid for and now you want to own it. That can't happen by magic, and most companies don't give away assets. You might want to try 'buying' it since then there would be a contract you could point to, and you would know who sold it. (I don't know if that makes it better. Ask a lawyer. It just seems to me like it might make a better paper trail.)
You don't say whether the other product is one your company is making or buying from outside. If the company maintains a competing product, your non-compete agreement may be in play.
You might consider writing it again, clean, on your own time and machine, logging the intermediate versions so they can be shown to be different than the backups the company has of its intermediate versions. That may not be enough even. It might address copyright but not non-compete or trade secret.
You might consider getting the company to open source it instead of you. The difference (I think) would be that it would be they, not you, who retains the right to make amended agreements with different conditions than the basic license. In that case, all you need is that they open source it in a way that gives you the necessary rights of use, which may be easier to establish than ownership. Also, in that case, you can probably get the company's lawyers involved in making the license, and all you have to do is worry about whether you can use the license that is finally created. In that case, you've evaded the worries about whether you transferred ownership right, and you're down to just "did they pick a good license.
Did I mention I'm not a lawyer? You should not use this message as a guide to what you can do. Mostly you can take stuff like this that people like me write as conversation starters when you finally get serious and talk with someone who is legally competent to advise you properly.
And, by the way, if you make a mess of this and publish something you don't have the proper rights to, you make a problem for people downstream in the user chain. There was a recent Slashdot article where something vaguely of this kind may have been in play. Even if not the same root cause, it illustrates a scenario you don't want to find yourself in.
Kent M Pitman
Philosopher, Technologist, Writer
Oh, come off it man. There's all kinds of stories posted on slash relating to IP and the Law. Plus this guy obviously doesn't know anymore than the rest of us, so maybe he's just looking for another goob that's been there. I think there's been some good advice around here. Personally, I'd go to a paralegal, but I don't think he's looking to spend any cash. So, someone that might have personal experience is really the next place to go. If you don't like it why not just GTFO?
Under the influence of Post-Cyberpunk Gonzo Journalism
I do this all the time, in fact most of my open source code was done on someone else's dime.
Your situation is going to be tricky because you (I assume) don't have a precedent of doing it (they didn't hire you based on your other open source work) and don't have any agreement in place. I also assume you are a permanent employee instead of a contractor (it can be easier to open source work as a contractor in some countries).
The above stuff isn't critical, but it smooths the process.
What's tricky for you is there aren't any good BUSINESS reasons for them to do it either.
If either your code, or the code that replaced it, is profit-impacting then forget it. No sane company would open source a profitable codebase, nor will they risk releasing an old product that you could then take and create a competitor.
The best arguments for open sourcing in a company that isn't a software company are:
1. Having other users means free testing, free reports, maybe some free patches. In rare cases, it means you become the industry standard/leader in an area (and control is good, from a company perspective).
2. Because you will continue working on the project after you leave them, they in effect continue to retain you as an employee without having to pay you.
Those are the direct benefits, there's more reasons (mostly more subtle).
Sadly, neither of these apply in your case.
You are in effect dumpster-diving in their repository, asking for charity. And your work on that codebase could well distract you from your new one.
It might be possible, but it's going to be damned hard.
Good luck though.
You seem to have missed the point. The author is asking for a document he could give to his employer that they could sign that would open source the code. It's right there in the summary: "I've looked online to try to find a legal document I could present to my employer to get them to sign off on it".
Cow Cube
They paid you to do a job - they own it, thats what you agreed. Legally and morally. If you want to develop code on your own time and fund the exercise yourself - then you can own it.
Perhaps its a new reader trying to get involved with the community (and perhaps asked several places to try and get the most eyes)? It is true that these things have been discussed liked crazy on /., but largely only in terms of lawyers and copyright laws. I don't recall anyone recently posting how to interact with their bosses on the matter. I'm sure there needs to be some level of documentation, but what does that consist of exactly? You'd want to make sure its documented so that if it is open-sourced and becomes popular, no one can come back and say "I didn't authorize this! It's all ours!". But what sort of documentation? Was it a long process, or was it as easy as getting someone to sign one paper saying "Program X is hereby released under the GNU GPL -- signed, The Big Guy, Some Company" and so took all of 30 seconds? Someone here may have dealt with it and can offer some advice that may be more reasonable that someone on the GPL forums, whom only knows what the license says but has never actually bargained with a boss or CEO to get something released.
And if nothing else, its polite to give help when you can. Responses such as yours are a big reason people don't like to learn about Linux or technology in general; whenever they attempt to get involved and learn, they just get yelled at for being newbies and told to go elsewhere. The open source community may have lost a genius member just now because you decided to be a jerk and therefore put off the asker from even wanting to write open source software anymore.
Just remember this next time you have a question about anything (which is inevitable). I don't want to hear it when you're stuck with no answer because everyone yelled "Get lost! You should know the answer."
So, here's a theory - how about just asking?
I work for a large software company (about 10,000 employees) and have released a couple of things into open source. We use Linux / MySQL / Apache / Spring / etc in a big way. A colleague and I wrote some MySQL utilities and some other bits and pieces, but the code we wrote didn't really give away competitive secrets, so I went to my management and asked - and they said "yes".
My company has contributors to at least a half-dozen open source projects that I know of. For example, se use Apache Camel and we contribute. It makes sense for us to share, because the sum of what we get back from the community is more than what we put into it individually (and we give away no secrets).
Now, if the code you wrote is something a competitor could use against your company, don't both asking, you already know the answer.
Alan.
Since they've moved on to another project, tell them that it would be a shame if they couldn't at least get some value out of the code. Then say that if they were smart, maybe they could attract some publicity, etc., if they open-sourced the code they're not going to be using any more, and created a site for it, along with links, blurbs, etc., for the other stuff the company makes.
Benefits:
1) Your employer's approval, at the appropriate level of management. Because this involves transfer of a company asset to you and without compensation to the company, "the appropriate level" is going to be senior management. Of course, start with your immediate manager, and work your way up from there. If your immediate manager opposes the idea, it might be best to forget it. The political cost of fighting that battle without your manager's support is likely to be high (as in "career-ending"), and you are not likely to succeed.
2) A tech-savvy lawyer, once you have procured approval. Your lawyer's job will be to review the contract giving you ownership of the code. That contract will probably be drawn up by your company's legal department, so your lawyer will be making sure nothing is left out and that you aren't getting screwed in some way
3) A very accommodating attitude. If there are any costs to your employer to do the transfer, you may be asked to pay them. If so, and you can afford it, suck it up and do it. If you can't afford it, thank everyone sincerely for their time and approval and effort on your before, and explain that you can't afford to pay that much, and walk away from it. And of course, if they say no, regardless of the reason, be gracious and thank the appropriate people for considering your request.
If fact it could even hurt a competitor.
If the company decided to dump a project because they are moving out of that business arena, but the competitor is still staying in that arena, then opening up the code will dilute the competitor's position.
Engineering is the art of compromise.
NJice rant. Too bad it has nothing to do with the question at hand. The questioner specifically said the code was written for work.
More than likely, your idea is property of that company. Not only the code you wrote while you were there, but any ideas that you formed during the same period.
For example, I had an idea while working for one company. It was to be an internet monitoring software, that would watch multiple points across as many providers as we could manage, map out the traceroutes, and show not only the common peers that those traceroutes passed through, but would effectively show when any peering point was having problems.
They grabbed hold of it, and offered me 5% of the "profits" of the company. That's the day I stopped working on it.
Technically (if they remember), they still own the idea. If I were to start working on it again for a commercial venture, they could lay claim to it. It's not a matter of what was written, but the idea behind it.
You may win in court, but it will be a long drawn out court battle that you probably can't afford to gamble with. If you win (which you may), you may win a lot. If you lose, you're going to lose a lot. Not only your legal fees, but their legal fees, and whatever the judgment is against you, as well as your intellectual property.
My advice is, when you have another great idea for something, STFU. Don't tell them anything. Wait until you're no longer under any sort of contract, and then "start" your development on it. You can start working on it on the side, but be very very careful that there's nothing to document that you were working on it during the period that your contract with another company is under effect.
You may want to re-read your contract too. It may not cover just what you conceptualize while as their employee, but anything for a period (6 months to a year, I've seen in various contracts) belongs exclusively to them.
Serious? Seriousness is well above my pay grade.
Your company only owns what you wrote for them using their resources, the stuff that's on their drives. They don't own what's in your head. My advice: Re-write it and open source it.
You have to ask them for permission. But don't just ask, make a good case for it. Explain what the cost to them is (including lost opportunity cost, which sounds like nothing for this case). Explain the benefits (mostly soft and squishy stuff, like contributing to the community and giving your company a good name, etc). Really pitch it.
I know this works on occasion, since I've done this myself: asked for, and received permission, to release programs I've written both internally and for paying customers as free software (in the latter case, our agreement with the customer allows this). You can go download it yourself: JavaSock.
It was simply a matter of talking to our commercialization director, pointing out to him that realistically, we probably wouldn't make much revenue off of selling this code, but would make several people (including the client that paid for it) happy, and it might give us some good press in certain circles. They agreed, and we uploaded it to sourceforge.
But don't try to do an end-around. Many things can happen, and most of them aren't good.
I'm not being high and mighty here, my contract says the same. I don't mind, they compensate me well for it. If I didn't think this was a workable deal, well, I'd go find someplace else.
Hi (or she? :) ) just wants to TRY:
:) ), one of the original advocacy documents (could it be appendix to GPL itself?) specifies a (boilerplaite) waiver to present to your employer in just such a case.
:) ).
I've looked online to try to find a legal document I could present to my employer to get them to sign off on it, but I'm not having any luck.
The answer to that is simple for us, old-timers: search FSF.org (or, your tarfile of GCC source
No, they do not have to sign it. Yes, they might (depending on how hip they are and programmer's status in the company -- who wants to keep your star programmer unhappy, after all?
My $0.02 ($0.1, adjusted for inflation).
Paul B.
Assuming you want it to be purely open source (and not sell proprietary licenses to it, like MySQL, for example), just ask them to license it to you under the GPL or BSD license. Either of these gives you, as licensee (it doesn't matter that you wrote the original code) the rights that you want, and they're well-understood documents. If they can't understand those licenses, they really have no business licensing their software to customers. And if they're not okay with licensing the software to you under those terms, they won't be okay with any document that effectively allows you to get that license to the software (and may also transfer copyright).
As far as whether you should try to get the copyright, having this company own the copyrights and only license it to you under the GPL and then have you work on it and only license your changes under the GPL means that nobody can change the license, since neither of those two copyright holders are likely to agree on a change. This can be preferable for end users over having a single copyright holder who could legally take future versions closed-source.
when you can write a different way of doing it with new code that uses a different way of doing it on your own time, that isn't like the old code or the code they replaced it with?
I am sure that over time your coding has improved, and you might be able to find a different way to do the same thing that isn't the same as your old code or the code they used to replace it.
That is unless your employment contract states that even coding you do on your own time still belongs to the company. If so, wait until your contract is over, or the employer changes the contract to allow you to write code on your own time that belongs to you and allows you to open source it.
As long as the new code you write doesn't use code from the old code or the code that replaces it, nor is it written on company time or the contract doesn't somehow prohibit you from writing it so it isn't the property of the company you work for, you should be able to write open source code.
The old code can't be that good, as they replaced it with different code. Chances are that you can find a better way to do the same thing with different code that doesn't violate any contract you have with the company.
Anyway I agree with others, you should be talking to a lawyer instead of Slashdot.
Remember, Slashdot does not have a -1 disagree moderation, and no, troll, flamebait, and overrated are not substitutes.
Another waiver could be found from Java, OpenOfficeOrg or OpenSolaris. I think Sun requires such a waiver before your code is included into any of those.
The problem is that 'Lawyering' has achieved critical mass. It's pervasive enough, and effective enough, that if you choose to forgo an advocate in any dispute, you lose. period. The other party is going to lawyer up and in the contest of lawyers vs. no lawyers, you're not going to win. Even if your case is obvious, you're still going to lose because you can't articulate its obviousness in the language of the court.
Therefore, if you know you're going into a situation in which there is a nontrivial chance of a dispute developing, it's unfortunately necessary to consult an expert to make sure you're not exposing yourself to unnecessary risk.
Can you be Even More Awesome?!
Actually, in Hong Kong the last week there has been a huge "sex photo scandal". A male pop singer, Edison Chen, had a string of actress and pop star girl friends, and apparently had the habit of taking their photos in bed -- very explicit photos too, as became public knowledge when he took his laptop in for repair...
Here's a forum with the (NSFW) photos and some background.
And unlike, say, Britney or Paris, these girls had squeaky-clean teen-idol images did not benefit form the publicity. As for your question, the guys who leaked the photos have been charged and some arrested, though it's not really clear why these images are any worse than a billion others you can find online, except of course they involved celebrities.
The company needs to retain copyright, but release the code under the GPL, and have their employee continue to work on it until it is so good that the competition has to steal it. Then they wait until their competition has sold their closed-source product with the stolen code into critical application areas of their customers, then sue the competition for copyright infringement.
Much, much cheaper than developing a complete product on your own.
At least, that's what any smart attorney for your company who bills by the hour would tell your company to do.
paintball
I used to be a programmer for someone else, and I too was under the same restrictions -- as one would expect. When I started my own company, I decided to change things a little bit. I don't like restricting my programmers from owning their own code because it does an excellent job of eliminating their passion and the loyalty that programmers tend to have for their own programs. I legally own my car, but it's my mechanic who really owns it. Same goes for programming -- the programmer is the one that really owns it, independent of the legal ownership.
So my employee contracts adjust that infamous clause to say something to the effect of: "any code entirely written by you is yours to use any way you see fit, forever, for as long as you don't restrict the company from using it". It amounts to the programmer granting the company unlimited usage rights, and does not stop the programmer from using it or selling it or doing anything else with it.
The big condition is, of course, that the programmer have written it alone. If two programmers work together on a feature, then neither gets it. But a) that's rare: I don't think that two programmers should be coding the same thing -- extreme programming doesn't count as that's more supervisory than co-programming; b) individual functions and algorithms are not complicated enough to warrant multiple programmers; and c) my product is the entire package, not the individual functions, algorithms, and subroutines; so if my excellent custom e-mail client has an amazing sorting algorithm, my product is the application, not the sorting algorithm; in cases where my competitive advantage is indeed the sorting algorithm, then I promise that not only did it not rest in the hands of a sole programmer, but that I too was a part of its inception and design.
If the code is abandonware, tell your company that you are willing to maintain support on your free time if you can get the copyright on this obsolete code. IANAL but if you get the copyright, I believe it gives you the right to change the license and it may be easier to agree on than an open source licence that most IP people ignore or dislike.
The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
Why do people always say these questions don't belong on Slashdot? This question is the perfect example of how Slashdot *actually* works vs. how people *imagine* it works.
The question: I want to open source some code I wrote for work that the company is scrapping.
Expected Slashdot answer: Just do it! Don't ask The Man, he'll only push you down... OSS FTW!!1!
Actual Slashdot answer, overall: It's possible, but you definitely don't have the rights to that code, and it's probably not in the company's best interest to give them to you... so it probably won't hurt to ask, but chances are you'll need to find another project.
Included in that actual answer: details from other developers who've been in the same situation, and comments from actual IT lawyers who work with these issues.
So -- wrong place?
Yes, none of this is "official" legal advice (though about as close as you can get for free & online), and if the questioner wants to try something risky, he should pay to get that legal advice... but now he knows what "risky" even means in this situation (he didn't know before) and has some idea of if it's worth pushing for it (probably not).
So: can we just hash out a new feature for Ask Slashdot postings? Have the editor just flag the question as "responses might contain legality discussions"... and automatically include regular disclaimer text saying "reminder: comments in this discussion are not legal advice." Or add a checkbox to the reply form, next to "No Karma Bonus" and "Post Anonymously", called "Include Not-Legal-Advice Disclaimer"?
Then we don't need to fill the comments with all of these disclaimers and warnings, and the actual lawyers don't have to worry about someone pointing back to their comment as "rendered legal advice" and holding them responsible for it being a complete and accurate answer. And (this is not a response to the parent) we can start smacking down the people who always post "Don't ask Slashdot - get a lawyer!" to every single Ask Slashdot story, looking for cheap karma.
I wrote a perl library for work that has nothing to do directly with the business we're involved in. (Imagine we make car parts (we don't), this library makes it easy to add text to PDF files (it does))
I felt that the work I'd done might help other people, and as we use many pieces of open source software, I felt it might be nice to "give back". So I asked the boss if there was any way they'd consider open-sourcing the library.
He went one step further and said not to bother putting the company name on it at all. He understood completely that as we use open-source software all over the place, opening something that wasn't business critical made good sense.
Maybe the OP's boss would see the same logic -- or even retain the copyright but GPL the code for the OP to work on in his/her own time.
I bet you guys actually did real work in HS English class. Did you not learn how to properly plagiarize?
:-)
10 PRINT "Hello world."
20 END
*** BECOMES ***
13 REM \\\This code originally created by ME!
16 MESSAGE_PART_ONE$ = "HELLO"
17 MESSAGE_PART_TWO$ = "WORLD"
21 MESSAGE_CONCAT$ = LCASE$(MESSAGE_PART_ONE$) + " " + LCASE$(MESSAGE_PART_TWO$) + "."
25 MID$(MESSAGE_CONCAT$,1,1) = UCASE$(MID$(MESSAGE_CONCAT$,1,1)
28 OPEN "TXT.OUT" FOR OUTPUT AS #1
31 PRINT #1, MESSAGE_CONCAT$
33 CLOSE #1
36 SHELL "TYPE TXT.OUT"
39 GOTO 500
500 END
Guess what you open source. Let someone else make it efficient again, and it becomes original code and if it happens to look identical to what you had at the company, you have version differences to back up that you came up with it on your own.
It's a very BASIC skill, really.
See, in copyright law, it is perfectly fine for two people to have a copyright on exactly the same text, so long as they came up with it independently.
Now a patent is another ball of wax...
"They said I probly shouldn't fly with just one eye," "I am Bender. Please insert girder."