I'm trying to be an active member of Code Review (though I'm only good in some aspects of .Net) and it seems that upvotes are way easier to get here than on StackOverflow (for example). I've seen answers that corrected only minor things in code that have more upvotes then I believe they should deserve (who am I to say this!). Is there any reason why upvotes are flowing around here?
... seems that upvotes are easier to get here than on Stack Overflow ....
That's your problem. You cannot compare Code Review to Stack Overflow. Let's look at what voting is for:
Voting is central to our model of providing quality questions and answers; it is how …
- ...good content rises to the top
- ...incorrect content falls to the bottom
- ...users who consistently provide useful content accrue reputation and are granted more privileges on the site
Voting up a question or answer signals to the rest of the community that a post is interesting, well-researched, and useful, while voting down a post signals the opposite: that the post contains wrong information, is poorly researched, or fails to communicate information. The more that people vote on a post, the more certain future visitors can be of the quality of information contained within that post – not to mention that upvotes are a great way to thank the author of a good post for the time and effort put into writing it!
It is my assertion that Stack Overflow culture has lost sight of why voting is important, and that voting on Stack Overflow is broken.
Code Review is voting right (or at least closer to how it should be done), not wrong.
You should not be comparing one post against another when you vote, you should vote based on the merit of that post only. If there are 5 answers to a question, and you feel that each answer is interesting, well-researched, and useful, then you should be upvoting all of them, not just the best one.
Voting allows the best answer to rise to the top, but it is not you who chooses the best answer, it is the community through the combined voting of everyone. You vote for good answers, and, the aggregate amount of voting will determine which good answers are the best.
1\$\begingroup\$ I wouldn't agree with all of this. If one answer is clearly lacking in details, but is "helpful, interesting, and well-researched"... should you upvote it? \$\endgroup\$ Aug 15, 2014 at 1:10
\$\begingroup\$ @hichris123 - I expect that if a post, to you, is "helpful, interesting, and well-researched", that it would not, from your perspective, be "lacking in details". If you are neither swayed positively, nor negatively with an answer, then don't vote. I am simply suggesting that you vote on the merits of the answer, not on the relative merits of one answer verses another. \$\endgroup\$– rolflAug 15, 2014 at 1:58
\$\begingroup\$ Expanding on this: Example: Post A points out a unsigned/signed mismatch in the code, and then explains in great detail the risks of mismatching signed and unsigned integers, referencing official documentation and explaining the performance issues behind it. Post B says "you've got naming issues, it should be named for what it is or does, you've got too much comments in your code, function abc should be split, functions b_1, b_2 and b_3 should be combined to to function b(int num). Post A is well researched and useful. Post B is not. Post A helps. Post B says "your code is wrong!" \$\endgroup\$– PimgdAug 15, 2014 at 12:41
1\$\begingroup\$ @Pimgd - i suggest that both posts are useful, and insightful. Both would get my upvote. Both constitute a valuable review. \$\endgroup\$– rolflAug 15, 2014 at 12:45
\$\begingroup\$ ... I dunno, it's the english equivalent of "CODE" \$\endgroup\$– PimgdAug 15, 2014 at 12:46
I've seen answers that corrected only minor things in code that have more upvotes then I believe they should deserve (sic)
How many upvotes does an answer deserve when it's good? When it's great? When it's not-so-good? If you answered with a number for any of these questions, you're doing it wrong. An answer "deserves" your upvote if you think it's useful, period.
The number of people that upvoted that post before you got to it is irrelevant. Or should be.
I think votes are (should be) somewhat proportional to the number of views a post gets. Questions with good catchy titles get more views (and votes); their answers get more votes.
Is there any reason why upvotes are flowing around here?
We have been told to improve our voting. And we did. Are you saying we're voting too much? I don't believe there can be such a thing.
From our last site review:
Voting and Reputation Issues
There’s a bit of an issue with voting, and by consequence reputation on the site. Code Golf made a comparison themselves and figured that a major problem was in the lack of reputation by virtue of the lack of voting.
Looks like we've come a long way since then.
6\$\begingroup\$ No I don't think CR's voting too much, I was just.. surprised by the ammount compared to SO \$\endgroup\$ Aug 14, 2014 at 17:45
5\$\begingroup\$ "The number of people that upvoted that post before you got to it is irrelevant." <-- This. It would be kind of interesting if we couldn't see how many votes an answer had, only whether it had positive or negative net votes--and answers would still be sorted by votes. \$\endgroup\$– nhgrifAug 14, 2014 at 22:49
Active voter participation is a good thing. Positivity is also a good thing.
It wasn't always like this. Users lamented that it was hard to earn reputation, and that we were going to be in beta forever as a result. That suspicion was confirmed in an official site review in November 2013. Since then, community members have worked hard to change the voting culture, with the aid of statistics from Stack Exchange Data Explorer.
As for the other half of the question, why are we so positive? Well, you could turn the question around and ask, "Why is Stack Overflow so negative?" I think that a significant reason for our happiness is that we require all questions to contain working code, which ensures a minimum level of quality.
I'll conclude by reminding everyone again to vote! In particular, upvote questions with slightly crappy code, interesting questions, and reasonable questions from brand-new users, particularly those who have fewer than 15 points.
It is a lot easier to get up-votes here than on Stack Overflow. There are a lot of reasons for this, but one that seems to be missed is that we don't get as many questions. As a result, questions stay on the front page longer and get more eyes on them. Like another has mentioned, questions tend to get more votes in proportion to how many views they've received.
I'm going to play devil's advocate here and refer to the Downvoting Discussion. Is it too easy to gain rep here? Maybe. Maybe not. I personally don't think any of us downvote bad Qs & As often enough. I think we tend to simply abstain from voting when we come across a bad post, rather than downvote it as we should. On the other hand, less than 50 people have cast more than 10 votes this week. Less than 100 have cast 10 votes this month.
Up or down, we're still not voting enough.
3\$\begingroup\$ That's still much more voters than I've ever seen on that page! :D \$\endgroup\$ Aug 14, 2014 at 18:03
2\$\begingroup\$ Which is awesome @Mat'sMug, but for a site that supposedly gets 23k hits a day, it's not enough. \$\endgroup\$ Aug 14, 2014 at 18:06
\$\begingroup\$ Questions may fall off the front page of Stack Overflow faster, but they will have been seen by about as many eyeballs as a question on Code Review's front page would be. \$\endgroup\$ Aug 15, 2014 at 8:05
\$\begingroup\$ I'm not convinced of that @200_success. There's a pretty bad noise to signal ratio over there. \$\endgroup\$ Aug 15, 2014 at 9:58
Let's also keep in mind that each person can only assign 1 upvote per answer.
If I a question and its answers, I will upvote any set of answer that I think are deserving of an upvote. I can't upvote a better answer more than a good but not best answer.
Let's also keep in mind that the nature of CodeReview questions are different from StackOverflow questions.
StackOverflow questions pose a problem, and the answer is the solution to the problem. A StackOverflow answer that doesn't fix the problem in the question deserves a downvote, while a StackOverflow question that does fix the problem in the question deserves an upvote. It's more of a black and white.
Meanwhile, CodeReview questions pose a chunk of code to potential answers, and with very little guidance, say "Here's my code--I'm wondering how it can be made better." Normally, code can be made better from several different approaches. Readability can be improved, memory footprint can be reduced, execution time could be sped up, etc. Answers that are truly complete are rare, and even when they do get posted, they tend to be too large. So the better approach on CodeReview tends to be tackling just one part of the code. Any answer that improves some aspect of the posted code is worthy of an upvote and it's not super common that a single answer will truly be the complete answer to the posted question.
Sometimes the answer with the most upvotes is simply a good answer that got more views (because it was posted quicker) than other good answers.
I don't mind if a not so great answer has X votes, as long as a better answer on the same question has higher score, as it deserves. I would prefer if a significantly better answer had significantly higher votes, just to be safe, to ensure that good practices get copied instead of bad ones.
The absolute values reflect popularity and visibility of a question with its answers. Some things are more popular than others not necessarily because of merit, but that's just life, and impossible to control, you just have to get used to it.
The relative values of the answers on the same question should reflect the level of quality. Most importantly, since the highest voted answer may be perceived by visitors as the recommended solution endorsed by the community, it had better be the best.
It is not so much that that are too many votes, but that some voters are too indiscriminate.
This was at first a terrible answer, now it's simply not very good and got 5 upvotes ( 1 down by yours truly): https://codereview.stackexchange.com/a/59941/14625 (Sorry Malachi)
We are telling this new user that that answer deserves 4 up-votes in our minds.. That feels wrong to me. We are also telling that new user that his own question ( which must have taken ages to research and write ) is worth 5 points.. (Not too bad, but this is really a nice question, I am definitely going to use that code and it deserves better)
All in all, we should vote more, but/and better.
5\$\begingroup\$ We're not telling the user that the answer deserves 4 up-votes. We're telling the user that 4 people decided it was worth an upvote. \$\endgroup\$– nhgrifAug 14, 2014 at 22:51
\$\begingroup\$ @Konijn what is wrong with the answer, I still haven't gotten an answer why it doesn't work? I think I see the issue... \$\endgroup\$– Malachi ModOct 10, 2014 at 20:06
c++tagged question and found out that I understood the language enough to be able to see some things, I will definitly check more questions now. \$\endgroup\$