Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Is it ethical to keep a copy of the code or designs you did for your employer, for your reference?
10 points by juwo on Aug 1, 2007 | hide | past | favorite | 38 comments
Please comment on the two:

A) Extreme case:

[deleted]

B) Normal Case:

You keep a copy of your work and designs so you can reuse the ideas and perhaps even snippets of code. It is also a record of your work. This is for 'normal' work that took lots of thought and effort, not patented stuff.

Qs: How many of you regularly do B? Please also comment on A



if the code is a crystallisation of their business idea then using it again is equivalent to re-using their business idea and i think that is highly un-ethical. if you are talking about reusing some CSS templates and changing the colors - meh. personally, i err on the side of caution and never take work with me from one company to another - often i can condense 6 months of learn-by-doing into a couple of weeks of do-over since it is the overall direction and knowing what is definitely wrong that saves time. /note: i'm a scientist not a programmer but i think the same situations apply


OK, I was contracting in my previous life so I've seen these issues pop up many times before. Here's few words.

A) is illegal. You have no ownership of ANY code or IP that you work on at the company that employs you. That's what they're paying you for, after all.

B) is also illegal. Unless the company in question has open sourced their code and allows anyone to use it under some kind of a BSD-like license, you have absolutely no right to use that code or IP.

Not only are both of these cases illegal, they're also highly unethical. Also, if you're forming a company around someone else's IP, you're gonna crash and burn.

When I worked as a contractor, I would use my own libraries to save me some time but before I used them, I notified the management that I was using them and told them that I own the code and that I give them full right to use it without any licensing fees and I also told them I would use them on my other contracting jobs. They always accepted these stipulations an I've never had any problems. They loved the fact that I was not wasting my time and their money re-implementing the wheel and that I was solving their problems in record time. The key is to be open and put it all on the table before you start working.

Also, after I'd finish working on a project and if I was using my own computer, I'd wipe my computer clean of all of their code. I would do that on the last day of my job and I ALWAYS made sure that someone from the management was there to witness it. Sure, that might be going overboard but trust me... it's worth it. It shows them that you care about these sorts of things and it also makes sure that they won't have a strong case if they ever decide to sue you down the road because you end up inventing something amazing that's in their marketspace or you end up working for competition.


You are totally wrong. In a contracting situation, the CONTRACTOR owns all the code he or she produces unless the contract specifically states otherwise.


Where exactly am I wrong? Point the sentence. Of course you have to assign them IP! That's what they're paying you for! Ever contracted for the government?! Look at their 20 page assignment agreement.

http://www.developerdotstar.com/mag/articles/daniels_softwar...


You are right in the case of a full time employee. You are wrong in the general case of contract software engineering. Most software development contracts DO NOT have a 20 page assignment agreement that assigns copyright to the person/company paying for the work. It sounds counterintuitive and false, but that really is the case. You, the contractor, own the IP unless you sign your rights away. And even if you do, it probably won't hold up in court.

In regards to the government, I admit I don't know, I've never contracted for the government.

Also, I find it strange that the link you provided argues directly against your position.


You can absolutely sign away your IP rights in a contract. Unless the contract is crap it will certainly hold up in court. The contracting business would be a lot less healthy if this wasn't the case. Everything else you said is correct from what I know -- at least in California.

The neat thing about the labor laws in California (and some other states) is that they protect you from signing away lots of other rights as a full-time employee. It's difficult to enforce non-competes against former employees for example.


I write software as the largest part of my business, and I don't think I've ever been asked to assign copyright to the purchaser. I go out of my way to point out in written materials that I use licenses like GPL, BSD, and put stuff in the public domain when that's compatible with library licenses and such, but no client has ever actually asked me about that.

In my experience, people who are buying custom software don't even think about copyrights and licenses; it just never occurs to them.


