76 comments

[ 4.6 ms ] story [ 116 ms ] thread
If they are not going to pin the accepted answer to the top, do they even need an "accepted answer" feature any more?

I guess it provides closure that a question is "done" so it's still useful.

Maybe they need a different method to accept answers, also based on votes?

Yes. Having your answer marked as the accepted answer gives you rep. Rep is the lifeblood of the platform.

If you take away accepted answers, then the 10 rep reward (might be more now) goes away, which means incentive to answer potentially low-popularity question (note, not low-quality, just those that will not be seen often) will diminish and thus it'll lead to people writing highly senationalized/clickbait-ey questions, even further ruining the content quality of the site (something SO has been struggling with the last several years).

What would the difference be if you were awarded points to the person who was excepted, but didn’t necessarily show the rest of the users who that was?

If anything they have to be at least a portion of people who were up vote the excepted answer over better answers, just because it has the checkmark. Just like if a comment section shows up or downvotes somehow, they can be intended to influence groupthink.

EDIT: Answered with two good comments below this, no need for me to address them separately.

Because you bump into the problem of transparency. SO has always had a transparency-first attitude - that is, until the new owner came along.
> What would the difference be if you were awarded points to the person who was excepted, but didn’t necessarily show the rest of the users who that was?

People might then post more answers that are not needed, possibly only varying in a minor detail to the accepted answer in which case they should instead add that detail as a comment or (if they have sufficient rep) a direct edit to the answer.

(comment deleted)
We've been asking for this for years.

> There was a 43.6% decrease in users copying from the accepted answer when the highest-scored answer was shown first.

Good. As much as I hate that people copy and paste without reading through code and understanding it, if they're going to it, I'd rather them not copy potentially insecure stuff.

For those who don't fully understand - the "accepted" answer (the one that helped the poster of the question, the OP) used to be shown even before an answer that was upvoted more than it - even in cases where the spread is hundreds or even thousands of rep.

The problem with this is that a single person (the OP) got to dictate which answer on a potentially frequently viewed question got the most attention, and by proxy, which code got copy/pasted the most.

This, despite another answer probably having better, more secure, more thoughtful, or more performant code as reflected by the hundreds of people that upvoted it.

Another side effect was that a question that might have had a perfectly fine answer that was accepted back when the question was posed in 2010, now might be very much not the right approach. I feel like I frequently see questions where down in the other answers are multiple answers posted in the intervening years with much simpler and more readable answers. Or even if there isn't some new way of performing the solution, there might just be a reason why it's become the wrong question in and of itself and an explanation for why this is the wrong road nowadays is provided.
This is a very important point - many questions on SO that come up first in Google results are VERY old, and the accepted answer may no longer apply with later versions of whatever is being asked about, and the original poster may be long gone or even dead.
But preserving the old solution is also important. Sometimes we have to maintain old versions so it's very helpful to be able to look up answer from that time.
That information should appear towards the bottom of the answers, not the top.

There's a defacto curation of SO answers now based on oldest answer on top, which is almost backwards. Which is a flaw of voting systems.

Reddit has an analogous problem where the first person to make an widely accessible quip gets voted straight to the top, with generally a trainwreck of low effort chuckles and puns hanging off of that. If you want lots of reddit comment karma you can easily just read some popular subreddit by 'new' and make those kinds of low effort / accessible comments.

I wish SO would expire questions. It would go a long way toward making sure the answers that come up in search are current. Popular questions would get asked again organically in short order.

It would mess with the way they do points, but so what? The goal is to be the best resource for developers; the point system should just be a tool for doing that.

They would not have to actually delete old questions, just kill their search rank so newer questions take precedence. Can be done by assigning a new URL and noindexing the redirect from the old one.

Or google and other search engines, which probably special case SO already, could weigh the age of the questions and answers when ranking results.
They probably do? Just like for news articles?
StackOverflow built itself as a Question and Answer site and you can see the results of that original concept.

Had they instead built themselves as a symptom and treatment website, much of the problems that they have had would have gone away.

The original asker should not have nearly as much power as they do. Duplicates would instead be other symptoms. If you had a cough 5 years ago, come March of last year the cure would have changed for the same symptoms. But since SO is a question site, they would not have responded to such.

> We looked at users who copied all or part of any answer, or users who took any voting action (upvote, downvote, etc.) on any answer.

Huh, I probably should have realized it, but the idea that Stack Overflow was tracking whether I copy an answer had never occurred to me.

