views:

375

answers:

7

Over time, any decent developer creates a set of tools that helps them get the job done. Things like Utils classes, build scripts, etc, that aren't really part of any business logic of the company you're working for. Some of these things are trivial, while others may have been developed over years.

My question is- what do you do with these tools when you change jobs? What are the legal repercussions of bringing them with you to your next job? Must you totally abandon your accreted toolset, and start over from scratch? Is it legal to recreate them from memory? I realize that the answer in many cases depends on what kind of paperwork you signed prior at the beginning of employment, but are there any general guidelines to follow?

+13  A: 

Odds are that your employment contract probably specifies that all code written either on company time or using company resources (your laptop, etc) belongs to them. In that case, you cannot take the code with you.

Assuming nothing you did was patented (or possibly patentable), there's no reason that you can't re-implement it in your new job.

Mikeage
A contract (NDA) will also usually tell you to not disclose 'trade secrets' which aren't in the 'public domain'.
ChrisW
+1 good point. See comments of http://stackoverflow.com/questions/487737. 7 down, 8 to go (1 per day) – VonC
VonC
A: 

Even if you were to reuse your code they probably wouldn't know. So the question becomes are you willing to take that chance? Personally I would only take the code I just coulnd't live without or afford to redo.

Lucas McCoy
+3  A: 

I consider my editor mods to be fair to take along with me, in this particular case I honestly don't care what the law says. The editor is my tool, not something that belongs to anyone else. As for other stuff, like scripts and such it depends. Snippets are just that, they aren't code, anymore than generic greetings are in a document editor, so they are "public domain" IMHO, but stuff like automation scripts and other little apps do belong to the employer. Yet I look at this on the bright side and see it as an opportunity to rewrite them again, which is basically a good programming kata!

Robert Gould
+7  A: 

I'd have the code checked-in to my employer's version control system, so I wouldn't think of it as "my" toolbox (I might use and maintain it, but not own it).

If I had to, I might argue that copyright is not applicable to anything I then write from scratch at my subsequent employer: either because it's not a copy (it's something new); or, if it is a near-exact copy, then it must be such a small/standard code fragment (wrapping a O/S critical section in a C++ object for example) that it's more like a prior-art building-block.

The applicable laws are presumably:

  • Patent
  • Copyright
  • NDA
  • Non-compete

Copyright prevents you taking anything verbatim.

NDAs prevent you reproducing trade secrets which aren't in the public domain.

If you're not working for a previous employer's competitor then maybe no-one cares, and if you are then I'd guess you should get some legal advice.

ChrisW
A: 

In java, there is nothing left in that toolbox that's mine. Over the years everything has been covered by some sort of open-source library, and a lot of it is duplicated (quadruplicated??) in many different open source libraries.

This might sound a bit harsh, but if you're a java programmer and think your toolbox is really valuable and useful, chances are you're not paying attention.

(Or you could be working for some restrictive employer that doesn't want to touch open source).

krosenvold
I use tons of libraries (you would freak if you saw my pom/ivy dependency list). But there is always something that makes your life easier that does not exist in any library.
Limbic System
But it shouldn't be a lot. Hardly anything.
krosenvold
A: 

If you are a contractor you can often negotiate to be able to take your toolbox with you, including additions you made to your toolbox while working with the company.

I've seen quite a few contractors who are able to negotiate this arrangement.

DasBoot
+3  A: 

My log monitor, logview4net, started as a utility to listen on a UDP port. I made a project on SourceForge so that I could claim it was open source and not part of the project I was working on.

It has grown alot since then though.

idstam
Hmm, that's an interesting approach that I was considering adopting myself for new things going forward.
Limbic System