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 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/
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?
That is so true.
I negotiated a contract a few years ago in which the company wanted to have any disputes settled by an arbitrator, that they would name at a later date. I told them that I was fine with arbitration, but that I would be the one to name the arbitrator. They balked because that would be buying a pig in a poke, to which I said, "just so, so let's name the arbitrator NOW."
The situation this guy is talking about is ticklish. He needs a good lawyer because this could be extremely costly to him. What he is being asked to do is to forgo the future economic benefit of his knowledge of the project and problem domain. Therefore, his agreement should reflect a difference between him and a similarly skilled developer with no particular expertise in the project. If he gets the same deal as somebody coming out of a different field he is actualy giving up more.
Therefore, the economically rational thing would be for him to sell the difference in some way. If that difference were worth $500,000, then he could offer it for $400,000, and both he and the company hiring would b ahead. That would be fair.
What I'd do is ask for a severance package, to compensate for the lost future income. Otherwise, they could simply offer him the job, fire him under some pretext, and enjoy the competitive benefit of having his expertise removed from the field. I'd say, why don't you give me $50,000 a year for every year you don't want me to compete? If at any time you feel that my non-competition isn't worth it, simply stop paying and I'll be free to get a job using my domain knowledge?
That's perfectly fair. Maybe (it's not his job to suggest this) the package would be pro-rated by the number of years; suppose he'd worked on the project for four years. If they hired him and fired him immediately, they'd pay him $50,000; after one year of employement (1:4) they'd pay him $40,000; after four years of employment, they'd pay him $25,000.
The important thing to remember:he's giving up future income earned through his past investment on this project. It'd be like handing over some of the value in your 401k to your next employer. He's got to get that gift balanced out.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
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
GPL gives maximum freedom to the code.
BSD gives maximum freedom to the programmer/corporation.
I think BSD gives maximum freedom to developers of derivative code, while GPL gives maximum freedom to users of derivative code.
I've never understood what code itself would do with freedom.
"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.