(Mostly joking, I hope: I guess they could monitize that info for Stack Overflow Jobs, by certifying that a candidate has a low rate of copying answers!)

Tracking user's interactions with the site (or any site out there) doesn't have to be related to monetization. It could actually be part of SO's mission to make the site better and more useful to its users.
That was actually added for an April's fool joke that pretendend that you only had a limited number of copy/pastes. I assume they simply reused that code for this experiment.
Lots of sites track your mouse movements and key log you.

Letting Javascript initiate connections was a huge mistake.

>There was a whopping 61.6% increase in users copying from the top answer when the accepted answer was unpinned and the highest-scoring answer was first in the list of answers.

I hope the users will still at least be curious about the accepted answer in such cases, popularity doesn't always mean it is better. But overall, I think this change is better.

As SO is aging, the most popular answer is almost always the better one for answers from before ~2014.
Maybe just my impression, but I usually find the accepted answer more accurate than the top upvoted answer. Usually the accepted answer captures a more nuanced understanding of the original question, even if it isn't necessarily as clear and straight-forward as the top upvoted answer. Certainly not always the case, maybe like a 55% thing
This is a really positive change. There are a lot of abandoned questions where the accepted answer was correct at the time it was accepted but is no longer correct. This allows the community to correct that rather than relying on the question asker.
I like the change, but does it make the “solution” pin / check mark worth anything at all now?

Does it matter to me that - at the time they saw it - the OP liked this solution? There has always been a lot of grey area there. I guess it’s nice to award some points to whoever OP liked, but now I’m wondering if they need to show it at all.

EDIT: Changed my mind and agree with lower comments. I still think there is ofcourse a subjectivity to "what answer this guy liked at this time", but everyone had good points.

I think the accepted answer is still an important signal. I've seen cases where the highest voted answer does not necessarily respond to some nuance in the original question. It may be an overall better approach to the general matter, or make an important point about it, but not necessarily an answer to the specific question as asked (and when asked).
Accepting a specific solution adds clarity against ambiguous questions and sidetracked answers. A resolved question can then be promoted to users searching for solutions.
If the accepted answer is also the one with the highest score, it will still be at the top. If it's not, then that's maybe a signal to read the question and answers more carefully before using them.
I see this as further evidence that Stack Overflow is dead. Questions have grown old; answers refer to libraries and language features that are deprecated; it is almost impossible to remedy the situation, because new related questions are closed as duplicates, and new answers to old questions will never bubble to the top. The best you can do is add cautionary comments to outdated answers.
There are further ways to liven things up. A good one would be to decay scores over time, in an exponential fashion. It's a far more complicated way to rank results, because you have to keep track of a distribution of upvotes in time, but it would stop skewing things so heavily toward "incumbent" answers.
Yes, there are good ways to do it from the administrators' side, and your idea is excellent. I meant that from the users' perspective, cautionary comments are about the best you can do.
This is probably like what reddit does with its "best" sort option or other sites do with "popular"/"hot"/etc.
Communities grow and shrink over time. Stack Overflow hasn't figured out a good way to deal with this.

There are two conflicting purposes going on here: the need for archival, and the need for discussion. Over the course of 10 years, its clear that some information should be archived, while other material should be rediscussed and reupped.

I'll plug my "idea" again (just an idea guy, lol). Which is that question/answer sites need to have an "epoch period" of sorts. Back in the 90s, I used to play a browser-based MMO game called Utopia (and its sister game: Earth 2025). Every 6 months, the scoreboard would be archived and the game reset.

The idea is: players come and go. You need a time for players to "leave" (ex: retire for a season, or permanently). But you also want to keep connected players together (ex: a kingdom of 20 players may have become friends, so you want to keep those social connections).

Resetting the game from scratch every few months meant that all players were nominally on equal grounds. It also allowed the game to change its rules and rebalance from update to update (maybe some strategies were too strong, or too weak).

Q&A sites would benefit from this. If a question is renewed in a later epoch / season, maybe its truly different than the historical answer from 5 years ago.

------

StackOverflow also treated its upvotes/downvotes like a game. I am convinced that this causes long-term issues in the community. Resetting these points back from scratch (with maybe historical notes on former points) would go a long way towards determining who is or isn't active and at which times. (Ex: someone may have been highly active from 2014 to 2016, and the archives would indicate it. But that doesn't necessarily mean that they're well-versed in 2020-2021 "season" rules or culture)