It depends entirely on how savvy your clients are. Do some work for a company that has an IP lawyer and you can see the difference. The way it usually works is that you grant them a non-exclusive perpetual license to the software but maintain ownership yourself. If they want ownership you charge an additional 20% on the total cost, or whatever. I recommend contractors having their own contracts drafted by a lawyer and not signing client-provided ones. Much easier to be fair that way.


Software is not mentioned under any copyright law. Thus most ownership clauses contracts will NOT hold up in court. And as randallsquared said, most of the time ownership isn't even mentioned. I'm astonished by engineers who think this is some cut and dried issue, like NickB who points out that what Juwo mentions is "illegal" when it isn't. If it was illegal, you could make a reference a law.

Software copyright and ownership issues are murky. If they were clear cut, would Facebook be running right now?

Facebook is a great example. It depends on who you believe, but it appears that Mark Zuckerburg worked on a site that was similar to Facebook, but geared towards Harvard students. For whatever reason, he bailed and started Facebook, which was pretty much the same thing, only with a bigger scope, and better.

If he stole some PHP code, is that unethical? If he stole the idea, is that unethical? What if the guys he was working with were idiots who didn't really care, and were going to only pay attention to their rinky-dink site when they weren't at rowing practice? Is it unethical to grab someone elses idea and run with it when you know they are just going to let it lay fallow?


I agree software copyright and ownership can be murky. You're completely wrong about software copyrights not being licensable/transferable via contract. It's the basis for the entire software industry and you're claiming it doesn't even exist. Courts have found software to be comparable to literary works, making most general copyright law applicable. There's also plenty of special provisions and case law.

http://www.copyright.gov/title17/92chap1.html#117


The contract almost always states otherwise though. Unless maybe you're working in an area where the companies doesn't care about their IP or are just simply ignorant.


This is the other extreme - which I didnt mention in the op.

I agree that copying code is wrong - but what about a good idea that you come up with, or a neat design or technique in code?

It seems unfair given that doctors, scientists, marketing and many other professionals can keep a record of their work. Maybe not reams of data, but something. (I am not 100% sure of the extent they are allowed to). All art professionals have portfolios.

Is your brain just a vessel to be washed clean before it is rented out again?

Again, I am not talking of secret algorithms that would break a company, not someone else's work.


I can never really agree to such a clause, though. In the most extreme case it would mean I could never take on another contract, because I already used up all my programming tricks in the first one. For example I might have employed the MVC pattern, will I be able to ever use it again?


I've worked on over 20 software contracts and never once did the contract contain a clause that forced me to assign copyright agreement to the person paying for the software. Note that this only applies to contractors, not exempt employees.

http://www.developerdotstar.com/mag/articles/daniels_softwar...


Interesting...at the places I've worked (as an employee), it was considered a dealbreaker if a contractor wanted to own the source code they produced. We passed up some really, really good contractors because they wanted to own the product.


please also comment on A) since the person is likely to become an investor in my product in the near term.


I'm not actually commenting on either A) or B), just on menloparkbum's comment that it's common for contractors to retain ownership.

I don't really want to get into the ethics of it, because I don't think ethical debates are particularly fruitful. (I took a course in meta-ethics in college, which makes me particularly suspicious in attempts to ground ethical judgments in factual statements or logical debate.) I'll tell you that I wouldn't do it; it sounds dodgy enough that I wouldn't really want to get involved with it. Ultimately, most ethical judgments come down to gut feelings about right or wrong.

I will say that right or wrong, I think it's stupid. You're opening yourself up to big legal liability. If acquirers or investors find out about it (and they will - that's what due diligence is for), they will nix the deal. Heck, I'm spending about $1K to have a lawyer draw up a release to make sure all IP I developed for my startup while employed belongs to me, and I didn't take any source code from my employer (I'm using a completely different technology platform and am in a completely different area of business.) It's just something I don't want to fuck around with.


Enterprise software? That surprises me based on my limited experiences, but all the better for you I imagine you own a sizable amount of useful code by now.

Great article btw, thanks.


