views:

1430

answers:

18

I am working on a project at work and see an opportunity to extract and abstract some functionality that is part of the project and release it as open source.

I have a hard time accepting the idea that this functionality should remain propietary and believe the open source community would get a major benefit from it.

Would this be unethical without consulting my employer?

Also, my boss is a little on the controlling side and likes to Google people on a regular basis, so I suspect he will discover my open source release sooner rather than later.

Since he is strictly opposed to releasing any functionality as open source and would fire me for doing so, is there any other avenue I can use to release this code?

How have others approached this dilemma?

I was considering rewriting the code so that it is indistinguishable except in functionality from my employer's code - would that help or am I on the road to prison for thinking this way (this code needs to be released! - it's driving me crazy!)?

+2  A: 

I'm not a lawyer. Best to consult one.

But it does sound unethical to me.

I don't know about your employment agreement, but if you wrote it on your company's time and were being paid I would say that the software belongs to them. If you have a no-compete clause, even the rewrite would be dicey for you.

Best to consult a lawyer.

duffymo
Sounds unethical??? - This would be clearly 100% unethical behavior. There is not event a hint of gray on this one.
Tall Jeff
+2  A: 

Yes, it would be unethical to release your code as open source without your employer's permission. Unfortunately, there's not a lot you can do. I wouldn't recommend making an open source version of proprietary code you're working on. There's just too much room for lawsuits.

DISCLAIMER: I am not a lawyer.

Jason Baker
A: 

Most contracts are likely to a clause saying items written belong to your employer. I think you'd end up getting fired pretty quick if you did this.

simonjpascoe
+38  A: 

I can't see how you have any legal or ethical basis for releasing your employer's code as open source without your employer's consent, even if you rewrite the code. If you do this and your employer finds out, best-case scenario is that you get fired. Worst-case scenario is that you get sued. If I were your employer, I'd do the latter.

By the way, since you say that your employer regularly googles the employees, posting this question here under your own name may not have been a good idea.

Clint Miller
Agreed, but I doubt many companies would go to the lengths of pursuing an individual through the courts in all but extreme cases - there'd be a good deal of basically unrecoverable costs associated, for no benefit. They would quite likely get the lawyers to pull the released code down though.
annakata
Actually, at least in Sweden, this would be a criminal offense. So instead of suing I guess an employer here would just report it to the police.
John Nilsson
A: 

Short answer: it is almost certainly illegal and unethical to steal your employer's code, whether or not you are making it open source.

Short solution: rewrite it from scratch, at home and on your own time.

Short caveat: it is possible that your employment agreement / contract specifically prevents exactly this sort of thing. Read before you act.

Start with a document defining the requirements and specifications for what you think needs to be created. If you sit and think about the results of your first prototype (that you were paid to build), there's an excellent chance that you'll see opportunities for improvement. Create an open source project with that mission and start coding to those requirements. Write a completely new product that meets your requirements out where everyone can see and contribute and you'll have potentially made something useful that also has little traceability to your original work.

Short nail in the coffin: when you rewrite it, write it in a different language first. If the project is popular, come back to the project later and create different language versions (including the one that you use at work).

tl;dr: it is possible that your employment agreement / contract specifically prevents exactly this sort of thing. Read before you act. NOTE: this is intentionally the same as the caveat above.

Bob Cross
I would imagine that if your employment agreement were written by even a half-competent lawyer, it would cover rewriting in a different language.
Clint Miller
Reacting on my personal idea of ethics only, I would say that company owns the code, but it doesn't own my brain. Although may still be illegal because of some contract clause, rewriting the code is completely ethical.
Slartibartfast
My employment agreement, for example, has a no-compete clause, meaning that I own my ideas developed in my own time with my own equipment, but only as long as they don't compete with things the company has done. Rewriting in a different language would still qualify as competing.
Clint Miller
+3  A: 

That's Intellectual Property theft and, unless you're living in China, it's illegal.

I admire your consideration of the open source community. Unfortunately you are bound by the law - that code is actually your employer's property, so releasing it is equivalent to taking their office furniture downstairs and handing it to strangers.

Even the concept behind the code may belong to them so it would not matter if you re-wrote it substantially.

No one on this forum would recommend illegal or unethical activity, so if you do try to circumvent this - and I'm sure there are ways - you would be on your own, unless you decide to consult your local criminal community for tips.

