27

I am a developer of an open source project which is hosted in SourceForge.

It started out as a little app then after some releases, it got more and more popular and it started consuming more time and responsibility from me. So I have enabled the donation option in SourceForge.

I'm passionate to continue developing it for free but if (ever) any money comes in, how should I split it with my team?

  1. Should I split the amount equally among the number of team members? (50-50 as it is two-member team now)

  2. Number of classes, commits or any other valuable submissions by team members?

  3. Any other idea?

What would you do in such situation? Please give your opinions.
I hope this question will be useful for others.

Vigneshwaran
  • 759
  • 6
  • 16
  • 2
    question does not look specific to programming - this could be in any volunteer project – gnat Sep 15 '11 at 08:27
  • 4
    @gnat I dont agree. Open source programming is not the same as any volunteer project. For as start contribution is more easily recognised in open source project. Giving +1 to counter the unfair -1 – Tom Squires Sep 15 '11 at 08:43
  • 1
    @TomSquires _more easily_ compared to what? None of volunteer activities I participated in had problems recognizing the contribution. Transparent recognition looks really typical in volunteering, not really "endemic" to open source software projects – gnat Sep 15 '11 at 09:05
  • 4
    @gnat This seems (to me) to be perfectly on topic, as the context is clearly the decision that many small projects face when they receive money from people who found the software useful. To me, that makes it not just on topic, but also useful. – Tim Post Sep 15 '11 at 11:48
  • 5
    Thank you @Tim Post. IMO, anyone doing a search for this problem would not look on a non-profit or volunteer site, but a programming site. Most volunteer organizations would spend the money on expenses or giving it back to those they're trying to help. Open source projects have very few expenses and those they are helping are the ones donating in most cases. – JeffO Sep 15 '11 at 13:20
  • @JeffO fair enough – gnat Sep 16 '11 at 07:12

5 Answers5

53

I recommend not distributing it to project members at all. Appoint or elect a treasurer, open an account and deposit the money to earn simple interest. If you distribute donated funds between developers, at least one will become disenfranchised as the project grows.

Instead, consider the other possibilities for the funds:

  • Swag. Print up some T shirts to send to people who have made more than trivial contributions to the code.

  • Bounties. Put a reward on the feature the community really wants but nobody really feels like implementing. This is also a great way to get new long term contributors. Or, 'sweeten the pot' a bit for fixing a really perplexing bug. The bounties don't have to be cash, especially if you have swag to give. It also doesn't have to be swag, a Pi in hand is worth 10 in the oven.

  • Hardware. Buy stuff that the community owns that all developers can use. This could be servers, or gadgets that are shared through the mail.

  • Tools/Licensing. You might need to pay for software, even being an open source project. You might need to buy a copy of Acme Widgets to study it for the purpose of creating an open alternative, or you might need to help a great contributor upgrade their development environment.

  • Events. Help send your developers to conferences or key events when opportunities present themselves. Or, sponsor your own meetup if enough people would be able to attend.

  • Legal Fees. While (thankfully) still relatively uncommon1, you might find yourself in litigation for a number of reasons. It's good to have some money put away. This could be simply enforcing your license or copyright, or defending against something else.

There are so many ways that the money could be spread so everyone benefits, it really doesn't make much sense to limit the good it could otherwise do.

If you get to the point that donations and community support make hiring some of the most prolific developers to work on the project full time reasonable, it means you should be looking at the project as more of a business than a hobby.


1 Litigation in open source is a lot like plane crashes. You read about the horror stories and drama in the news when something happens, but don't forget the nearly millions of projects that have and will continue to exist without any issue whatsoever

Tim Post
  • 18,757
  • 2
  • 57
  • 101
  • 2
    I agree with everything but the bounties. Cash bounties will most likely replace the normal motivation for doing stuff. And if something is important enough to do, sooner or later someone will do it. Also, who decides what to put bounties on and how do you decide that the stuff with the bounty was done well enough? – HenningJ Sep 15 '11 at 15:41
  • 1
    @HenningJ I don't think that cash bounties replace the intrinsic motivation to contribute, as many paid programmers find money to be a secondary motivator anyway. But, as you point out, they can be tricky to organize and manage, it really depends on the community. I listed it because I have seen them used successfully, and it's one conceivable way to make use of donated funds. – Tim Post Sep 15 '11 at 15:59
  • @HenningJ I did edit the answer a bit, as bounties don't _have_ to be cash based, especially if you have swag to give. I don't see anything wrong with earning a T shirt for fixing a monster bug. – Tim Post Sep 15 '11 at 16:07
  • Thank you for your (more generally helpful) answer. I expected an answer that is not only helpful for me but also for everybody who face this kind of confusion. Now that this question comes up in Google results, they'll find all these good answers helpful. – Vigneshwaran Sep 16 '11 at 03:12
7

I think the reality of it is, it'll sit in your PayPal account until there's enough to take the team out and buy a round of beers. And if you're like most OS projects, that'll be months or years from now.

If it gets to be any real amount of money, I propose that you NOT spend it on developers--who obviously are contributing their time and expertise for good reasons that are not financial. Instead spend it on tools needed to further the project (hardware, a Basecamp account, etc), or on fun cheap marketing stuff like tshirts and desk toys. Make sure everyone who's ever contributed gets a t-shirt and you have enough left over to toss out at users groups and conventions and stuff.

Dan Ray
  • 9,106
  • 3
  • 37
  • 49
5

Either put it back into the project (buy servers ect) or split it equally between significant contributors (dont give any to people who have only done a couple of lines).

People dont work on open source projects for the money. Trying to share money in any complex way emphisies the cash aspect of the project and is borderline insulting

Tom Squires
  • 17,695
  • 11
  • 67
  • 88
  • 3
    The word "significant" is problematic, though. As the project lead, he obviously gets to draw that line, but what about the dude whose one-line fix corrected a long-standing and subtle bug? Or the guy whose contribution was "nearly" significant? Better to either have a hard metric, or not do it at all, IMO. – Dan Ray Sep 15 '11 at 20:52
  • 1
    @Dan: just because someone will disagree with your choices, doesn't mean it's wrong to make a choice. If he's the project leader, he gets to choose what to do with the money. Joint leaders can choose together. That choice is inherently subjective. If others don't like it, they can fork the project. – Jaap Sep 16 '11 at 17:11
2

Just my opinion, but I'd say don't worry about it until it's worth worrying about. If you're getting a few bucks here and there for yourself, I wouldn't sweat it or feel guilty about it unless someone specifically asks.

Now, for ongoing work, I might say "hey, I have a donation button up on the site and I'll give you n% of the cut when donations come in" just to call it out and be open about it.

Demian Brecht
  • 17,555
  • 1
  • 47
  • 81
1

I really like the idea of "code bounties". It helps to encourage people to donate because they're donating to improve something that is important to them, and it means whoever implements the requested feature/s wins the money (and also solves the "how to divide 50 cents evenly when there's 8 developers" problem ;-) ).

Brendan
  • 3,895
  • 21
  • 21