Your scripts and code in the company... (please discuss)

Hello,

I am a rigger/generalist and I sometimes have to bring in my own tools and scripts that I made to any company that I have to help or join. Sometimes, I have to modify my scripts on site to make it work or enhance it for some animator’s request.

My question is, when you leave the company, do you just take your scripts(with mods done in the company or not) with you? Or do you just leave them there?

I understand that this can be an agreement between parties but I just want to know your respective views. I for one is uncomfortable leaving my stuff behind because they get a tool for free and might take advantage of any goodwill by you in bringing you tools into the company. For some it does not matter at all…

What do you guys think? I just want your opinions since sometimes I feel that people are taking advantage of my “amiability”.

<IANAL and this is all US specific>

Over all, I’d say don’t get bent out of shape about leaving code behind. If your code comes and goes with you, it’s probably a net loss for the employer: finding and removing all the depenencies and whatnot is a big hassle and introduces errors. For that matter dealing with code that nobody in the building wrote or maintains is also big pain in the ass. If yoi’re really trying to be helpful, integrate code into the studio infrastructure in a sustainable way. If you’re just doing it for your own convenience, make sure it’s not a violation of company property and keep it completely private, the same way an end user might keep their own shelves or buttons.

In the US, at least, you also need to be careful of your rights and responsibilities. Your employer owns everything you do for their project on site – and if it’s project-related they may own it even if you did it at home or offsite, depending on how your contract reads and where you are. They certainly own anything you make on their time - depending on the nature of your relationship with them, ‘their project’ may include stuff you think of as ‘on your own’. I’m not defending the law here but that’s how it often works – and even if when it doesn’t the prospect of having to go to court over it is daunting.

On their side they have issues to conisder too. If you bring in something on your own that somehow messes up their legalities or their project, they have a right to be pissed. For example, if you bring in a GPL’d tool without explicit permission from their legal people it’s bad news (I once watched 80 artists stand around idle while lawyers audited ther machines - no joke! - because somebody brought in a GPL tool which could theoretically have made the entire toolchain for a big, expensive AAA project open source.

if you have personal tools you want to bring in:

a) copyright your own stuff (it just takes sticking a notice into the code files)
b) ask about their policy and make sure you’re comfortable with it - they might try stuff like asserting ownership over your code if you change a few lines in the office.
c) make sure they are ok with you bringing in outside stuff for all the reasons above

One nice alternative is to keep all your code open-source with a non-annoying license (BSD or MIT) and get sign-off from your employers before using, This keeps the ‘ownership’ of the code very clear but doesn’t get in the way of use. If they say OK, you still own the code - and if they don’t, just write them a new one on their dime.

In general I take a pretty relaxed approach to this stuff in my own work - if I’m getting better as I go along, my code will probably be redone every few years anyway. Very little of what we provide is magical technology - most of it is good instincts, problem solving skills, and being there when things go wrong.
</IANAL>

Also: great discussion here

It’s an interesting question and I guess it all comes down to how precious you are about what you write. It’s hard to walk away from software and tool chains, I know having walked away from 10 years of development code when I left Eurocom. However what you loose in code you gain in experience for the next time you have to write it.

I was lucky enough to have the core of Red9 already written and up and running before I signed up to Crytek and one of the stipulations of joining was that I could continue that development open source, however I think this is rare event, most companies want to lock you down and keep workflows in house. You can understand it really, you’re developing tools in house on your employer’s time so yes, they own what you do. I wouldn’t dream of taking away any in-house Crytek code, for one thing outside of our pipeline most stuff would make no sense.

I’ve just pushed Red9 out under BSD, GPL after reading through it is too restrictive.

When I started they asked what projects I already owned and they let me keep those as my own. I use some of the tools here and any changes that need to be made, i either fork it here and it stays here or i note the changes and make them at home, then update the package. I’m pretty sure anything you do on the clock is theirs no matter who owned the script before. Think of it as it you forked something from github and made changes on the clock, the owner of the original library doesn’t benefit from your changes simply because he owned it first.

thank you guys for your inputs. generally, the deal always comes down to whatever i modify on the company’s time is theirs. for me, i honour the agreement since it is ON their time and office anyway. or i just leave any dependencies since this is the right thing to do

but sometimes i get some people who try to be shrewd in that they want the whole system. even if you did them on your time and waaaay before you even joined their company.

this is very educational. i am going to research into the copyrighting and licensing issues we are entitled to. me and most of my friends who wrote stuff never even considered these things, we never even talked about it! for things that we have to build FOR the client, then it is a no-brainer, it does belong to the client since we are contracted to do these things.

one last thing, i read somewhere a very long time ago that a programmer won a case on the ownership of his code. i remember this clearly because my ex boss in 1999 (a programmer himself) was jumping for joy when he shared this news to us.