Current proposal for reputation system: http://groups.drupal.org/node/225824
Code for this sub-project is published as Reputation module.
For current state check out demo site.
The goal of this sub-project is to build an expertise/reputation system which will:
a. expose all the different types of contributions (including non-code ones, which can't be measured by simply counting data in database)
b. expose field of expertise of individuals, to make it easier to understand "who is who", who is active in which field, whose opinion is backed up by expertise in this specific field
c. encourage more contributions, especially non-code ones, by recognizing them, showing that community values them, giving feedback to the new contributors when their contribution is useful and motivating them to continue
Main wiki for reputation system sub-project: http://groups.drupal.org/node/144594
Previous discussion: http://groups.drupal.org/node/142559
- Quality of participation is more important than quantity
therefore action itself (comment, patch, bug report) adds no reputation points,
other people evaluating action as useful add points
- If there is no action, there should be no evaluation
therefore no direct voting on profiles is available, voting is available only on actual actions - issues, comments etc.
- The goal of the system is to recognize expertise and encourage contribution, but not to
regulate how people interact with the site
therefore there are no additional privileges for people with higher amounts of reputation, system does not affect users' permissions on d.o
- Collaboration, not competition
therefore there should be no "leader boards" or other lists directly ranking people and displaying their score and "place".
- System has no goal of moderating d.o content or punishing people for "bad contributions"
therefore there are no negative votes, reputation is always positive and can never go below 0.
There is a list of "reputation score types" or "fields of expertise":
- Development (patches, reviews, testing etc.)
- Design & UX
- Event organization/Marketing
- D.o - something for all webmasters, infrastructure and other people working on *.d.o
maintanenace and improvements.
This list should not be too broad to make it easier to capture score points.
In various places on d.o there is a way to vote for contribution as good/helpful in specific
"field of expertise".
- issue comments
- g.d.o discussions and comments
- forum posts
- documentation pages comments
- module maintainers pages?
- release nodes?
- documentation pages
- issue nodes
- g.d.o wiki pages
this places can be edited by multiple people, how do we define for whom we vote?
A way to vote yet to be defined, as an example it can be:
- drop-down list, where you can choose "field of expertise" and vote button/link
- line of icons for each "field of expertise" clicking on which performs vote in that specific filed.
While in some places, such as documentation, we probably could limit available vote types, in the issue queue it can be anything.
Each time someone votes for contribution, its author gets reputation point of specific score type.
To make the system more representative, we will also consider who votes. If person who votes has a lot of reputation score in specific field, author of contribution will get more points.
Q: Should there be some limit on votes received/cast per day to prevent gaming?
Reputation will be displayed in following places:
Right where voting occurred.
So right at the place of voting will be shown information - how many votes piece of content has, who voted. (initial information will be short and on expand we can show full list of people who voted and which types of vote they casted)
- At user's profile page
Most voted at: Documentation (1+ votes), Development (5+ votes), Support (100+ votes)
Voted by: X, Y, Z and 7 others.
Number of votes can be shown or not.
- Aggregated information
To make it less competitive the title will be something like: "Most voted in Documentation", followed by the list of users, sorted by their score but score count itself won't be displayed.
The place for this aggregated information yet to be defined. Suggestions are next:
a. if the list of "rep score types" will match list of "top level" topic pages - "Most voted in" can be displayed at those pages, instead of "Most active" as we have in mockups for topic pages now.
b. some special page with description of the field of expertise, ways to get involved, and list of "Most voted in: N".
Badges - as additional tool to encourage and recognize contributions
Certain badges can be made available on specific events or to recognize specific contribution.
1. Team badges - we create team pages for "officially" defined teams (ux, docs, d.o, security etc.), adding people as a member of such team automatically adds badge of this team to his profile. The purpose of this is to recognize participation and let people, especially new people, know "who is who", so that questions like "is greggles on security team or not" from recent issue did not appear.
2. Badges encouraging first contributions of people. So lets say badge when user was first time voted in some field of expertise etc. Stackexchange does this really well. It should not be too many badges, only for first time contributions. They will be displayed only on user profile pages and we can hide them with time or when person gets some amount of reputation, when showing badge for his first contribution will not be relevant.
3. Badges for specific levels of contribution / dates, for example 1000 documentation edits, or 1000 commits, or 1000 reputation points, or 10 years member of the site etc.
4. Badges for specific 1-time events, for example for module maintainers who took D7CX
pledges and actually had D7 versions of modules ready on D7 release day.
5. Badges for attendance of DrupalCons and Camps to encourage wider participation, participating in code sprints etc.