Many online games have a season model now, and SO at least partially gamifies developer Q&A, so this tracks.
Completely off-topic, but I would love a modern version of Utopia that doesn't suck :)
>and new answers to old questions will never bubble to the top. The best you can do is add cautionary comments to outdated answers.

I always check answers for such cautionary comments. And if they point to another answer, I upvote it and downvote the original. So I'm not sure "never" is accurate such that SO should be considered "dead".

I use SO every single day. It’s alive and thriving, and I’m happy for that.
I asked a question about Redis back in 2010 and it’s now a popular question that keeps getting upvotes to this day.

I accepted one of the answers in 2010, but then over the years after gaining more experience in Redis myself (painfully might I add) I later realized that a more recent answer actually is a better solution.

So I went in recently and changed the accepted answer to the more recent and better one.

I felt weird about doing this given that rep points are involved, but between having someone lose rep points vs a larger group of people potentially going down a sub-optimal path, I chose the former. Anyone else feel weird about this?

Don't they get points for having the accepted answer on a popular viewed question? So they were getting points for several years?

Asking, as not totally up to date on Stack Overflow's points awarding algo.

Yes, points are accrued over time and never go away unless the source of the points (i.e. upvotes) goes away.
so in that case despite having a solution that was lesser than the other solution they accrued a lot of points over time? Sounds like they would have nothing to feel sore about.
I's only 2 points for an accepted answer, don't worry about it.
The recipient of the accept mark gets 15. It's 2 for the awarder.
15 is nothing though.
As the saying goes, "A billion here, a billion there, and pretty soon you're talking real money."
These are fake internet points, I don't think that warrants potentially misleading future developers.
I definitely overall agree, but on StackOverflow they aren't just fake internet points - they give you real privileges on the site
StackOverflow points are quite valuable IMHO.

I haven't used the site in almost a decade, but I posted a few extremely valuable answers back around 2010 about stuff like how to redirect a request or round a number in SQL (/s), and over the decade these stupid answers have netted me thousands of points, keeping me in the top few % of site users. As the quality has fallen off and the main focus has shifted from programming to meta-pedantry I've completely stopped using the site aside from what links Google takes me to.

The points however, are extremely valuable still. Whenever I have a tricky problem, I can post a question with a large bounty and dozens of strangers from around the world will spend countless hours of their time doing research and writing up multi-page solutions completely for free. Of course half the time the act of writing out the question makes the answer obvious, but still.

Having said that, I still think the quality of answers was better 10 years ago than it is today even with a bounty.

OMG! Those fake internet points mean people's jobs!!!!

Sorry. I feel better now.

My most highly upvoted answer on SO is something from 10 years ago that I just updated with an addendum that nobody should listen to anything I had to say and should go with the other answers.
> I felt weird about doing this given that rep points are involved, but between having someone lose rep points vs a larger group of people potentially going down a sub-optimal path, I chose the former. Anyone else feel weird about this?

Should rep points decay over time? Or accrue for the duration an answer is still relevant (for low level questions especially, the best answer might stay so forever if dealing with a specific CPU architecture for instance).

Same, I got in early with explaining how to do a callback. It trumps all my other answers.
I think those are just fake, right. I mean 'fake Internet points'. Whatcha gonna do with those?
One of my peeves has always been the accepted answer is one of those "That's not possible" type answers, only to become possible later on with a newer release.
Hopefully all of the JavaScript questions on how to do things won't have all the top answers be how to do them in jQuery now.
This is possibly a move in the right direction. The problem, as I have learned, is that SO is 100% useless (not 99%, actually 100%) when trying to learn anything related to the web. Any question I as a beginner have is already answered, and the answer is almost certainly wrong or suboptimal.

Thankfully there are lots of other good resources, most notably MDN.

The only solution I see is to give web questions a lifetime of something like two years.

I very much disagree with SO being useless. If you find an answer that is quite old, why don't you just scroll down to see if there's a more recent one?

I usually find it quite easy to evaluate which of the two is the better answer then.

> If you find an answer that is quite old, why don't you just scroll down to see if there's a more recent one?

Why are you assuming I don't do that?

Rather than spending my time doing that, why not go to an authoritative, updated source like MDN to begin with?

Because most of HN users also make their bread and butter by copy pasting from SO. The Venn diagram is almost a circle.
In most case, you'll also find a highly upvoted comment just below the old answer pointing to the more accurate/recent one.
I see you're an economics professor with an interest in computation, and perhaps learning to program? Awesome!

