Wednesday, 26 July 2006

Code Contributions & Consideration

Consider this:

You create a piece of code that is truly valuable for MySQL. We give you a T-shirt. Does this feel right?

Of course it doesn't. The CLA (Contributor License Agreement) just contains the T-shirt as a default so-called consideration and a token of appreciation. Several people rightly reacted to the imbalance of T-shirts versus valuable code in my original CLA post.

The legal concept of "consideration" in American or English law means more-or-less compensation, i.e. a countercommitment to make the contract not just balanced but enforceable. Wikipedia's definition of consideration starts like this:

Consideration is defined as a bargain for the exchange of something of value. An example of consideration is the sale of a car for payment (e.g. the sale of a Toyota for $3,000). Consideration is a central concept in the common law of contracts. Under classical contract theory, consideration is required for a contract to be enforceable.

In several cases during the history of MySQL, consideration for code contributions has been money and shares of MySQL AB. On a case by case basis, serious money can move hands. We don't mind paying good money for good contributions. MySQL AB is not a charity, nor do we expect code contributors to be charities towards us.

For quite a number of contributors, I still expect the major consideration to be that we take over the maintenance burden of the patch. And for many contributors, the code contributed may be interesting for some MySQL users, but not for large enough numbers to merit "serious money".

Some contributions are just the starting point of code patches that can be accepted into the code base, complying to coding standards and having gone through the scrutiny of reviews. But rest assured, if you fix bugs in the form of acceptable code patches, there will be much more than just T-shirts coming your way!

With contributors of gems, we have not just agreed for them to join MySQL AB (like Mark Matthews for Connector/J) but compensated them with cash and/or shares in MySQL AB. Such transactions happen after relations have been built up long-term.

No comments:

Post a Comment