The Inquisitive Coder – Davy Brion's Blog

Trying to walk that thin line between intelligence and ignorance

Accepting OSS Donations… A Slippery Slope

Posted by Davy Brion on March 1st, 2010

As i’m sure most of you have noticed, Ayende recently started an NHibernate Donation Campaign.  I was against the idea from the beginning and even though this post will probably piss off a few people (like i ever cared about that, right?), i wanted to share a few of my thoughts on this with you.

The idea of sponsoring an open source project and helping out financially is definitely nice, but there are some very important practical issues that need to be kept in mind.  Those practical issues are IMO being ignored by this campaign (which honestly feels like a publicity stunt more than anything else) … some of them were mentioned in the original mailinglist discussion but no resolution has been offered.  There are probably more issues that we haven’t even thought of yet, but the most important ones are (again, IMO):

  • Who’s going to decide how much of the money will go to the committers, and what will that be based on?  Will it be based on past contributions? Future contributions? The complexity of the contributions? Total number of contributions? Total time spent on the project?  We can’t even measure some of these things, so this is bound to either raise some discussions sooner or later, or might even upset some people.  I can certainly imagine that some contributors from the past (like, the ones who did most of the really hard work in the beginning) could feel that they’re entitled to some (or most) of the money.   Discussing how to spend the money on committers is just going to open a can of worms that could possibly cause much more problems between committers than it would solve. 
  • There has to be some legal entity (or at least a person) who’s in charge of the bank account where the money will be deposited.  At this point, we have no formal structure or organization to deal with something like that.  I’m no expert on legal matters at all, but i can’t help but think that this isn’t something you can just decide on in a mailinglist… Some level of formalization is most likely required here.
  • Taxes… if the money goes to committers, then they will have to pay taxes on it based on the laws of the country they’re living in.  Tax laws obviously vary from country to country, but i don’t think it’s unrealistic to claim that between 25% and 50% of the money will simply go to the government(s) instead of actually benefitting the project.  You might wanna keep this in mind before you donate…

These are just 3 big issues that could come of this, and i don’t really see a true benefit to the whole thing.  The people who in the past have spent time on NHibernate either volunteered to do so, or were paid by someone (or some company) to spend a certain amount of time on it.  Without donations, it will just go on like that and i don’t really think there’s anything wrong with that.   While resources are certainly limited, this approach probably causes less problems than one that distributes donations amongst committers.

Now, just to be absolutely clear on this… i am one of the NHibernate committers, and i don’t feel that i’m entitled to any of the money that will be raised.  For one, i haven’t committed anything in the past 6 months, and the things i did commit definitely aren’t worthy of a donation.  If we are going to accept donations and spend it on people instead of infrastructure, i believe any money that would be raised should go to the people who originally started NHibernate and worked hard to get it to a state where it actually became usable in the .NET world.  If it weren’t for their efforts, it never would’ve been in a position to become the de facto ORM in the .NET world, regardless of who’s working on it right now.

9 Responses to “Accepting OSS Donations… A Slippery Slope”

  1. Chris Nicola Says:

    Yeah, I have to agree with you here. I truly appreciate nHibernate and the nHibernate contributors as much as anyone, but without knowing what the money is being raised for, how it is being used I can’t bring myself to just send money.

    I suppose that if nHibernate was just a simple FOSS project being maintained by one person deciding to donate to them would probably be much simpler.

  2. Ayende Rahien Says:

    1) The project lead.
    2) There is a legal entity managing the money, as far as you can consider yours truly to be a legal entity.
    3) Taxes are always an issue, no matter how you earn money. For consultants, that is part of the math done when setting the rate.

    I hoped that I was clear that the purpose of the donation campaign wasn’t to reward for previous work, but to directly sponsor new work & faetuers.

  3. Davy Brion Says:

    @Ayende

    personally, i’d think the money should be managed by the project lead as well…

  4. Leon Breedt Says:

    It’s really important that anything involving transactions is open and transparent, as the project is.

    For example, if you make a donation to the Debian project, they have meeting minutes you can look up to see their balance sheet and how things were allocated.

    For non-trivial projects where the amount of donations could be substantial, some measure of formality is warranted, a money-bucket PayPal account with no reports could be worrying.

  5. Dan Says:

    One can always sponsor an OSS project indirectly by buying books, software or other items helpful to a team of developers.
    Hell, one can pay a month delivery of meals to one or more developers, depending on the country where they live in :) ).

  6. Julian Birch Says:

    Agree with you completely Davy, governance is a big issue. There’s a reason the Java OSS landscape is full of foundations, boards and minutes. We need proper governance before we move onto fundraising.

    @Dan: The problem with the “buy the book” model is that it’s asymmetric. For instance, if Davy has neither a book nor an add-on product nor conference revenue for NHibernate and all he does is improve the actual product he gets nothing. However, you’re right that it has none of the issues outlined above…

  7. Davy Brion Says:

    @Julian

    for the record, i don’t _want_ anything :)
    but some of the contributors who definitely deserve something for their effort would indeed get nothing in the “buy the book” model

    the best way to contribute IMO is still to contribute time… it doesn’t even have to be a lot to be helpful

  8. Chris Nicola Says:

    @Ayende, my apologies, I just scrolled back through my google reader to see the original blog post, and spent a bit more time thinking about it. Originally it sort of seemed like this was a spontaneous twitter campaign, I probably should have thought that through a bit harder. I still think Davy is right that the details of how this will work are a bit fuzzy.

    Perhaps, there is a need to have a more formal structure or nHibernate ‘foundation’ to help organize how to fund the development of nHibernate. Perhaps Davy is right and things are fine the way they are. Either way, a bit of trial and error isn’t a bad way to find out since I don’t think anyone is parting with money they are not willing to trust Ayende and Hibernating Rhino’s with. I mean, it’s not as if Ayende’s circulating posters of overworked and stressed out Microsofties, suffering through each and every day without the benefit of nHibernate (only your donations can help rescue them!).

    The fact that you are matching donations is admirable and I think the community should make an effort to try to see if this can help support ongoing development and improvement of nHibernate.

    On an unrelated note, Davy I hate to split hairs but technically a slippery slope is a logical fallacy.

  9. Tonio Says:

    I think that users of NH (experienced people) can evaluate and reward the work and the ability of each committer

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>