Ask any experienced programmer how often they use StackOverflow, and they'll tell you daily. It's an invaluable resource to our community and we often wonder how we got along without it before.

In particular, it's great for highly specific questions about very niche things. Like, with this version of this library and in this stack, this very odd behavior is happening and I only see it in IE8, what could it be? That's not something you'll find and answer for on MDN. MDN is a fantastic reference resource when you know what you're looking for and need the details, but it's not a Q&A platform about anything.

SO is not perfect, sometimes you have to dig for the right information (something this change is trying to improve), and perhaps it's not ideal for beginners, but I wouldn't want to live in a world without something like StackOverflow, and would be significantly less productive

Seems like it would be not unreasonable to have some sort of aging built in. Since I suspect reputation is a major factor there utilize all votes for rep, but for answer relevance gradually reduce the impact of votes based on their age. There'd probably need to be a way to mark 'evergreen' or perhaps 'stable' answers where that decay would be slower, or simply allow people to (with limits?) go back and refresh their votes on articles.

Separating historical reputation from answer relevance ranking would be an attempt to reduce the perceived value to individuals of tampering with scores - refreshing a vote on an answer wouldn't impact overall reputation.

Makes sense, the accepted answer is 1 persons vote (the asker) which was given more prominence over everybody else's votes.
Because of this the top answer to one of my questions is actually a comment. I ask how to do something. The top answer starts by asking "does it matter?", argues about the necessity of doing it and concludes that yeah I totally can do it if I really really want to. Without specifying how. Moderators agreed it wasn't an answer but left it there as a "frame challenge".

This copy paste metric may be valid on stackoverflow itself but other stackexchange sites are different. Many have nothing to do with code.

Yeah that stuff is annoying. It's not wrong to ask for clarification when the question is lacking context, but there are a lot of cases where people really want to answer a different question than what was asked.

I remember one question about std::bitset using 8 bytes when it could use 1 byte, and answerers basically laughed at being concerned over 7 bytes, like they'd never considered that you might quite reasonably be using millions of them.

This is great. There are so, so many instances I've found just in the past couple months where a question would have an extremely outdated (or just plain bad to begin with) accepted answer, with a good answer that has more votes just below it.

That and dumb/irrelevant/misguided comments have been my biggest annoyances as a passive user of SO.

It's pretty simple really. The accepted answer was chosen by a single person. Not only might it not be good, it's entirely possible that it's not even right. Statistically the one with the most upvotes will inevitably not only be the best, but is also the most likely to be right. And hopefully it can even self-adjust over time. The whole idea of an OP "accepted" answer is a sketchy feature from the start.
> The whole idea of an OP "accepted" answer is a sketchy feature from the start.

I think that's highly dependent on the type of question being asked. For questions where a person had a specific problem, accepting the answer was a way to indicate "yes, this fixed my problem" - and by definition, only the OP can decide that.

Now that doesn't quite fit for "best practice" questions where the answers might evolve over time (hence the change being discussed here), but the "accept" mechanism doesn't discriminate.

Yes, good point. And I think that goes back to how one views SO. I've always tried to view it less as a question answer service (with the answer being the end goal) than an encyclopedia that gets written through the process of questions and answers (with the encyclopedia as the end goal).
Great, but also add a time decay factor to penalizw answers tgat have not been upvoted recently to mitigate the graveyard effect.
The biggest problem I tend to hit nowadays with Stack Overflow (and other Stack Exchange sites) is when someone says that while doing $X they ran into problem $Y and want help with $Y, and none of the answers tell how to do $Y. They all say that for doing $X a better approach is to do $Z instead of $Y.

That's great for the person who asked the question, because presumably doing $X that they actually care about.

But I'm not there because I'm doing $X. I'm doing something totally different that does actually need $Y.

I've had times where I've found a dozen different SO questions asking about how to do $Y and ever damned answer to every damned one of them was a "you don't need $Y for what you are doing...do this instead" answer.

Feel you, it's infuriating and a waste of time to even open the link to such questions just to find those kind of answers.
Also that I don't have the karma to fix anything, and on other websites it's not even possible for community corrections.
I remember when I used to post to stackoverflow (havent in years at this point), if I asked a question I would literally get harassed if I did not mark of the answers as correct. One of many reasons I stopped participating. It's a user hostile experience.