My friend Warren Myers had an interesting blog post on voting mechanics on various websites, along with “like” mechanic various social networks use (like buttons, +1 buttons, tweet favorites, etc.). I’ve made my feelings on things such as “like” buttons known, so I’m not going to go into those here. Warren raises some good points about the issues with voting on a lot of sites, but there are some places where I think works well that I think are worth noting, along with why they seem to work well. It’s important to note these reasons if you want to make sure your voting mechanic improves your site.
A case study in what works – Stack Exchange answers
While Warren has issues with voting on the Stack Exchange network, namely with the questions, I find voting on the answers to work very well. In fact, I think it’s probably the best example of making voting mechanics work well on a website. First and foremost, Stack Exchange has a problem that was well-suited for voting. They were looking to build a site where people could ask questions, submit answers, and separate good answers from bad answers. Voting was a good solution for gauging which answers were any good.
Stack Exchange followed that decision up by scoping appropriately for voting. Stack Exchange sites are zealous about avoiding questions that are largely opinion-based, emphasizing questions that have either objectively correct answers or commonly accepted best practices. A result of this scoping, there’s a clear definition of what votes mean. This gives users a clear litmus test for whether or not a vote on an answer is “correct”. It makes the voting much less haphazard, inconsistent, and random.
Another thing that makes voting on Stack Exchange answers work well is the fact that votes have a visible impact on the site. I don’t mean they alter a vote count that the user is able to see. Upvoted answers are moved up the page, and downvoted answers move down the page. There’s a clear consequence to voting that reinforces the objective the voting is supposed to accomplish, which encourages voting correctly. It also makes it easy to spot “wrong” votes and correct the problem. As a result, the answers near the top of any Stack Exchange question are correct, and the answers farther down the section are less likely to solve your problem, just the way the site intended for them to be.
Examining Stack Exchange questions
Now let’s take the things that make voting on answers work well on the Stack Exchange network and see how well voting on the questions works. First off, let’s just list the criteria we went through above to see where the questions stack up:
Has a problem well-suited for voting- Scoped appropriately for voting
- Clear definition of what the votes mean
Visible impact on the site
So voting on questions on Stack Exchange sites don’t work quite as well as voting on the answers. The problems here are the fact questions aren’t as inherently a good fit for voting as the answers, and the questions don’t seem to have any visible impact on site.
Let’s start with the first issue – questions aren’t really a good fit for voting. Judging what’s a “good” question is a lot harder than judging a what’s a correct answer. Stack Exchange does a good job scoping the problem – questions need to be solved by an objectively correct answer or at least a commonly-accepted best practice. Upvotes on questions are supposed to mean that a question is well-formed, on-topic, and useful to others. The issue here is seen on some of the bigger sites, like Stack Overflow, the community frowns on questions that are deemed “too” easy. There’s a desire to get rid “help vampires” and the “rep whores” who feed off the easy questions. The aggressive policing to try to solve that problem makes it harder to figure out what introductory questions will be smiled upon, and which the community will vote to close.
The other issue with voting on questions is the fact that upvoting and downvoting has no immediately discernible impact on the site. Sure, you see the up- to downvote ratio next to the question, but that seems to be the limit of what voting on questions gets you. As a result, there’s no motivation to even bother with voting on questions. This fact alone renders voting useless, regardless of whether every other factor that makes voting successful present. When there’s no benefit to voting, the votes become afterthoughts or even just thoughtless reactions. The only meaningful votes on questions (in terms of actually changing Stack Exchange sites) are the votes to close or delete questions, which are wholly different from the votes most users are allowed to cast on questions.
While I get the desire to incorporate voting on the questions, and on the surface it seems to be a good idea, there needs to be some technical and community guideline changes to better define questions in terms of voting, and to allow votes to impact the site in a meaningful way. Right now, voting on questions seems like an afterthought, which discourages voting on the questions, which doesn’t really matter since it’s not like the votes are being used to improve the site anyways.
Examining Reddit
Let’s leave Stack Exchange behind for a bit and look at another site well-know for it’s voting, Reddit. Just like with Stack Exchange questions, I’ll look at how voting on Reddit stacks up against the criteria that makes voting work well with Stack Exchange answers and then offer some more details on how that’s working out for them.
- Has a problem well-suited for voting
Scoped appropriately for votingClear definition of what the votes mean- Visible impact on the site
Other than the votes making a visible impact on the site, Reddit pretty much does everything wrong when it comes to voting on a website. The “problem” they’re trying to solve via voting isn’t something that naturally lends itself to voting. Reddit’s goal is to be “the front page of the Internet”. So what problem are they trying to solve? “What’s popular online now?”. However, that’s a problem best solved by tracking activity on a topic or article, rather than explicit voting, but voting could be made to work for that so we’ll leave that criteria as “tentatively met”.
The biggest issue with voting on Reddit is that it’s scoped horribly for voting, with no objective criteria for what those votes represent. Even if you look at individual subbreddits, they’re still so broadly scoped that there’s no way to limit the content to the things that would be improved by voting. Posts on Reddit are limited to “anything related to the sub-reddit at hand”, or just “anything” if you’re looking at the front page. The idea is for people to post anything that could be interesting, funny, worthy of discussion, or whatever to the topic of their choice and let the votes sort it all out. The problem is with such a wide category of stuff, voting is wildly subjective, and thus essentially useless.
Because of the subjective nature of Reddit votes, there’s no clear definition of what votes are supposed to mean that you can test against. This makes voting incredibly inconsistent and more subject to the random whims of the Internet (which always works out well – NSFW) rather than adding some sort of value to the site. Without a clear definition of what the votes mean, voting is essentially pointless. That means voting does nothing to improve the quality of the content on the site, or even to promote “good” content. This lack of a clear meaning of what a vote is supposed to mean makes voting on Reddit essentially worthless.
It’s possible to make voting on a community-driven site work, but in order to achieve that feat you’re going to really need a narrow, focused scope. In addition, you need voting to be focused on clear, objectively-provable criteria, otherwise the votes become effectively random, not to mention meaningless. You’re also going to have to make the votes visibly matter, and more so than just bumping a number next to the content affected. If this sounds like only a small subset of communities would benefit from voting, that’s because it’s true. Making voting work is hard, and even communities that have done a good job implementing voting in 1 part of their site don’t necessarily do a good job implementing it in others. The moral of this story – if you can’t do voting right, it’s best to just not do it at all.