There is no such thing as "Intellectual Property theft"; it's a copyright violation.
ShreevatsaR
ShreevatsaR- google "Trade Secret Theft". Copyright has nothing to do with this, unless the poster fraudulently claims that the copyright is his.
Tim Howland
Well, making the code available to the general public is a copyright violation in some parts of the world.
John Nilsson
+10  A: 

Whether something is ethical depends on your ideas of what is right or wrong. In this case, you and your boss are likely to have different ideas, therefore I'm not sure the question is meaningful.

What you really want to know is whether it is legal. This depends on both your local law and the terms of your employment contract. At least here in Belgium, the company will have copyright on all of the work you do for the company unless the terms of your contract explicitly specify otherwise. I believe this is typically the rule elsewhere also. The US copyright law for example covers this as "works made for hire":

(b) Works Made for Hire. — In the case of a work made for hire, the employer or other person for whom the work was prepared is considered the author for purposes of this title, and, unless the parties have expressly agreed otherwise in a written instrument signed by them, owns all of the rights comprised in the copyright.

So no, you cannot just take the work and slap a free software license on it.

However, copyright only covers implementations, not ideas. Again from US copyright law:

In no case does copyright protection for an original work of authorship extend to any idea, procedure, process, system, method of operation, concept, principle, or discovery, regardless of the form in which it is described, explained, illustrated, or embodied in such work.

This is the difference between patents and copyright. Therefore you are free to create a new implementation if there are no patents on these ideas.

Edit: as some commenters remarked, your employment contract may include non-compete or non-disclosure clauses which may apply even to reimplementations.

Edit2: if a non-disclosure clause is violated, then trade secret law may apply. And as you can read in that law (or the answer of Tim Howland) the penalties for "Theft of Trade Secrets" can be quite harsh.

Wim Coenen
And get sued. And wcoenen will be tracked down by IP and subpoena'd.
Will
Reimplementing the source to avoid copyright will be problematic. Some things will likely look similar. Because you know both implementations, this is no longer coincidental. You have in effect (potentially) stolen trade secrets, hence getting sued to @Will's point.
Tall Jeff
I see your point. My answer is probably a bit misleading in that it does not consider the likelihook of additional employment contract clauses which try to prevent this sort things. I have added a remark about this.
Wim Coenen
BTW, @InSciTek Jeff: thank you for the constructive comment. I was kind of scratching my head over Will's cryptic "i-will-sue-you-anyway-neener-neener" remark.
Wim Coenen
+4  A: 

Not only are you screwing over your employer who paid you to create the code, you are also screwing over anyone who adopts your code in good faith as part of their project. If you pass off code to others that you don't have legal rights to use, you will be forcing them to rip out your code and reimplement it from scratch when your theft - and it is theft - is discovered.