no problem. I've never worked on enterprise software. mostly weird, short term stuff for startups, researchers and artistes. the code was sometimes fun, but sadly, almost never useful outside of the specific contract.


It may or may not be illegal or ethical, but it is rarely useful. I used to keep most of the code I've written for employers over the years, but I never once looked at it.


Same here. My feeling is that being ethically compelled to re-implement something you've done before is a blessing in disguise.


please also comment on A) since the person is likely to become an investor in my product in the near term.


What agreements have been made with the employer? Hire an intellectual property lawyer to read and discuss the implications of any written contracts and agreements made with the employer.


its not about legalities.


Both are unethical and NEVER acceptable. Run, don't walk, the other way from those who rationalize this behavior.

(Why is it that when it comes to ethics, what was once clear cut is now "fuzzy"?)


I commend you for your firm sense of ethics, but what exactly are you saying is unethical?

For example, once in a while I will come across a problem that I know I have solved before, so I will refer to code I had previously written for someone else to remind myself of how I first solved it. I don't see any ethical dilemma in this.


Let's see if I have this right. Someone paid you to provide them with something for competitive purposes (if it's business, why else?). Now you're using their IP to provide someone else (who may be their competitor) with something for competitive purposes. It's NOT up to you to determine who is competing with whom, how important someone's IP is to them. or whether or not "it's a big deal". I've seen multi-million dollar deals terminated and careers sidetracked when there was even a hint of impropriety in the air. DO NOT UNDERESTIMATE how important most business people feel about this issue.

Of course, no one owns what's in your brain, but that's all you own. Move on.


Again, I respect your sense of ethics and I think the world would be a better place if everyone paid half as much attention to ethics as you do.

That said, I still think that there are occasions where referring to past code is entirely ethical.

Say for example I forgot the mod_rewrite flag to do what I need, but I used the same flag for a client in the past and I still have a copy on my server. Instead of Googling around for it, which might take a couple minutes, I could look at the copy from before in a matter of seconds. That is the kind of thing I would do, and I certainly am not violating anyone's IP or copying any code. Would you still say this is unethical?


I don't think that's all that bad - you're looking for stuff that's public information anyway, and it just so happens that your employer made use of that public information as well. It's like Apple and Microsoft both ripping off Xerox's GUI - Microsoft didn't take anything from Apple, it's just that they both originally took from the same source.

I'd draw the line at using the result of previous problem-solving that you've done for your employer. For example, in the course of my employment, I wrote a slider widget for my employer's product. I need a slider widget for my startup. Rather than using the code I wrote for my employer, I'm grabbing another open-source slider widget and modifying it as necessary. Same with utility classes - my employer wrote an OrderedDict class in Python, I need an ordered dictionary, rather than using my employer's I grabbed a third-party class off the net.


How does your client feel about their IP being "still...on my server"?


It's helpful when they accidentally delete their copy multiple times (Yeah, this has actually happened to me. The client blamed it on a hard drive crash, but what are the changes of that happening twice in a row?). I am not exactly working with high-end clients, just doing a few jobs here and there to help cover my tuition.

Edit: I don't know why someone modded down the parent comment, you did make a valid point.


I don't want to debate fine points of ethics (I know, too late), but I thought I'd share a little more background, and then shut up. OK?

Believe me, I'm not holier than thou - you should hear me in traffic. But I really think that this is a black and white issue. I don't see any difference between illegal downloading and walking out of Walgreen's with a CD in your pocket. Or putting that extra chicken leg from the buffet into your purse. "They'd just have to throw it away, anyway." I don't care. Right is right and wrong is wrong.

I don't ever want anyone to get the impression I'd employ situational ethics in business (or anywhere else, either). And I do not want to knowingly conduct business with anyone that does. It's simply not worth it, period.

