Method for Distributing Earnings from an Open Source Project?
mindlace23 asks: "Assuming you had some mechanism by which an open source project generated revenue, how would you fairly distribute those earnings amongst the contributors to the software? Rules that most clearly avoid bias would be preferable; Some sort of automated heuristic would be ideal if it's not gameable."
Step 1: Start successful open source project.
Step 2: ???
Step 3: Distribute profit!!
Ask the person who is likely receive most of the money to make a proposal about his revard and distribution amongst others. Publish the proposal and take poll about it. Have an authoritative person of good reputation (not financialy involved) to make the final decision.
Anything else is heuristic balooney.
No matter what the algorythm, your input is allways going to be subjective.
I doubt that we will ever figure out - and I suspect that even if we did figure out we couldn't do much about it
I think it depends alot on the size of the project. If you are talking 5 or 6 people on a project, then it is pretty easy to decide who should get what, and/or divide it up equally. On the other hand, if you have a project with >20 or so people, contributing various amounts of code, documentation, etc, then it becomes a bit more difficult.
I would say divide it up based on how much each person contributed, and give divide a percent of the earnings equally among the people in that group. for example if you have a project with 25 people contributing, 5 of whom did very little, 15 of whom contributed a moderate amount of work, 10 who contributed a signifigant amount, and 5 who were above and beyond, then you could say for example, 10% of the profit will be divided among the bottom 5, 25% will be divided among the lower middle 15, 15% will be divided among the upper middle 10, and the last 50% to be divided among the top 5. keep in mind these percentages are completely arbitrary.
alternately you could pay per line of code, so if there was x lines of code, and $y profit, and a person contributed n lines of code, they would get n(y/x) dollars.
Famous Last Words: "hmm...wikipedia says it's edible"
Trying to fairly distribute the money is going to be more trouble than it's worth. Unless it's a lot of money; Then you should grab it and run :)
don't... distribute the money ....at least not in any way the resembles a pay check...
it will change the power relationship in what is obviously a successful OS project.
never make your volunteer an employee unless you actually have enough money to pay them.
you could do other things with the money.
1. of your best developers find the ones that are still working on a 500Mhz Shit box and buy them a new one.
2. sent a few of your developers to a confrence, (obviously in the field that project is in)
3. spend the money on bandwidth.
4. spend the money on promotions of your product. (see #2)
--meh--
...should be re-invested into the project, or, used to start new projects with the same team. With a few people, and a good amount of money, it would be possible to allow for upgrades to development machines, and maybe celebrate and take the team out to lunch. Any left over money could/should be placed into a bank account for future team use. E.G. development supplies such as replacing suddenly blown machines, buying books, the occasional 'Hey! Let's get a pizza.'. However, for developers who may be in troubled times, or be leaving the team, a cash bonus is acceptable.
Just my $0.02...
Informatus Technologicus
Okay, so here is what we know:
1. Recruit developers
2. Develop OSS program(s)
3. Distribute software
4. ????
5. Profit!
6. ????
Before we answer 6, give us 4.
How much is a piece of code worth? How much is the design behind that piece of code worth? What if I don't like your design?
The question here is of rating the relative value of different contributions; that can only be done by mutual agreement -- ie, negotiation. Obviously if the question is of distributing unknown future earnings, this means allocating shares.
Ultimately when someone offers a patch, you have to be prepared to say how many shares it is worth, and to refuse to accept the patch if its originator wants more than you're willing to offer.
Tarsnap: Online backups for the truly paranoid
You make a charitable foundation that "owns" the software by either copyright or just trademark. Developers submit grants to be funded. This can include grants to develop new features. This can also be grants to aquire new equipment to work on the project. The charitable foundation's money allows them to hire programmers to make certain features happen, even if no volunteer can/wants to code it.
Mod parent up...up...and away...
he be usin his noodle
--meh--
Given that the contributors all have direct
input into the metric algorithm, it's clearly
a game in the game-theoretical sense. Don't
try to avoid "gamability", work *with* it.
Make the cost-effective methods of gaming the
system represent actual contributions.
Here are some useful metrics:
Tokens of uncommented code.
Decision points.
Words of comment.
Bugs resolved.
Words of documentation.
Peer review metrics.
Tokens of code subsequently revised.
Bugs reopened.
Number of distinct patches.
Messages on a mailing list, in count, in word count.
Megabytes hosted.
Dollars spent.
I think estimating the cost of the contribution
is the way to go. Dollar values represent a
compression of social values from many otherwise
largely incommensurable dimensions of value into
a single number, so they will simplify any such
computation enormously. The more complex it is,
the more complaints it will generate, so
simplification seems very worthwhile.
Most of the cost of contribution will be time*rate.
So an easy way to estimate it is to generate
estimated time spent -- a quantity metric, and a
quality metric to determine the rate.
To the degree that these observations are non-
controversial they may seem obvious;)
-I like my women like I like my tea: green-
This is a great one! An open source program with profits! Haha!
rather than paying for the work that they have already done, what happens if you pay them for work that you may expect from them in the future?
This is just a thought experiment rather than a serious proposal, but it does mean that you are effectively reinvesting in the project, and those who feel it is unfair have a means of retaliation (refusing to work on the sequel)
Gimmee money!