EDIT: Several commenters below seem confused and think this is an issue with copyright law, and don't classify borrowing an employers source code as theft, as the employer still has their original property. However, the employer has lost something that is potentially quite valuable to their business- the exclusive access to their code, offering them a competitive advantage. This doesn't have anything to do with copyright (although if you release your employer's code with your own copyright, as is required under most open source licenses, you are clearly committing fraud)- the issue is that this is theft of trade secrets. If the code is integral to the employer's business, then it can be considered a trade secret. Trade secrets don't have to be registered with the government, so you will likely be going to court if your employer is pissed off enough. If you have a good lawyer, you'll settle immediately to avoid prosecution.

Intentionally revealing a trade secret - also known as Trade Secret Theft- is a federal and state crime, punishable by up to 10 years in prison and a 500,000 fine. In other words, you aren't just screwing your employer, screwing any projects that adopt your code in good faith, but you are also lining yourself up for significant legal jeopardy.

Tim Howland
This is -not- theft. When you copy something without permission, you have committed "Copyright Infringment". When you violate the terms of your employment contract, you have committed "Breach of contract". In most jurisdictions these things fall under civil law, not criminal law like theft.
Wim Coenen
I'm sure the 3rd party victim of this civil violation (a victimless crime no less) will be happy that according to semantics the idiot who gave them code he did not own was NOT a thief. It makes rewriting the code from scratch a much easier pill to swallow knowing you weren't lied to by a thief.
jmucchiello
Those of you who crusade against copyright violations would do better to not make stuff up. If a thief takes something from me, I don't have it. If an infringer copies something of mine, I still have it. Big difference.
David Thornley
Google "Trade Secret Theft". This has nothing to do with copyright, and the law treats it as theft.
Tim Howland
In fact, it's a pretty serious felony: Under the Economic Espionage Act of 1996, intentional trade secret theft—including stealing, copying, and receiving secrets—is both a state and federal white collar crime. Convicted individuals face fines of up to $500,000 and ten years in jail.
Tim Howland
@Tim: I still think that "theft" is a term that should not be applied to the wrongful copying of information, but you are correct. USA federal law appears to call it "trade secret theft" as you say, and it falls under criminal law. I have added some links about this in my own answer.
Wim Coenen
Wcoenen, I have accidentally discovered your credit card numbers, the pattern of your car and house key, your name and address, medical records... I will not use this information against you myself, merely publish it on the internet, and you will still possess the information yourself. Thankfully I know you will not consider this a matter for criminal law.
MarkJ
+9  A: 

Its illegal and unethical, and if you even write it on your own without "rewriting" the original code, you're in violation of your employment contract.

By the way, start looking for a job. I'm your boss.

Will
@Will - Well put and funny at the same time! - It blows my mind that ALL people don't see this as 100% unethical and illegal on probably 99% of the planet.
Tall Jeff
Bizarre attitudes.
fuzzyman
Personally, I believe code should be locked up and money should be free. So give me your f*ing wallet.
Will
+44  A: 

It seems you've answered your own question since you know your boss would object. However, if that's not enough to make you reconsider releasing code you've written while employed by an employer that cares about this then consider the real-life example of Perl developer "Tilly" -- Slashdot: Beware Employment Contracts .

Tilly wrote significant code used in Perl. The Perl community became dependent on his work to the extent when his employer threatened to sue him for releasing code developed while he was under contract it rocked the Perl development community. Eventually the employer decided not to pursue its rights for the already released code, but things could have gone very wrong quickly.

Do yourself, your employer and potential users of your code a favor: don't release what you don't own. If you want to fight for the right to release code while employed, win that right BEFORE getting an unsuspecting userbase dependent on your code.

You probably want to read Tilly's thoughts on the subject of Professional Employees and Works for Hire.

rjamestaylor
Perfect. Thanks for the cautionary advice. I definitely do not want to end up in Tilly's shoes.
+1  A: 

First, I would reread your contract, possibly with the help of a lawyer, to see what exactly is permissible and what not.

You might be allowed to hint someone else at the possibility to do something like that. This is often enough to spur independent development. Just be sure that this hint is done in private/anonymously and doesn't contain any information that only you could have.

Svante
A: 

I think you have a unique talent of landing yourself in trouble.Just look back at what you are doing and see for yourself how much you are hurting yourself and the economy!

  1. You don't have your employer's consent
  2. You have to rewrite your code
  3. You may lose your job.

(Once this happens there is a long list of consequences to follow - You will stop spending,start defaulting your loans,add to the unemployment numbers and create a mess)

So just think whether you are in the right senses before doing stuff like these.Everyone everyday can find opportunities to defy the rules.But that is not what we are hired for.So please!

kjayakum
A: 

You can (not should) do a couple of things.

a) Release the source with no licence. If your employer owns the source, this is Copyright Infringment. Source with no licence is not Open Source, it is just a repository of ideas where the ideas can be copied but not the

b) Release the source with a licence. If your employer owns the source, this is Copyright Infringment, and possibly also something else, like Fraud (IANAL). It also completely destroys the trust that people place in Open Source licences.

There aren't very many things I can conceive of that would get one of my employees fired on the spot, but releasing software that I owned, ostensibly as open source, would qualify!

Airsource Ltd
A: 

This is probably what most of us would refer to as an "X files" like reponse ;-)

Just for the record, I also think that -at least under the outlined circumstances- this would boil down to being "intellectual theft", so it really comes down to the specifics in your contract.

Also, personally I would ask myself a couple of questions, like:

  • why do I really want to release this source code to the public?
  • what is so revolutionary about it?
  • is it worth the possible hassle (i.e. being unemployed/getting sued)?

So, I cannot only relate to your situation, but also to your employer's situation-and I would in fact be very fed up with an employee who simply releases my IP into the open/public domain (or as open source), certainly if that means that I may sacrifice a competitive advantage. Have you signed any NDAs?