I once had a partner that drew the ethical line where it was most convenient for him. First, he copied software from one account to another. Then, he went through a client's employee's drawers looking for something to "save us a lot of time". Before I realized it, he was making back door deals with clients and vendors because he "didn't think I'd mind; it was money I'd wouldn't have ever seen anyway."

I'm certainly not suggesting that everyone progresses down that path, or that reusing tidbits of code is the same as murder. It's just that when it's time to draw an ethical line in the sand, my position is clear and firm.

Just a few antecdotes to give you an idea of how strongly some business people feel about this issue:

- An acquintance of mine was earning $150 per hour advising a Fortune 1000 company which multi-million dollar enterprise package to buy. As an aside, he brought in a buddy to sell printers to his client and split the profit. He was immediately fired and black-balled. The CEO's reasoning was, "I would have never known if we made the right decision."

- A vendor was presenting their software package to my client. They said, "We already know your industry. In fact, we sold a system to XYZ Company." My client immediately dismissed the vendor. He later said, "That's all I need. For one of his programmers to accidently say what I'm doing to an XYZ employee over coffee."

- My client went bankrupt. Their assets (including all IP) were acquired by a third party in the settlement. Imagine their surprise when they had to compete with my client's ex-employee who set himself up in a software maintenance business at 1/2 industry rates. How did he know who to call on and what software they had? The case is still in litigation, but that guy's name will forever be dirt in this town.

- A contractor at one of my clients accidently left a thumb drive on a desk he was using. It had 70,000 social security numbers on it. What were they to think?

I could go on and on. They are some real slime balls out there. There are also plenty of good people who make stupid decisions to save a little time because "it doesn't make much difference anyway". How are people supposed to know the difference?

And when it comes to technology, many business people are doubly in the dark. Sometimes, TRUST is all they've got. It's so ridiculously easy for many of us to earn a nice living (try digging ditches instead), why would you ever jeapordize that over something so trivial?


I hope it doesn't feel like a debate, I am just trying to see your side of this because if I felt that what I was doing was unethical or even in a "grey area", I would not be doing it. The reason I keep coming back to this thread is not because I want to win an argument, but because I might be wrong.

I agree with you that drawing the ethical line wherever it is most convenient is bad. In fact, I have discussed or debated ethics online a few times in the past, and I was always in your position, saying that the issue is black and white no matter how convenient it would be otherwise. Perhaps this is why I am so interested in this thread, now that I am on the other end of it.

Anyway, thanks for your insight. Although I am still not convinced that anything I did was unethical, I will think twice before looking at past work again.


It hasn't felt like a debate. Just a real interesting topic. And, who knows, maybe we got one of those chicken leg buffet people to thinking here - this discussion may save someone a whole bunch of trouble years down the line.

Every once in a while, it's nice to say that which goes without saying.


well :)

which is more unethical?

the restaurant throwing away perfectly good food into the trash when there are hungry people in poorer countries (or even a few blocks away in the same city) who haven't eaten chicken in months because they cant afford it? (I know people like that).

OR

the "chicken leg buffet" person. He paid full price for his buffet, only his stomach can contain 2 legs, and he does not wish to greedily stuff himself with 6 legs.

or what if he took 4 legs on his plate, and out of a good conscience, cannot throw 2 uneaten legs away?

point: it is hard to judge other people.


Perhaps you can use your ideas but certainly not your code.

I managed to open-source some parts of my code (basically some generic libraries) under a very liberal license and to reuse it in other companies. Not without agreement with the employers, of course.


well it is certainly illegal ... ethics are fudged... using the source code or work derived from the code is certainly unethical (i think) because your code was paid by the employer..

but the actual idea? well where would you guys classify this? i think the actual idea unless protected by a patent is open.. also a lot of companies put a no-compete clause forbidding working for another company in the same domain ... (even though in some countries thats against the law)


regardign the "idea being protected by a patent", i meant if worded carefully with the necessary legal mumbo jumbo... (eg in australia, software patents are usually titled - a way using a COMPUTER to do steps explained in algorithm X)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: