During the last days, the openSUSE Team has proposed several changes in the openSUSE processes and tools: http://lists.opensuse.org/opensuse-factory/2013-11/msg00920.html http://lists.opensuse.org/opensuse-factory/2013-12/msg00044.html http://lists.opensuse.org/opensuse-factory/2013-12/msg00132.html
The main goal of this mail is to present another idea that was already discussed during the recent openSUSE Summit: the Karmafication of the openSUSE infrastructure. People there liked the idea and some related topics have already been raised in the last days on both Factory and Project mailing lists, so we bring the idea here for wider debate and especially to get input from you all.
Where can Karmafication be useful?
1. Decision making. As you all know, most final decisions on the technical side rests in Coolo's shoulders. He plays the role of a benevolent dictator, working based on his perception of skills and dedication. Sure he is fair and experienced but still a single human being.
2. Guidance We lack a clear path from newbie to contributor and then to experienced contributor (like maintainer, reviewer etc). Also, we have a wide variety of guidelines which we'd like people to follow better but which aren't hard rules.
3. Motivation There are areas in openSUSE that do not get the love and attention they deserve in both technical and non-technical terms. People who work on them should be recognized and rewarded.
How does Karmafication support the factory proposal goals in the above areas?
The idea is to add certain 'social' features to our infrastructure to better track contributions and make them more visible. Contributors would earn AND lose karma points based on their actions (or lack of them), that's why we are calling it 'Karmafication'. We explicitly want to avoid the word 'gamification' because is not only about engaging people or motivating them. The main goal is to help our decision making processes: we're a meritocracy (or a do-ocracy, if you prefer) which is very much trust-based, and that trust is very much based on what you do and what you did in the recent past.
Karma should have an impact in:
1. Decision making. Make contributions visible: credit where it is due. Having a profile page for every contributor in OBS would be useful in decision making at all levels. Is this person a good candidate to become technical reviewer? Should I accept this risky SR to factory? In the future, once the system is mature enough, a minimum of karma could even be required to perform some actions.
2. Guidance By defining tasks and rewards we could 'spell out' a path, or several, from beginner to more experienced contributor. Think for example a number of tasks around your first step to contributing; or tasks related to more advanced hackery like fixing certain type of bugs. It could also be used as a way of define best practices for OBS and encourage people to follow them.
3. Motivation Motivate people and visibly reward them for working on things which usually fly below the radar. It would be great to have openSUSE contributors pointing to their OBS profile pages as a reference of their skills and experience, in the same way that most open source developers points to their github page. We could make this recognition more tangible with some special gifts (what about a "I take care of stuff!" t-shirt?).
A big benefit of Karmafication over other ways of reaching the same goals is that most alternatives require making rules, commitees and bureaucracy and require much more work. Soft motivation through Karmafication brings us these benefits in a much nicer and more flexible way, hopefully without the downsides of rigorous rules. See this video for some insights in rules vs 'soft nudging': http://vimeo.com/54434167
What do you think about the whole idea?
Would you like openSUSE to be the first distribution with a karma-driven development process?