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)
If the money isn't worth it and/or if it will be harder for you to work in the near future, then don't sign.
It would have to be a really big chunk of change for sure here... Like near retirement money..
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/
If they did not accept that, I would forbid them to use any code from the project, and bring down the wrath of the relevant copyright laws, if they were not prepared to abide by the licensing terms.
Highly aggressive and completely clueless, not a good combination.
Live today, because you never know what tomorrow brings
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.
Before you make a decision talk to a lawyer that understands the issues. The company may be making demands post employment that aren't enforceable. In any event, you don't want to agree to something you don't understand.
Also bear in mind they want you because of your expertise. Make sure they pay severely for it. If they balk at your asking price, offer to accept lower compensation for laxer restrictions.
Their reality is if they get someone without your experience with the codebase, they'll spend a lot of money on familiarization and even more if they try to merge in features from a fork.
Negotiate! You've got a strong position.
Simple, if they want to restrict your ability to write code after you leave, you need to make money every time they use your code, after you leave...
You don't say much about the project, or what the improvements would be. Are they something connected to your prospective employer's core business, and will the give them a competitive advantage? If not, then you could try persuading them that it will be cheaper for them in the long run to contribute the changes back upstream. This model was followed by Yahoo! in relation to FreeBSD.
It doesn't sound like this is the case, however. The next question is, how much of a competitive advantage will it give them? Would they lose anything by releasing the changes in six months? A year? Two? If not, then you should discuss this with them. You should also make sure that they limit the non-compete clause to only apply to specific features and within a fixed time scale.
I am TheRaven on Soylent News
explain it to them. They probably haven't thought this through.
Most times it seems like someone is being a complete ass, it's because he didn't perceive his own behavior as offensive. It usually only takes a cool, calm reply noting that you first believe this offending party to be a of good intention (a compliment) then note that you've noticed something that probably needs clarification because you're certain their intentions were honorable. In most cases when presented with high and honorable expectations, the offending party will seek to live up to those high expectations.
Give it a try.
Yes. You can't relicense BSD code. The *copyright* still belongs to the author of the BSD-licensed code. They want to buy it so they can actually relicense those sections, and then hope that the stuff already released disappears from easy availability.
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
It sounds like the company is trying to buy the copyright for the codebase... If they want to do that tell them they'll have to pay what it would cost to develop the codebase as is...
Depends. Are we talking 2009 dollars or 2010 dollars?
I hate printers.
it's so excessive that it's probably unenforceable
Whether it's enforceable or not isn't the issue. If it's in a contract, and you sign it, it's effectively enforceable.
Yes, you could probably convince a judge that it's unfair. But how much will it cost you to do that? Want another job in the same industry? Be prepared to be treated like a leper, because employers won't want to go near you for fear of being sued.
Even if it's unenforceable, are you prepared to get sued and spend thousands of $$$ defending yourself against that 'unenforceable' clause, while you're flipping burgers (because you can't get a programming job.)
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
And that is the fundamental, philosophical difference between those who back the BSD/MIT-style licenses and those who are stuck on the GPL.
We don't care if corporations take our project and run with it. The more places our project can used, the better. To us, writing code isn't religion. We do it for fun, and we want our work to be usable and helpful to the most people possible. We're chill. If you modify our code, you can send back your changes. Don't want to give back? That's cool, too. We give our code away with no strings attached to maximize our utility, and to maximize the usefulness of the code. Our license is easily understood by non-lawyer types and has maximum compatibility with other Free software licenses. By keeping it simple and compatible, we avoid boring rewrites and promote sharing. It's great here.
The issue here is not the license, because we can assume that since the original authors of the project used the BSD license that they agree with the ideals I laid out. The real issue seems to be the non-competition clause of the company's proposed contract, not the BSD license.
This author takes full ownership and responsibility for the unpopular opinions outlined above.
That's what happens to projects that use the BSD license.... Use GPL fo your next project.
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 scary thing is that this should be modded "Insightful", not "Funny".
The big problem with the non-compete is that it's permanent, and includes his previous (unreleased?) work. There are possible problems with the non-compete like: What if the job doesn't work out, and he's left on the streets 3 months later?
A non-compete clause on work you did before you were hired, that continues after you leave the company, is unreasonable no matter what.
I think a clause like that for a regular job should be illegal, and you definitely shouldn't sign anything like that unless they pay for your life after you leave the job, which probably means millions.
You're not just signing away copyright on work done for them, you're signing away your own work experience. Even the experience you acquired before you started working them. Basically, you're signing away your entire career. So they have to pay for your entire career.
If they don't want to do that, the contract is not reasonable.
As to your question: I expect that not that many FOSS developers get hired away like this. Most companies recognize the value that the rest of the FOSS community brings to the project. These guys don't. That's going to discourage a lot of FOSS developers from dealing with this sort of company.
Exactly. An employee who is an active and respected committer of an important open source project is far more valuable than an employee who knows about that project but isn't a committer. A smart but honest employer would allow him to commit bugfixes at the very least, and preferably also new features that he didn't write explicitly for his new employer.
If they don't allow that, they're either stupid, or dishonest. Ask yourself whether you want to be working for a company like that.
"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.
BSD licensing is practically the same thing as throwing your code in a junkyard or landfill. It's a travesty.
GPL = user freedom
BSD = programmer freedom
What's travesty is telling programmers what they can and and not do with their code.
Falcon
Should there be a Law?
Well, young coder... choose well... let your choice be as enlightened as possible.
You might be able to convince them that it's actually in their own interest that you contribute code back to the project, as it's still BSD and they can still use it. In other words, it seems like they don't want anyone to have the improvements that you would otherwise make, even if they don't want to pay for it. A lot of companies have such clauses simply because they don't bother to think about it, and they're compelled to be as mean as possible, since that's somehow supposed to be more grownup behavior. Usually though, those with the most cynical view of open-source software development as competition, even when it suits themselves, tend to know absolutely nothing about it. Use that.