Beware Employment Contracts
A lot of people think they have no negotiating ability. You do. When you're thinking of signing on with some company, and they send you a boiler-plate contract to sign, don't just sign it and send it back. Read it carefully. Alter it as you see fit, striking out sections, adding sections, and initialing each change. Then sign it, make a copy for yourself, and send it back.
Where it says:
company owns the rights to all work produced during the term of employment
Just strike it out, and change it to:
company owns the rights to code written during working hours and in direct furtherance of any tasks assigned by the company
See how much nicer that reads? Now, when you do this, there are two possibilities: either the company will ignore it and hire you, or they will object to your alteration of the contract. In the second case, if they stand firm on the boiler-plate contract, I suggest you simply ask for more money - for instance, if you were expecting an 8 hour/day job and their contract asserts that they own what you do 24 hours/day, then you'll need at least three times as much salary to compensate.
And if you and the company cannot reach an agreement, well, maybe you didn't want to work for them anyway. If they're already screwing you before you've even signed on, that's not a good omen.
There's already some good advice in the comments on the perlmonks story, so I'll leave it at that.
Just strike it out, and change it to: company owns the rights to code written during working hours and in direct furtherance of any tasks assigned by the company
Amen! That's the clause in my employment agreement. When I started doing open source development, I pulled it out and double checked. If I create it at work it's theirs. If I create it at home, it's mine.
Of course, I just have to be careful not to use any of my open source code for anything at work. That would make it very easy for them to claim I worked on it at their expense. If you've written something you want to use at work, right up a separate contract and license it to your employer for one dollar, just to keep everything clean.
A Government Is a Body of People, Usually Notably Ungoverned
I've worked for several small companies in California whose agreements tried to grab everything they could from me, and if they could have gotten me to "waive" section 2870(a) they would have. Instead, the employment agreements and IP assignments specifically said stuff under 2870(a) wasn't covered. The paragraph that I typed in came verbatim from where it was quoted on one of my old employment agreements that I pulled out when I saw the /. article. Any employer who fools around with that needs to be reported to the labor board.
In the interests of helping to spare our beloved Monastery further merciless Slashdotting, here is the whole of tilly's post:
This post is somewhat long, so I would like to start by saying that this is very much relevant to PerlMonks even though it is not about Perl or programming. It is also very relevant to CPAN, perl, and the broader open source community. This is about aspects of being an employee which generally get ignored, and really, really, really shouldn't be.
I will talk about New York State's laws, since that is what I know best. However in discussions with legal types it appears that New York's provisions are not unusual, and therefore what I say is applicable in some way to most of the US, and likely in many other countries as well. I should also disclaim at this point that I am not a lawyer, nor is this legal advice. But the general outline of what I am saying has been verified to me by both lawyers, and people who are merely interested in the legal profession. I have also been told that this is bound to become a huge issue for the open source world.
Enough advertising.
In New York State there are three basic classes of employee:
- Hourly employee: If you show
up at work, punch a clock, and are paid overtime, then
you are an hourly employee. Factory workers are commonly
hourly employees. As an hourly employee the company owns
the hours you are at work, and has no other claim on you.
I believe it is uncommon for programmers to be hourly
employees.
- Contract worker: In this case you are working
per defined contracts. The work you do on that contract
is (barring specific contract provisions saying otherwise)
owned by the company that has hired you. They have no
claim on your time or energy when you are not working on
the contract. Many programmers work this way. But if you
are (for instance) hired by a consulting company to work at
clients, then your employment with that consulting company
is not contract work, see the next option.
- Professional employee: This is the rest of us.
Professional employees have employment that is not defined
by a clock or by a contract. In fact under the law their
productive output belongs to their employer, 24x7, 365 days
a year (366 on leap years). It is customary for these terms
to also be spelled out in employment contracts very clearly,
though truth be told most people read these, sign them, and
have never given the contents of those contracts much in the
way of thought.
This brings me to intellectual property law. Intellectual property law in general assigns the rights to intellectual property to the creator of an idea, work, or implementation. That creator gains delimited control of their creation. In theory the reason for this is to encourage potential creators to create new things, and for them to pass into the public domain. Or at least this was the reasoning that Thomas Jefferson used (and he got it from French thought on copyrights), though the reality in this century has not matched theory very well.But who is the creator?
One would think that the creator of a work is the author, the person who actually produces it. But the realities of life are not so simple. What if one person conceives of an idea, and then gets multiple people to implement it? Is it owned by the implementers, or the person who thought it possible and paid for it to be done?
The legal resolution is the doctrine of a work for hire. A work for hire is a work that you produced for someone else, and they own all rights to any potential intellectual property that might arise from that work. (Including, obviously, both copyrights and patents.)
Now what happens if you combine these two legal areas?
The answer is unambiguous both in theory and practice. All work covered under your employment terms belongs to your employer. In the case of professional employees, this is everything. If you go home and write something on the weekend, you do not own it. You might be unaware of this issue and naively put a copyright notice on it, then distribute it. That was your mistake.
Now let me make this personal.
I am a professional employee. I signed a routine employment contract while I was still pretty much of a novice as both a programmer and an employee. As is common, 6 months later I had completely forgotten about the terms of the contract and was blissfully unaware of the laws I live under.
My bad.
Over the course of this job I have slowly become more and more involved in open source work. I write software for fun and release it. I have put code into posts here, released stuff on CPAN, and even contributed a core perl module. All of which I thought I had the right to do, but as it turns out none of which I did. There isn't even a legal issue to contest, I simply didn't know better.
My very bad.
As of today here is the status. This came up from an incidental issue about a month ago. I have been told that if I wish to continue being employed, I cannot post code. If I continue being employed, then I will be admonished for the code I have released so far. If I leave my employment then the decision about what happens with any and all of the code of mine that people here have seen is not mine. (Stupid comment removed.)
I live in NYC. It seems likely that my wife is going to have no option about moving any significant distance for at least a year. I am carefully considering my employment options. I have a likely job prospect near Philadelphia which would allow me to work on open source stuff. That is farther than I want to commute, and the pay cut would be painful, plus it does not resolve the other issues. I have not seriously searched for any potential jobs which are closer.
Now my food for thought for everyone is this. How many more people are in the same position I am, and are not aware of it? How much open source software has been put out there by authors who thought they owned rights that they do not? If you are an employee, are you one of them?
These are, as I have just learned, extremely non-hypothetical questions.
UPDATE
There is, considering the circumstances, only one choice for me to make which is not abysmally moronic. Do not expect to hear much from me in the future.
"The best we can hope for concerning the people at large is that they be properly armed." - Alexander Hamilton
Here is my take:
1. We once were sent to a convention. At the convention we were told that we were on duty 24/7. So I asked for 24/7 compensation. They shut up and left me alone after that.
2. I have always marked out, struck through, and changed any documents which a company has given me when they were considering me for hire. I've always signed them, made copies, and keep the copies with me. No one has ever had a problem with this except one company.
As I do not wish to be sued - I'll leave company names out of this: I did not go to work for one company because they said sign the contract or don't work here. I had gone through a headhunter company and the job looked really great. Lots of money, great benefits, etc.... The only problem was that the contract basically said everything I'd ever done belonged to this company. Even things created prior to joining the company belonged to them. I've helped a lot of people and written a lot of code so I was very concerned and even brought it up to both the headhunter as well as the company. When I had finally decided not to accept the contract I let both parties know and I even went over with both of them why I had decided to turn down the offer. The headhunter company became very nasty. Even going so far as to threaten me with a lawsuit if I didn't take the job. I told them I couldn't. The terms were so terrible that I just could not "Sign Zee Papers" (If there are any C&C fans out there.) So then, curiously, I could no longer get a contract with anyone. No contract or perm for a very long time. Only after a year and a half had gone by was I able to get another contract.
So my thing is - there is a very real threat to contractors (and even people looking for permanent positions). Sometimes they blacklist you if you do not sign and there isn't much you can do about it. So what do you do? I was lucky - I had a friend I could live with. But someone else might not be so lucky. Then what? Do you go ahead and say "Sure - take everything I've ever created" like this guy is having to do? I believe there has to be a limit to what a company can claim as theirs. We aren't slaves but we are being treated as such.
I have seen this happen to people I know. The standard contract has these provisions. When people ask about them the company says they're just protecting themselves and not to worry about it. Yet they are given the legal authority to hold it against you and sometimes do.
For almost every problem I've seen engineers face, someone says, "Well you should have negotiated that with your contract". Well, I know a lot of engineers and the number I know who work full-time and have intellectual property or overtime issues negotiated in their initial employment agreement I can count on my hand. The reality is, if they're handing you something to sign from their lawyer's boilerplate, instead of vice versa, they have the upper hand.
Most professions have professional organizations that look out for their interests, lawyers have the ABA, doctor's have the AMA. Who looks out for IT workers? There are some ancient associations which are more-or-less owned by the industry employers (IEEE, ACM). The professional associations that truly look out for the modern IT workforce - the Programmer's Guild, Washtech and whatnot, are new, small organizations. They do not have the history and well-funded organization of the ITAA, the IT employers association. The ITAA has not only rammed through H1-B legislation but legislation which overturned FLSA so that computer workers don't have to be paid overtime. Section 1706 was lobbied into the IRS tax code to drive independent consultants into body shops. Because the professional organizations are still small, most engineers don't even know this, and know the ITAA is attacking their livelihood down in Washington.
What do most engineers say? Well, they always think they're the smart, hard-working ones who are unaffected by the laws of supply and demand. In some ways, they are a bit of the engineer stereotype, putting their personal self-worth into how "skilled" they are, and think being skilled is a panacea for everything. Luckily for them, this requires no backbone as the boss has no problems with engineers spending what spare time they have improving their skills. Unfortunately, laziness is endemic in the profession and a few engineers will have to deal with these issues, defending against the ITAA's attacks on the profession while a lot of other people lazily sit around and criticize them. Hopefully there will be enough counter-force, I'm not too optimistic however. I think in 15-20 years there will be a lot of carpal-tunnel afflicted (another bill the ITAA killed) guys who have spent the last 20 years working 60 hour weeks, oncall 24/7, and who are burned out, having problems with their families who they don't spend time with and are over-the-hill and less and less employable. I see this because this is what I see now with a large percentage of 40+ programmers today. Luckily everyone I meet thinks they're a unique super-genius who is too smart for all of this, lucky them. We're so smart we don't have to organize like doctors and lawyers do, so we don't even need an organization warning us about the ITAA like the Programmer's Guild and CESO and Washtech do. I'm afraid as time goes by, I am becoming more concerned about the thick headedness of American programmers and that the ITAA will succeed in making everyone a low scale wage slave, I thought this recession and widespread wage freezing, cutting, long hours of unpaid overtime, 24/7 oncall, unemployment and so forth would do it. I'm actually planning a professional exit strategy while I'm still in my 20's as being an American programmer 15-20 years from now looks like a bad deal, I'll be fighting the good fight 2-3 more years however hoping things will start looking like they might turn around until then though.
Anyhow, here is my web page on this:
http://www.geocities.com/oncallguild