Thus, it's indeed an ethical dilemma.

On the other hand, I can also understand the sentiment that something really needs to be made known to mankind (if that's really the case), so if your code were to solve major worldwide issues like "world hunger", "world poverty", "cancer", "AIDS", or the "energy crisis" by coming up with clean nuclear power, then for god's sake: what the heck ;-)

No, honestly: if I were in a similar situation, where I would be convinced that releasing info into the open -that I developed under contract- in order to possibly help mankind in some major way, I would consider distilling it down into very abstract, algorithmic basics that could be easily and anonymously posted to websites like wikileaks.org.

In fact, just re-implementing the algorithms in a niché language (think brainfuck ;-)) could also help obfuscate the origins, there are so many niché languages that are not mainstream, and which are not necessarily understood by many developers. In fact, you could even encrypt or password-protect your info, so that it will need to be unlocked by whatever 3rd party is interested in it, so that you didn't really provide anything directly. Using encryption schemes that can be cracked in a foreseeable time frame by the corresponding computing power, would give you the guarantee that your code will eventually be unlocked by someone.

However, in any way I would most certainly refrain from releasing anything that's associated with my name or any other personal information that could be used against me in a worst case scenario. In fact, I wouldn't even engage in any activities related with such an effort from my work place, home or any place that could be directly linked back to me.

none
"niche" has no accent!
Artelius
A: 

Your employer owns the code you've produced under his employ. This is the contract made when you sell your development skills for money; you produce code for your employer and forfeit ownership to it to him, and he produces money for your code and forfeits its ownership to you. It's a trade. In this situation, it is entirely unethical to release code without proper consent, excepting extraordinary circumstances (life and death, etc.).

However, it is not unethical to use your knowledge and accumulated experience and training to write a completely independent piece of software that accomplishes similar ends. Your employer may deem this a conflict of interest and fire you for it, but as long as this code is completely devoid of any code from your employer's codebase, there's almost nothing else he can do (as far as I know; IANAL) (assuming a standard employee-employer relationship and no extraordinary contracts).

If you truly feel that similar code would be such a boon to the open-source community, I'm sure we all encourage you to pursue building and releasing that project, but please, please make sure you do so in a completely legally unambiguous way; ensure that none of the original code appears in your clone, and that you aren't bound by extraneous legislation or contract. Unclear, unclean, or otherwise dubious licensure surrounding your project would make it as good as useless to the greater open-source community.

Good luck!

cookiecaper
A: 

Just thought I'd add my opinion:

I think that keeping code closed-source is unethical if doing so provides very little benefit to you while releasing it would benefit many.

However, if your employer owns the code, it's his decision, and him making an unethical choice doesn't give you any rights to his code.

I see a solution, however: if your contract permits you to write - and own all rights to - this kind of code outside of work hours, you can write the code, release it as open-source, and then use an open-source library in your employer's code (a library whose author happens to be you).

However, you would have to choose an appropriate open-source licence for the code (for instance, GPL code cannot really by used within otherwise closed-source software).

But if you have been paid to write the code, then the employer has the final say.

Please note, IANAL.

Artelius
A: 

I've to disagree with most of the replies here, my way of thinking goes something like this: if you develop something by your own, on your own time, it's your intellect at work and thus your intellectual property therefore you've every right to do whatever you want with your product. You can't just drop and forget the good ideas / implementations you had programming just because you had worked for employer X some time in the past. If we all did that the OSS would probably not exist.

However if the idea behind the code was not yours, or if the code base itself is not solely yours you need to get a consent from all the parties involved in the production.

I don't mean that you won't get fired, but that's your decision to make and you're free to make it. However, I seriously doubt that you would get any kind of legal trouble if you could prove that (or disprove the other) the idea and implementation came from your head and was done on your free time.

Alix Axel
+1  A: 

This could be its own question but it seems fairly on topic here. Everyone keeps saying to check your work contract and talking about non-disclosure and non-competes…what if when you were hired you never signed anything and there’s no contract or agreements? Wouldn’t you be the owner of that code and free to publish it as you wish? On one of the SO podcasts Joel mentions that in a situation such as this the programmer is the owner and can release it. I know there’s catches with everything but is there any info to look at on this scenario?

Brian Surowiec