There are two observations on Stackoverflow:
Some topics naturally receive more activity than others - for example a question about PHP/Javascript would get much more activity (in terms of views, votes, answers etc) than a question on Scala/Erlang.
Esp within the high activity areas, voting on some answers becomes a popularity contest rather than a vote on the quality of the answer. For example, a question on which Javascript library can be used to perform a certain task becomes a popularity vote on JQuery vs Dojo etc, so answers supporting any get more up-votes depending on the respective popularity rather than answer quality.
Here is a fundamental question:
If a Scala/Erlang expert has provided 100 good quality answers, do they roughly accumulate the same points as a PHP/Javascript expert who has provided the same number of good quality answers?
In the current system the answer I think is no. This kind of skewed reward system might result over the long run in a winner-takes-all situation, where few popular areas would get lots of users and interest while most unpopular areas get very few users.
Here is a proposed solution:
A weighted score can be used, and the factors that affect this score would be:
- the relative total activity in the tag/tags area of the question.
- the relative activity for the given question.
Based on these two factors a relative scoring factor can be generated that would be used to weight the the points generated for activity in the given question. This weighted points score is then used to accumulate the total weighted score per user which better reflects the quality of the user activities. So basically, the total points figure is like your net worth, and the weighted score is like your worth value relative to your demographic group etc.
Not all details are sorted out here of course - like whether the popularity measure is a snapshot or changing over time.
Such weighted score can then be displayed next to the user name as a mark of credentials, and can even be used in the permissions system.
Update:
Some clarifications:
The popularity contest above refers to the popularity of the languages/platforms/apps/libs etc not the popularity of the poster. There is no issue w.r.t poster popularity.
The proposed weighting system does not give higher weight to less popular topics, rather it tries to achieve fairness by giving equal relative weight. For example if Javascript or an aspect within it is decided to be 5 folds more popular than Scala, then 5 up-votes in Javascript would be equivalent to one up-vote for Scala. Or maybe a factor of that like 60%, or an effect that comes into play after certain threshold - say after 4 up-votes. All these are details on how this balance can be achieved.
Another devilish detail is how to decide the popularity factor - I proposed factors based on the popularity of the tags on the question and the activity in the question. Others might suggest other factors or a different take on these.