The idea is that a measurable involvement in the community will earn you points, much like in a frequent flyer program. Because it is a widely recognized term, we call it “karma”, and there will be two types of it—but rest assured: both types are good karma.
Your ability to earn karma should not depend on your coding skills, so there will be many ways to collect it. Your employer will be able to document their commitment to TYPO3 by showing the sum of their employees' karma. But earning karma for code is the hardest thing to define.
Two Types of Karma
Attending a sprint, proofreading an article, or reviewing code will earn you both Karma Points and Karma Cash.
Points document your community contribution, and a certain amount of points earned from a specific activity will secure you a badge, for example as a Silver Code Reviewer. However, you have to keep up the good work: your Karma Points will expire after a couple of years.
Cash is your way of using your karma to make the TYPO3 community even better; a way to put weight behind your words. We imagine you donating your Karma Cash to a project or using it to finance someone's conference ticket, by transferring the cash to a specific Karma account. A sponsor can vow to convert Karma Cash on the account to real money. Karma Cash used in this way will be used up and removed from circulation.
Karma Has Marketing Value
A lot of TYPO3 agencies donate their employees' time to the project. This is also an important contribution, but compared to sponsoring a conference or paying for a Platinum membership, it doesn't give your logo a prominent position or other perks that earn you marketing value.
TYPO3 Karma changes this. Employers will be able to show the sum of their employees karma, and their badges, on their websites. (Anonymized, of course.)
We hope this will give TYPO3 businesses another reason to encourage their employees to take part in the community.
Solve the Challenge of Coding Karma
While it is easy to assign a karma value to attending an event, karma for contributed code is much harder to assign fairly. Some of the many quantifiable ways to calculate karma for code could be:
- Lines of code committed
- Number of commits
- Tasks completed
- New versions tagged
However, it would be bad for the project if the introduction of karma led to unnecessary lines of code, smaller commits, or simple tasks having a higher value than time consuming complex ones. You can publish a new extension version once an hour or once a month, and still deliver the same value.
This is where we need your help. How do we give coders karma in a fair way, be it for core contribution or extension development?