Getting Paid To Abandon an Open Source Project?
darkeye writes "I'm facing a difficult dilemma and looking for opinions. I've been contributing heavily to an open source project, making considerable changes to code organization and quality, but the work is unfinished at the moment. Now, a company is approaching me to continue my changes. They want to keep the improvements to themselves, which is possible since the project is published under the BSD license. That's fair, as they have all the rights to the work they pay for in full. However, they also want me to sign a non-competition clause, which would bar me from ever working on and publishing results for the original open source project itself, even if done separately, in my free time. How would you approach such a decision? On one side, they'd provide resources to work on an interesting project. On the other, it would make me an outcast in the project's community. Moreover, they would take ownership of not just what they paid for, but also my changes leading up to this moment, and I wouldn't be able to continue on my original codebase in an open source manner if I sign their contract."
You can't begin to imagine the power of the dark side.
Modding Trolls +1 inciteful since 1999
Because that's the real question. Are they paying enough to own you?
So, they're offering to pay you to go fork yourself?
I wouldn't do it at all, personally, because I'd consider it a violation of my integrity to do so. Kinda like a deal with the devil, if you will.
Also, how are they going to take control of changes you already made? You've already licensed them under the BSD license; someone else could just republish them. You can't revoke things like that.
It's better to vote for what you want and not get it than to vote for what you don't want and get it.
- E. Debs
I mean that in a very practical way.
I've never signed a non-compete; they generally are a bad idea unless you have a personal services contract which guarantees you a minimum length of time when you'll get paid, because what's to stop them from firing you the day after you sign?
Also, if the non-compete is broad, and you quit/they fire you, could you find *any* work without competing with them? If the answer is no, then you should seek compensation for your time.
OTOH, if you're a typical coder-monkey who is bright, but your work could really be done by about 1,000 other people (and be honest with yourself) then the whole thing seems fishy to me on so many levels.
I have a feeling you're only asking this stuff because you're not really being honest with yourself. You know the answer to this. Just execute on it.
(I'm anon because I participate in all these talks all the time at a major company and I'd rather not have my name available in this context)
Depends, how good is the offer?
Treating open source as anything but a business that has to compete will make it fail, it's not a moral decision.
You're obviously conflicted about this; otherwise why be posting to /.?
So... Would the money allow you to do something more than you're doing now? Better house, bigger car? Is that important to you? Is it more important to you than your desire to be part of that particular community?
How critical are you to the success of the Open Source project? Would it die without you?
And, how critical are you to the success of this company's plans? Can they hire someone else for the job?
If it feels wrong, if it feels like it won't work for you, don't do it.
Do you need the money? Were you working on the project to build your resume and get a job? Will you hate yourself if you do this? If you quit/get fired/company closes, does the NDA allow you to come back to the project clean? I'm solid middle class with a good paying job. I wouldn't work for a company that steals code (legally or not) but bills piling up might change my mind.
Here's my comment from the firehose. Stupid how those don't carry over.
Barring you from working on the same project again (or same field again?) might be unenforceable. Several jobs have non-compete clauses in their contracts, but several judges have struck them down. It really doesn't seem practical, or reasonable, to accept a lifetime ban for a job. Also, how long does your contract with your new employer last? Definitely do not accept if it is an "at-will" employment offer. They'll just fire you the first month, and they have eliminated a competitor with minimal cost. Also this part, "Moreover, they would take ownership of not just to what they'd pay for, but also of my changes leading up to this moment" needs to be crossed out unless they are buying the work you have done so far. Don't give that away for free.
Basically, what you have described are unreasonable terms. If I was offered a job that paid better than what I get now, I would seriously consider taking it, even if it was at the cost of the open source community. I would continue to contribute in other ways. But that doesn't seem to be what is happening here. At worst you are being scammed, and they will fire you when they get what they want, and at best you are getting a bad deal.
Write your own Choose Your Own Adventure. http://www.freegameengines.org/gamebook-engine/
All terms are negotiable. Figure out what you could live with, take a position of strength and ask for more than they appear to be willing to give (e.g. you'll do the work for more money than they are offering, will dual-license the work and won't sign a non-compete). Let them know its a negotiation, but that you cannot do it under the terms they proposed.
the growth in cynicism and rebellion has not been without cause
Think of WINE! Remember what happened when the Cedega guys "improved" the WINE codebase? The project's DirectX implementation stalled for years!!
And who says they won't use dirty tricks to keep you from working on Open Source FOREVER?
JUST SAY NO.
My take? They approached you, and if it is a small project they are unlikely to find someone else with equivalent experience to work on the code base. Their alternative is building the project from scratch.
You would be an idiot to sign any open-ended non-compete clause. It is reasonable for the company to expect you to keep their modifications private, but their way of addressing this is not reasonable. A more reasonable compromise is for you to remain bound to non-competitive terms as long as you are employed by the company. This provides some teeth to your "employment at will" and gives them an incentive not to screw you over once you are working for them. Also remember that anything you sign that restricts your freedom to work on the project will also restrict your freedom to work on a consulting basis with other companies when you leave.
On a final note that comes from personal experience, "providing resources" isn't a tangible promise at all and you'll be lucky to get much of anything. If these guys had resources to throw around it seems unlikely they'd be trying to fork an open source project instead of building from scratch and trying to keep the whole thing proprietary.
Depends. Are we talking 2009 dollars or 2010 dollars?
I hate printers.
Moreover, they would take ownership of not just what they paid for, but also my changes leading up to this moment
If it's been released under the BSD license they can't do that in any meaningful way. The only rights *you* retain in the code you have released under that license is:
* The right to release another version under a different license.
* The right to be acknowledged as the author of the code.
* Some protection from misrepresentation and lawsuits.
You don't have the right to withdraw the code from distribution by anyone that already has a copy, and I don't think you have the right to remove your name from those copies, so what exactly do they imagine they would own?
I have never signed a non-compete either, but I have been asked to. If you are in California, you may be in luck. Back in the late 80's we passed a number of laws prohibiting most terms of non-competes including that you can't sign away your right to compete with your current employer or past one. Recently one aspect of that law was upheld in court. That won't stop them from suing you if things don't work out and you go back to helping that competitive project. Where most people get into trouble is intellectual property (IP). Remember, never take any code home. You own what's in your head (experience) but nothing else. Keep all your old code from the project, so that you can show that you used that IP elsewhere first. If you are serious about the job opportunity, ask to talk an attorney first with copy of it (Beware, attorneys a notoriusly slow about this type of a turnaround).
Also, since you have been contributing to a BSD licensed project, I assume that you support and encourage this type of corporate behavior.
How did this troll get modded up? In what way does the BSD license encourage anti-competitive arrangements that prevent people from being able to work on a particular project however they want?
Comment removed based on user account deletion
By signing this you are selling off something important to you to them. You must also realize that if they should fire you, then you have no more project, and you lost all your work in the project.
An exit clause in the case the company should lay you off is not necessarily enough neither, as they can sell the company / project to a 3rd part, etc. Not to mention the company starting to do something with your work you that goes against your moral, simply to make you leave, or not anymore want to be part of it?
What so ever you do in case of wanting such a contract, you got to talk to a lawyer to ensure all the terms are right, say what matter to you and make sure those terms are there.
- There might be possible to add clauses for a fixed time you require to work together with the company before signing over the rights
- Requirements as to what should happen in case of takeovers of project/company to another company
- In case of layoffs/dismissals.
You really need to consider the short term / long term consequences for you to sell your work to them.
1) From what I understand, the code you already wrote is out in the wild. If they want locked code from you on top of that, the only way you'll be able to provide it to them without doing anything illegal or the deal being invalid is to write their proprietary part as a patch.
2a) As people have pointed out allready certain Non-Competes may be illegal, so signing them may mean squat anyway. Check the laws on that where you live.
2b) Non-Competes are often rippoffs. A rule of thumb I like to use is the following: Unless you get big time money and can go on an extended vacation to learn a new technology or dive into a project and reach the same level as the one covered by the non-compete or can feed yourself and your family of the royalties from the agreement until it runs out you shouldn't sign it. And if your contractors are willing to do that they probably have enough money to sponsor a rewrite which you can offer to them aswell, which ever bodes best for you.
3) I had a very simular situation where along the run my partners and I would've gotten into a fight over wether they own the code or just the module which I built for them. Even though it would have legally been me owning it without the slightest doubt, I didn't want to spoil the relationship with partners simply because they didn't understand OSS licencing - which is understandable.
I told my next partner in the contract chain something of the following: "Give me the money we agreed on, free reign whilst implementing our product and keep the end customers of my back for a few months and I'll build a modular system that won't require a programmer for each little change. You'll be able to have secretaries do the grunt work using a custom editor that outputs XML config files. You pay me and get all that for free, a dual-licenced code-base with you *and* me both owning 100% and in exchange we GPL the entire shebang, slap a brand-name on it and continue our successfull co-operation into further projects."
He agreed and we went on to have:
A) An open source project that leads the field by far with our companies names attached to it and my personal name attached to it as project lead with the accompaning bragging rights (and User Thank-you emails arriving at my in-box to this very day) ...
B) The largest competitor in our field kicked out of their pitch due to our far superiour open source project and it's custom extensions for the end customer with the big pockets (a Pharmaceutical Global Player) ...
C) said custom editor developed by a third party partner company / our now drinking-buddies for minimal costs as they wanted to leverage the new OSS project themselves ...
D) a dual licenced code base that keeps everybody happy and proves that I put my money where my mouth is and have no trouble moving into the OSS version of our product if I'm cut out of the loop our the partners go out of business / other ways - which is sort of happening right now with everything still fine and dandy between us all - ...
E) ... and after the first iteration all involved noticed what was clear to me right from the begining: People and corporations don't care squat about under which licence you implement your shit. As long as it works and you're there to help middle management justify the expenses in front of the chiefs.
F) A super-pure conscience for me and a great feeling of having done something good. Plus two years of good worry-free living as a freelancer.
Mind you, this is a web project, so YMMV - but that pretty much sums it up for any situation I can think of.
4) / Bottom Line: You've got the strong end of the stick. Be understanding but don't be foolish. Talk to your partners and cut a deal that makes you and them feel comfortable. U
We suffer more in our imagination than in reality. - Seneca
You probably got the current offer as a result of your work in the community. If you continue to build that network through good work, you will probably reach a point where you have far more opportunities than you do now if what you are working on is seen to be worthwhile.
Or, you can trade your reputation in to work for the people making you the offer. Do you plan on staying with them long enough to build a new network and for people to forget what you did? It sounds like you know it won't go over well and will burn some bridges.
In my experience, it's a small world and karma is a bitch. So, unless you are talking about a set-for-life kind of deal, it's probably a bad idea.
On the other hand, I don't think you have an ethical conflict here. If you are talking about the chance of a lifetime, you should do it. After all, it is your work and you should benefit from it even if your associates will hate you for it (your friends will understand, set for life is a big deal). You just have to decide if the opportunity is worth the price you know you will have to pay...
My guess is: probably not.
"The difference is a LEGAL one, not a moral one."
Sorry, but you are wrong.
"t's just as immoral to screw over the community on a BSD project for one greedy bastard's financial gain as it is to do so on a GPL project."
*THAT'S* where you are wrong. On the BSD case, those producing code knew from the very beginnig these kind of things may happen (it is not that the boy has been catched by a subtle legaleese on the BSD: it is all there and quite clear) and, by providing their code to the project, accepting that to be the case. Thus, there's nothing immoral for somebody doing the expectable and reasonable (it *IS* reasonable: if developers didn't like the BSD they could easily chose a different license).
On the other hand, there are some other developers that want things to be a different manner. They choose the GPL so somebody taking apart derivatives for distribution on their sole part won't be something about moral, but upright illegal.
On a civilized society there's nothing "just legal, not moral" since legality is nothing but the written down ethics for such a society. Remember the old roman saying: 'dura lex, sed lex'. Of course, our society is not a perfect one, and there are in fact deviations between the legal system and our ethics. But certainly this is not the case.
Either there's a healthy team of developers working on this project and the loss of one guy and his improvements aren't going to make much difference to the project and he's not screwing over the community anyway.
Or, he's the creator, or otherwise the primary developer of this project and they're buying the project. In this case, yes, a lot of people who use the project will be annoyed, but realistically, they're free to take up the code base(it's not like they can take the already released BSD code off the market) and improve it themselves.
Open Source doesn't guarantee you the right to anyone's time or resources, it guarantees you the right to take over if the person writing it doesn't want to do it anymore, and this hasn't changed.
Realistically what he's doing isn't any different than retiring, the company cannot steal the whole project if the source is already out there, and if the source isn't already out there then it was probably only a feel good open source project anyway, and if the author feels bad he can release it out before he signs the contract.
No one with a copy of that source is under any obligation based on a contract this guy signs, and the BSD licensing can't be retrospectively revoked, so all he's doing is stopping work on the project and going to work on a proprietary fork, all he's taking away is his own effort which he doesn't "morally" or "legally" owe to anyone.
If he's the creator of the project he could relicense any future code from a GPL project as proprietary too, there's no legal or moral difference. You can't undo what's been done, and no one has the moral right to what you haven't done yet.