I feel like there's a problem with Stack Overflow, as the number of people prowling it increases.
Each question's answers are sorted by descending score and then by descending time of posting. This means that if a person sits down and answers a question in a long, thorough way, going through every nook and cranny, once they post their answer, it will already be one of about seven different ones, some of which have already been upmodded. This wouldn't be a problem if those answers were as thorough as the one this guy's posting, but they usually aren't. Some of them are downright wrong, some aren't even answers to the question asked because their poster didn't bother to read the question all the way through.
This causes a problem I like to call Stack Overflow's Fastest Gun in the West Problem. I've come to a point where I'd rather just send a short, simple, correct explanation, than to go and do some proper research, write a whole blog post about it or even make sure the code I post even compiles, just so it will be noticed, as opposed to the incorrect ones.
I'm sure I'm not the only one doing this and that it despairs many people from even trying to answer questions.
I've long ago learned to try to always raise a problem with a solution in hand, rather than just say "This is a problem, handle it," so my question, after this long tirade, is:
How do you think this can be changed? What would you change in Stack Overflow to make this problem go away without hurting the site?
I promise to vote on answers I like, even if it takes you a long while to post them. :)
This problem was solved 80 years ago [1]. (See here [2] for XKCD-author Randall's explanation).
Of course, this answer is late, so it will never get upvoted :)
[Edit] Here is some code:
///<summary>
///Returns a rating for the given post. Larger is better.
///Based on the equation found at http://www.evanmiller.org/how-not-to-sort-by-average-rating.html
///</summary>
public double GetPostRating(int numPositiveVotes, int numNegativeVotes)
{
int totalVotes = numPositiveVotes + numNegativeVotes;
if(totalVotes == 0)
return 0;
const double z = 1.96; //Constant used for 95% confidence interval in a p-distribution
double positiveRatio = ((double)numPositiveVotes)/totalVotes;
//Crazy equation to find the "Lower bound of Wilson score confidence interval for a Bernoulli parameter"
//Again, see the above webpage
return (positiveRatio + z*z/(2*totalVotes) - z * Math.sqrt((positiveRatio*(1-positiveRatio)+z*z/(4*totalVotes))/totalVotes))/(1+z*z/totalVotes);
}
Here [3] is an example of the kind of ratings it returns.
IMO, downvotes should be weighted more than upvotes (controversial answers should be at bottom), and newer answers should be given preferential treatment. But even without those, this is a neat improvement.
[1] http://www.evanmiller.org/how-not-to-sort-by-average-rating.htmlsomeConstant/secondsSinceAnswerWasPosted
to the above rating, this would give the later answers a precious minute or two at top to gather some votes of their own. And usually when someone an older question it's because none of the existing answers were satisfactory. - BlueRaja
F5
on the "active questions" page who see it at top, not the people who actually need to find an answer to that question. - BlueRaja
I've asked questions that have received an immediate answer with enough information to get me past my block, but not served on a platter as you propose, with all the information I might need.
This is extraordinarily helpful - I know I can post something on here, day or night, and get an answer within minutes, often seconds, that will be better than searching through books, online, etc, even though it's a throw-away post that took someone 35 seconds, who may have only answered for the reputation. If it's at all helpful, I upvote it.
Later on I'll review my question again and select the answer that is what I consider the best of the bunch (I try and wait a day or so for long answers like you provide).
But I DO NOT want to 'adjust' the system to discourage short quick answers, or make long thoughtful answers that come a day late so highly valued that no one posts the short ones anymore.
Let's look at it from the perspective of what the site is supposed to be:
A long term repository of searchable, free, and freely editable information.
In the long run, it doesn't matter if the long, good answers don't get the initial rush of votes. They will ultimately go to the top because
There are generally few answers per question, so future searchers will read the entire post and may upvote the better answer. The special case of the question with tons of answers is just that - a special case, and it will be gamed and mined for rep a dozen ways from Tuesday, so it's not worth fixing - it's less than 1% of total content - don't design the system around the special case, or else all your cases will become special.
Once someone posts a new answer, the post gets a new chance to be on the front page, which will entice some more people to see it that haven't - they'll upvote the good, long answer at the bottom of the page if they feel it's better than what was initially offered.
The person who initially asked the question will often come back later and review it, and if your post is truly the better answer they'll select it as the new accepted answer.
A key point, though, is that if someone is looking for the information later, they'll read all the answers unless it's obvious that the first one is good enough for their purposes.
So that completely guts your argument that it's important that the longer, complete answers should get a boost to the top, somehow. The only reason left to complain about the tradeoff between short posting and long posting, then, is because you may not get as much of the initial rep as you would otherwise.
Grace period idea (currently editing...)
One solution would be to have a grace period where votes are hidden:
Maybe the grace period could be the same as the grace period for editing the Question.
@Jeff Atwood
Sounds Complicated
No more Complicated than...
All you need is a simple flag that switches between two modes of the question: "Grace Period Mode" and "Regular Mode". You must already have this because of the grace period for counting edits on questions.
Will people understand what is happening?
Yes, if you explain it to them. Lets say we name this grace period "Secret Voting". All you have to do is put a banner of some sort above all the answers that says "The Voting is Currently Secret". When the grace period expires, the banner would be removed.
Also during the grace period, the Votes sort tab would not be present, but instead a Random sort tab would be present. Again, people will understand it, because the interface explains it to them and doesn't make them think.
I've noticed myself reacting to this too, although I try to mitigate against it as much as possible.
I sometimes try and post a short correct answer as quickly as possible to kind of "mark" the question with my answer to discourage other similar answers. I then I would edit my answer to improve it, using the 5 minutes grace period to edit without it appearing as an edit (although I'll still carry on editing after then if I can improve it, I just use the grace period to edit without worrying about writing edit descriptions).
Conversely, if I find someone has answered the question while I was writing my answer, and I don't feel my answer adds anything, then I've deleted my answer on occasion, although if I provide a link and the previous answer doesn't I'd leave mine. Once I can edit I'd be inclined to remove my answer and add the link to the other answer. Since comments were added I've also been adding to answers by commenting on them, again, once I've got edit rights I might edit directly for simple improvements (adding links, spelling, grammar, formatting, etc.) and just use comments for actual comments.
I've also learnt a few of the keyboard shortcuts for the edit box (hover over the buttons to see them on the tooltips.) The shortcut I use the most is CTRL+L to add a link to selected text. That makes it much quicker to write a quick answer with a few useful links in it.
I've also taken the attitude that there is also a long game to be played. If you can provide a better answer then the initial rush of points that the first answers got is possibly just the tip of the iceberg and there's probably much more points "underwater" to be made once the site is indexed by Google and we start finding answers to questions in Google search results. (although the fact that new users can't vote straight away - you need +15 rep to upvote - might mitigate against this.)
Update: for a really good description of how the long game will play out and why the fastest gun answers aren't a problem see Adam Davis's Answer [1].
[1] http://meta.stackoverflow.com/a/9758The reputation system is valuable, and I find myself emotionally validated by it a bit, but I also have to keep reminding myself that it is an illusion.
There are likely more points to be gained in the first 24 hours of a question than in the whole rest of its lifetime, because a lot of fast guns will be searching the unanswered questions, looking to build rep. And because the person who asked the question is likely to choose an answer and mark it "correct" within this fairly short time, while the question still matters to him. So, for those who see the StackOverflow site as a game where building reputation is how you 'win' ... yeah. Fast guns will 'win'.
But a lot of StackOverflow users will be playing a different game. For them the 'win' happens when they get an answer to the problem they have right now. The people playing this game are probably much less likely to even notice the reputation game. Many of them will probably not even up-vote the answer which works for them. Long term, I wonder what the stats will show: which percentage of asked questions never get an answer chosen by the question-asker? And stats can't really reflect this, but how many people will get an answer without ever posting a question? They may find their answer via Google, or by starting to type a question and the site's own search engine flags a similar question/answer - one that's good enough. Will they bother to vote? heck, a lot of them won't even be able to - because they haven't gained enough rep to vote. They never started playing the rep game.
So, an answer which never even gets rated might be the one that's really solving the most issues for this (potentially huge) group of people who never play the rep game, or never even notice it. That's the illusion: the Illusion Of Perfect Feedback. You're never gonna get perfect feedback. So in this sense, the ordering of the answers will never be perfect. It is possible that it will never even be very good. Because it cannot be.
So, fast guns, slow guns, medium guns: write the best answer you can, no matter how long it takes, and realize that even if you never get a single point on the StackOverflow Rep-O-Meter, you may be helping a lot of people.
I'm not dissing the rep system or the fast guns. They kickstart the process, and that's valuable!
I think that this site has to become more like a wiki where many people add small contributions to existing answers instead of creating their own new answer. Unfortunately the reputation system as it is now doesn't really encourage this yet.
I understand from listening to the podcast that this is the direction the creators of stackoverflow want to go too. Planned features like making questions and answers comunity editable would be a big step in the right direction.
Remove visible scores.
Yes, you hear me right! It feels horrible knocking someone down, especially if you take them into the -1 or less realm! If the scoring system is hidden and you just say "Yup like it" or "Nup not good" and the actual effect that it has is hidden then people will be more likely to rate answers (ecspecialy down) and the chaff may remove itself more effectively.
A second solution would be to not allow ranking until a question had been open for a while (an hour say) then all questions have an equal chance (if you display them in a random order to different users all the better). Compare to this post [1], another problem with being slow :D.
[1] http://beta.stackoverflow.com/questions/56103/fastest-gun-in-the-west-problem#56125A related problem is the fact that when a question already had 10+ answers, an answer with new information given at this time tends to get lost in the clutter in the bottom and not get the exposure it deserves.
One possibility would be to position an answer based on both its rating and its "age" (for lack of a better word), giving recent but already voted answers a place before older answers with a similar rating.
I think macbirdie [1] is on to something. I would recommend a slight enhancement, though:
I agree, and fully admit to being guilty of this myself, on occasion. I have, thankfully, seen such 'answers' being modded down, but the level of this occurring varies hugely from question to question - some 'bad' answers are fairly quickly modded down, others are left, possibly, indefinitely.
I think the point about wiki-editing is significant. If the barrier was much lower, we'd get better quality answers, and people would also be less keen to run around, scrabbling for rep. I think Jeff's reservations about this are slightly too great - wikipedia has proven to work without such draconian restrictions.
I also think it would help a lot if up-voting also cost, just like down-voting does. Currently, there is nothing to discourage people from rushing around, blindly up-voting everything they come across.
UPDATE: I wonder if there should be a limit - either time, or number of views / votes / answers - before answers can be voted on at all ...
UPDATE: To clarify the delay concept: this would only apply to answers (but all answers), and could either be a 'reasonable' time to mask 'first posts' (e.g. 10 minutes), or could be dynamic based on number of answers, number of views, etc. "InSciTek Jeff" had a great idea relating to 'blind' votes (see question comments).
Many comments here refer to the wikification of the answering process: Merging comments, editing each other's comments, etc.
As far as I see it, we're talking about two different types of sites here: Collaborative and Competitive.
SO is a competitive site, rewarding each of its members for their individual effort, so I'm looking for answers that go more along those lines.
I don't pretend to try and change the whole perspective of how the site operates to being a collaborative site.
One thing that could possibly help in this case would be to force the "Oldest" sorting mode for the question owner so he goes through all the answers.
You could let old answers "fade away", unless someone votes on them and they are not one of the top n answers. Hacker News uses this technique to gray out downvoted comments so you can ignore the bad answers and focus on the good ones.
But I guess the better way would be to change the culture of SO:
Yes, I know: if we don't have all these safeguards in place, the barbarians will burn down the town, once we open up the gates. But a lot of the rules are there to make things nicer, not safer.
Get a grip. The idea of the site is to get answers to straightforward questions and then get back to friggin' work. If one asks a question, one is going to be looking for what one thinks is the right answer, so one is going to read all of them.
Before SO: I'm looking at the entire internet full of content that isn't remotely relevant to my problem. After SO: I'm looking at an unordered set of answers to my specific question, written by real people, and one of them is probably a nudge in the right direction.
I completely agree. The pattern of a lot of questions and answers almost appear to look like reputation trading rather than providing quality information. Obviously this is an annectdotal opinion.
The system does appear to reward incomplete but quick answers.
I think that it works ok the way it is. What is the problem of 10 short answers BEFORE yours if yours is good? In the end, people will hopefully vote yours up.
Out of my mind a few things thay may help are:
The asker may have the ability to "hide" certain useless answers, or the ability to MERGE two (or more) answers into one single text, making it easier for the reader to follow the answers. Like "The Answer" is conformed with text from answer1,2,3,4 and 5. Preserving the author's name for each "part" of "The Answer". (Sorta like SVN Blame) ;)
Some sort of visual cue indicators that "help" the reader to see that there are more good answers "below". And stuff like that.
Maybe all this makes no sense at all. :)
Following on from Omer's distinction between a Collaborative site and a Competitive site...
It would seem that we need the best of both worlds. There's nothing wrong with a bit of healthy competition so that people strive to produce timely, high quality answers. However, we don't want the answer to be lost between several people's contributions. Certainly marking answers up and down helps the good stuff filter through to the top, but if there's lots of good answers you really need a combined view.
I suggest the question owner take on (at least initially) driving the collaborative element and start the 'wikificiation' process of combining the best bits of several answers into (drum roll) the answer.
The question owner can do this today by adding another answer, but really it's an additional feature that should be put into the tool.
I'd say that most (90%?) of questions wouldn't need this extra step, but where there are several high quality answers having a single point that draws them together would be excellent.
I think that a time buffer is a solution, but the buffer should, instead of buffer the appearance time of the answers, decide when people can vote. Answers will appear as they are being written, but votes can be issued after a half hour or ten minutes, whatever.
Given that you won't be upvoted in that period of time you know you can take 10 minutes or a half hour to prepare the answer.
The saddest part of it all is: What is reputation actually good for? I mean, besides a little ego trip? I'm as guilty as the next guy, but it's still sad.
I agree to a point, although I have to guess that the site has not even come close to settling down. Users are still in a mad panic, scrabbling for reputation points and badges of any shade - what you are describing is bound to happen... initially.
It will calm down.
Having said that, I've noticed a pleasant tendency for people to vote for the actual best answer, most of the time.
Despite all the bilge posts, it seems the cream does often rise to the top!
@
Wedge
[1],
I would disagree. It would be too idealistic to believe in collaborative intelligence.
Ivan Hamilton has some
interesting thoughts
[2] on this problem.
Most people wouldn’t spend their time to check correctness of someone's answer. In many cases they don’t have enough expertise to make correct judgment. Most of the time people vote because they like some answer or feel that it's correct. That’s why trivial answers have huge vote count.
It’s a basic psychology. Herd instinct [3] makes people to believe in quality of up-voted answers. Here is a typical situation: Someone posts a short answer that looks nice (but might be incorrect or just off-topic) In few moments it gains some votes. After a while popular answer becomes covered with votes like a snowball. Even if someone posts an answer that is really correct but doesn’t look so nice, it will be literally buried under a mass of other answers.
Of course there are good examples when SO works as expected – stupid answers get down voted, good answers bubble up. But it’s too naive to suppose that this model works in most cases.
Some people talk about long-term perspective: “when site goes public a lot of people will vote and answer author will gain scores. Good answers go up, bad answers go down”. When site goes public most people will come just for a quick answer for their problem, it’s the same way search engines work. Highest ranked question will be chosen.
Now try to recall how often you scroll to next page of search engine result. How often do you scroll to the end of the first page? When question polluted with tons of answers it’s really hard to choose, unless you’re proficient in given field.
In general case vote count is measurement of popularity, not quality. To mitigate this problem I propose following scenario:
For N minutes since question posted, people can’t vote on any answer.
If question gathered some feedback in N minutes it must be shown on a main page. Answers must be sorted in random order for each viewer.
Now competition begins. There is N equal answers to choose (displayed in random order)
That’s way most answers will have equal chance. Since there will no way to gather reputation in first N minutes, people will spend more time on their answers. Now when question reappears on main page, it will contain N equal answers sorted in random order. People will not be affected by influence of first-the-most-voted answer; they will see N answers and will be forced to read most of them to make a choice. Since questions are sorted in random order, there is equal chance for all answers to be selected.
Key point is to split process into 2 stages:
I do my best to answer with the detail that I find is appropriate. In my limited experience, I have found that the "fastest draw" does get some up votes and initially my post falls beneath them. However, I find that if your answer truly has more value than any of the other answers, yours will quickly get voted much higher than the previous ones.
Here's an example [1] of this in action. Eric's post was correct, but little more than a code snippet. I decided it's better to teach someone to fish rather than to catch it for them so I explained why the code snippet worked. By the time my explanation was finished, Eric had 3 or 4 up-votes. Notice how over time, my answer got more votes than Eric.
I think SO corrects this itself. I browse answered questions from time to time and up-vote the good responses, particularly when the post teaches me something I didn't know. There's not really a solution to this problem, other than hiding the reputation number so people won't be carefully calculating their every move to maximize their reputation boost. If you decide that the up-vote is more important than providing the best answer, then you are part of the problem. If instead you'd rather be known for always providing a detailed and correct answer, I think you'll find that the "problem" evaporates.
I'm here to help other people and get help myself; reputation is just an arbitrary score that indicates how many times I've had the most interesting/correct/accepted answer to a question.
[1] http://beta.stackoverflow.com/questions/44408/how-do-you-generate-a-random-number-in-cI think allowing multiple answers to be selected as correct allows the questioner to acknowledge caveats, different opinions and nuances. Often an answer does not cover all sides to the question, but two or three might.
Here's what I have noticed, and tried as well:
Put a one liner real quick, and then edit the answer and add more details. But this is not a solution to the problem. Once again, the only reason i would do this is because if I am spending time to put out a well constructed answer, I would like it to be read.
For a solution the (programmer's) mind suggests that you should take a token to begin an answer, and then the answers are posted in the order the token was taken regardless of who submits first. Of course, there can be many problems around this.
@ Adam [1]: I appreciate your argument, but I respectfully disagree.
I find that now there's a flood of answers within minutes. Yes, it used to be one fast and several later, but now it's 2-5 immediately, often with very similar information, often with shallow, trivial information. I picked a random question current at the time of this comment, and you can see this effect for yourself [2].
These linger around forever. Usually people don't down-vote, perhaps because of the combination of losing rep and having just 30 votes per day.
I also disagree that "if someone is looking for the information later, they'll read all the answers." I don't think people carefully look through all the answers, and again I don't think they'll be down/up-voting as they go.
[1] #56557I like the idea of hiding the scores [1] on the question page. Knowing an answer's number of votes somehow affects my voting. Clearly we are more liberal with upmodding than with downmodding.
I also like the idea of showing answers in a random order for, say, the first day or two (except the chosen answer). As a result, "bad" answers will sometimes show at the top during this period. This "undue" notice will actually cause the truly bad answers to receive more downvotes, and hence improve the eventual sorting by rank.
[1] http://beta.stackoverflow.com/questions/56103?sort=oldest#56742Fastest gun isn't always a bad thing, it only gets annoying when people start counting their position in the post. Like many issues which are solved in development, they can be fixed twice. The initial to fix the immediate problem followed by more thorough fix so it never happens again. As a responder to a question, you can give the quick and dirty response that you are thinking of, then research it and follow up with a more complete, thorough answer.
Since this site has been designed to allow you to re-edit your posts, and others posts (once you have enough reputation) it is perfect for a quick answer followed by a more thorough answer. You never know, somebody's initial thought may help you with your approach.
I think that to the degree this is a problem it's mostly a problem with the beta. The limited user pool means that sometimes answers may languish a while before they get attention. When the user pool grows by several orders of magnitude I don't think this issue will be as important.
This may or may not have already been said, and as of right now, there are 39 answers. some very long-winded. I chose to be lazy and not read through them all.
One way to prevent duplicate answers from appearing right after one another is when someone goes to post, let them know if there have been any new posts since they started writing theirs. This would prevent something that's happened to me where someone was quicker to the draw in saying the exact same thing i just did.
@ contagious [1],
I created request on uservoice:
Provide live monitoring of answers being posted [2]
To help us fight against tons of duplicate answers, provide following functionality:
At the time person is writing his answer show excerpts from answers being posted. Color code similar answers.
It can be implemented in the same way it's done for new question posting - i.e. author can see that similar posts already exist.
If it's what you mentioned, please vote for it.
[1] #58370I realize now that the FGITW [1] problem is actually the reason that Stack Overflow works well.
If you don't know enough about a topic, then you won't be able to post a quick answer.
Those who post a good quick answer, tend to be those who have more expertise in that area. This gives a higher probability of getting good expert answers.
[1] http://meta.stackoverflow.com/questions/19478/the-many-memes-of-meta/19533#19533Sometimes I even see users giving replies like: "change this line of code with this one", not caring about giving an explanation of what they say. "Just do this, so I get my reputation".
And you could see low quality answers being edited and becoming better and better again in the time, but they figure first in the list of all answers, even if who gave it was slower than an user who gave a high quality and complete answer without editing it.
I agree too. I've done the same thing. Been waiting for a page to load so I can verify what I'm writing, but it's taking too long so I just post without the verification.
It does reduce the effectiveness of the site I think. Rather than have a few well written responses, you end up with 10 short half-baked answers.
I'm not sure how you'd fix this - what about a delay between the time you post? So it's not like you're all rushing to answer the question, because if there is a 30 minute delay before the post is viewed, you can safely assume someone else will have already answered the question.
I feel that it works fairly well as it is. Using the default sort of newest first, the long thorough answer will show up first for the answers with the same vote. I do think that the 'best' answer will in most cases end up at the top of the list. If a user browsing the site really care about finding a good solution to a problem then they will look at all the answers and vote up the one(s) that prove useful.
Another possibility that might help is to give users a better view into what changed recently around their votes. I haven't yet found a good way to see all Q&As I voted on that have changed. Having that, it'd be easier to review one's votes, which in turn might lead to long-term improvements in vote quality.
I have been thinking about this problem for some time but didn't find good solution.
Since reputation system exists people want to get some reward for their answers. As number of users growth, number of duplicate answers will grow as well.
One of the useful features would be a real-time update on question's answers while you're writing your own answer. It can be implemented in the same way as search, but "search result" should be updated every N seconds/minutes. That way I can clearly see that some one else post similar answer.
Another feature that I find to be useful is merging - as @Unsliced suggested. There must be a way to merge similar answers. However it's not clear who should do it and how to divide reputation points between answering people.
I think SO is not only competitive. The competition is just an incentive to -in the end- provide a good (if not the best) source of information for programmers, written by programmers. The reputation feeds two things: you own ego and the confidence of the one who's reading an answer when it sees that it comes from a "guy who's not a newbie in the site and knows what he's talking about". Ot at least, you could change all that quote to: "a guy who has been hanging aroung a lot of time in SO". (which doesn't mean he's good). Badges kind of help with that. You could have 10.000 rep points, and little good badges, or 1000 rep and a few silver…
In either case, time will tell. I think that this is both competitive and collaborative with strong and weak points in each.
Could an answer's length be factored into the sorting algorithm somehow? How about letting the reader choose how they want their answers sorted? Much like I can go to Best Buy or Circuit City's sites and sort my search answers by brand, price, or alphabetically, I might be inclined to sort my answers descending by length if given the option... at least as a short-term experiment, although if I find the quality of answers to be better that way, I might just leave it like that forever.
This is a very valid problem, which I have been thinking a lot too. I have some ideas for this.
Redesign ranking functionality a bit. People can upvote (good ones can range from 1-10) or downvote (bad ones will always show as -1) but users will NOT be able to see their actual rep scores.
Use only Badges (or Grades) for display. Ranking can be used internally to determine the badges but the user will never see his rep points.
This has a psychological effect. Instead of posting a quick reply and refreshing the screen for the rep points to shoot up, users will try to write a more useful and conservative reply with code samples and will know they will get more points in the long run.
Allow users who posted the question to only Accept the answer after a day. If you want to get too draconian, allow him to accept only after upvoting or downvoting all the existing answers. :)
To eliminate fastest gun replies, answers will show up only after 5 minutes. That way, even if 10 quick guns are composing replies and posting, all those answers will show up at the same time. This will negate people to post quick replies and allow them to think at least for 5 minutes.
@ Mel [1],
You have some interesting point. It will be nice to differentiate answers by various criteria, not only by votes count. Length of the answer can matter for me. Event if it's wrong, it serves as an indication that person spent some time thinking on his answer.
For example, when I browse through answers I'm interesting not only in "common opinion" but in experts decision. I don't care how much "reputation" answered person has. But I'm interested in his skill in given technology. For example there might be a little statistics attached to answer - total votes, how much people with average score per answer (with same\similar tags) > N voted, etc. Of course there might be a case when someone with tiny "reputation" provides best answer. But it's really a matter of statistics. Probability that quality of answer given by "experts" would be good is quite high. I prefer to not see "reputation" of answering person. In my opinion "reputation" doesn't matter, but specific skill does.
[1] #56409Early in my experience on Stackoverflow my gut reaction to this issue was that it was a problem. I also hadn't asked any questions at that time. I soon changed my mind. I believe over time that the most correct answers do bubble up to the top.
If I ask the question I will be reading all the answers no matter what order they are in. As someone looking for an answer I will most likely be doing the same thing. To me what order they are in and how much they have been upvoted doesn't really matter if I need the information.
A few ideas, mostly independent/combinable:
(1) Have a buffer time for upvotes. You upvote an answer, but it doesn't count on the rankings for a little while.
(2) Show different rankings to different people randomly, weighted by upvotes and newness. This way newer answers still get a chance, but don't drown upvoted ones (or vice versa).
(3) Temporarily place new answers at the top. Give them N/5 views at that position, where N = # views so far.
@ Justin Standard [1],
I think some kind of grace period might be the best thing we can come up with. Also secrecy of the ballot is the way to avoid biased opinions. But your proposition is not solving following problem:
Boundary (first/last) answers receive more attention (and votes).
It means that when votes will be revealed, there is a high probability that mostly first\last answers will be up-voted like it happens in current implementation.
Since there are "oldest" & "newest" sort modes, some answers will be less noticeable than other. To solve this issue (first->most popular answer) I proposed to disable voting for some time and pop question to main page after a while to indicate that it's ready for answer selection.
However disabling voting will make it harder for question author to select some answer in the first few minutes after grace period. So your idea might be better.
[1] #58169Just allow the OP to select "how long before the first answer gets displayed", say, 10 minutes. If T is the original post time, then we'll call T + 10 minutes "Answer Open Time". Or we could call it Business Time [1], whatever you prefer.
This makes every question like a mini-contest, where people have 10 minutes or so to submit their answers. Answers are then displayed, but "early" answers are timestamped with Business Time, not the time the server originally received them. This effectively removes the fastest gun problem.
[1] http://www.youtube.com/watch?v=WGOohBytKTUI've put together a different but as it happens related question ( Expiration of answers for questions with novel solutions [1]), and a proposed solution [2], that I think helps resolve (or at least significantly advances discussion about) the "Fastest Gun in the West Problem" by having the "fastest answers" replaced by "better answers" as old and perhaps deprecated answer-sets are revolved by the community (i.e. wiped, to-be replaced by new sets of answers).
[1] http://meta.stackoverflow.com/questions/71522I think it's got to be down to the community to a large extent - and to the question owner.
Perhaps the question owner should be given more power to change the order of answers to a greater degree?
The only problem with that is that a lot of people asking questions will be 'drive-by' users, just wanting a quick answer to their problem. They're not the sort of user who will hang around to collate and manage responses.
Well.. Good answers will rise up. So dont worry, post a helpful answer that doesnt exceed half a page. Instead of read this or link to that, be objective and comprehensive. Also the first/last line (bold) AFAPossible should be the direct answer to the OP's question. These kind of answers will be rewarded with votes.
As for not reading all the way down... Well its your loss if you don't read all the answers to find the gem. But someone else definitely will.. So post and help away
Hey I made my first 1000 ... post! post! post! just kidding... 'The work is its own reward' as Jeff likes to quote. :)
The central problem here is that while there might be several answers to a given question, in an ideal world there would only be one representative of each answer, rather than a whole muddle of similar duplicates.
Obviously we want our answer to be that representative. Our fear is that if we spend too long composing the definitive response someone else will get there first - and if they 'win' they'll get the rep (and, of course, the rep will be going to another answer that can't be as good as ours).
I like the ideal of good answers rising, but what we actually need here is probably some concept of answer merging.
It's probably not for the questioner to make the decision, they can accept an answer but there should be some mechanism for respondees to be able to merge another's answer into theirs and the product would be owned by the community wiki.
Maybe there could be a "challenge" to the selected answer. So the person asking a question gets a response and marks that as their answer, even though it may, for whatever reason, be an invalid answer. Part of it could be by adding a comment to the "selected answer" but those are somewhat buried to anyone reading the answer.
If there were a way to show that there is some dispute/challenge from people other than the questioner that the selected answer is the best answer, it should foster some discussion and perhaps even cause the questioner to change their selected answer.
Of course, this way lay flame wars, perhaps, but I'm just using this as a starting point.
Fast and correct, or comprehensive and insightful. (Scroll down to see suggestion)
I do not think that either type of answer is inherently better. A "good enough" answer will solve the problem and get you back on track. An insightful answer will teach you something new, make you more skilled.
The problem is that if you focus only on rewarding fast answers, many of the comprehensive answers will never get posted at all.
As it is now, the quick answers float to the top, and stay there. People do not always bother to check all the answers, and they might not consider the depth of the question, the way the asker would. If a top voted answer is good enough, chances are it will recieve more votes than it deserves, merely because it is voted highest. That is an error of conformity of the reviewing audience.
Unless votes are made in the blind, you are always getting a systematic error. Simply put, here's the three biggest culprits:
That is: People will tend to conform to the majority's opinion. People will only read answers to a certain thread depth. People will tend to agree with "authorities", e.g. people with high rep, many badges, etc.
These are all basic concepts in psychological testing [1]. There are many kind of errors that prevent you from getting correct answers. Here [2] is a wikipedia entry on bias, take a look at Bandwagon effect and Primacy Effect.
The correct way to do it, is blind tests [3]
Note: This only affects people who:
Anyone who just want to see the voting results can do so by clicking "finished voting".
Blind votes:
(1): A clearly poor answer should be nudged towards the bottom, a clearly good answer should be nudged to the top. Otherwise we are not using the expertise of our users. However, to avoid tainting by position, order is determined by vote intervals, with random order inside the intervals.
Those who do not vote
What about users who are only after answers? If you cannot or choose not to vote on a question, all the information becomes visible to you, and you can use this additional information to evaluate the quality of the answer.
By having users only vote on the merits of an answer, the validity of the vote tally will be maximized. In other words, we will know that the votes cast reflect the quality of the answer.
As it is now, the votes reflect something more than a good answer. Two identical answers may get a completely different score. Not because one person was faster in solving the problem, but because they shoved a foot in the door fastest.
How will this affect quick and dirty answers? It will still allow users to get rep for quick answers, but it will reduce the exponential effect of "being first", and also disperse some of the rep towards those who feel they have something to add, despite not being first to reply.
In short, it will be less of an "all-or-nothing" effect to being first.
Note: Please give feedback in the comments. The feedback so far has really been helpful.
[1] http://en.wikipedia.org/wiki/Psychological_testingI know, I am quite late in reacting o this question.
So my answer will suffer with the problem what this post is trying to state
This answer would be the last one in the list, a lot below the highly upvoted answers
Now the solution I would like to suggest for the problem is:
Give priority to new suggestions and answers. I am not omitting the usefulness of the old ones, but we should be soft enough to welcome the new suggestions.
If upvoted questions are given priority over other ones, then downvoted questions should be given minority over others.
The mark-it-as-a-useful answer trick should be used to decide the priority of a good answer and the mark-it-as-spam trick should be used to decide the location of the answer down the hill.