As we know, on SE, there’s the concept of “accepting” an answer, where the OP of a post can mark an answer as the “correct” answer, and pin that one to to the top of the answer list, as well as giving the writer of the answer an extra reputation boost.
Do we need or want a similar system on Codidact? Do we need a way to mark a single answer is the correct one, in any sort of form?
Personally, I believe that ideally, the writer of a question should be able to mark one answer as “this solved it for me” or “correct”, but that this should not outweigh community voting at all. As in, the selected answer would get a marker that notifies people that it is the one that the OP has chosen, but that it should not be given prominence over higher-voted answers.
I am not a big fan of “signed votes”, however, I won’t oppose it. Combining it with accepts is a quite nice idea @tuggyne, though.
If we have one, I’d recommend not pinning the answer to the top, but just giving it a check mark/notice.
However, one of the bigges advantages of accepted answers is, that the asker can approve of posts, which helped them. Given, that per our MVP privileges spec (User Privileges · codidact/docs Wiki · GitHub) allows askers to upvote answers to own questions, this shouldn’t be neccessary.
I think something more is still needed. The OP upvoting an answer means This is a good answer or thanks for the help. This can be applied to multiple answers to the same question. This is different from This is the one answer that really solved my problem above all others.
From the perspective of the OP and the people who answered the question, having a “solved” mark of some sort is useful.
From the perspective of the rest of the community and all the future Googlers, it’s not. The answer might now be outdated, or it might have been wrong all along (but the OP persisted with a misperception), or it might be a matter of ideology rather than something verifiable (like “does the code work”).
Having a way for the OP to mark an answer as “solved my problem” is fine. Giving that designation any special weight – in score, placement on the page, or rewards for either party – is not.
The other people who have answered (or are considering answering) the question, so they know whether to bother to answer (or to modify an existing answer). In some cases they may still do so - if they feel the Accepted Answer is “wrong” or “suboptimal”, but it provides at-a-glance guidance from the OP.
Future people reading the question can zoom in on the Accepted Answer. Particularly for programming questions this provides a way to see “what worked for OP and is therefore likely to work for me if I have a very similar problem”. Less helpful for IPS, Workplace and other more typically subjective questions.
But I definitely agree on not giving it special placement on the page. If the Accepted Answer is any good at all then it will be somewhere near the top - and therefore easy to find - but if it is ranked low (e.g., even 2nd place but 1/2 the score), having it at the top is misleading. So place based purely on score (whether net or weighted as previously discussed).
But that presumes that there is always that one answer that helped. But in my experience, often (mostly, but not exclusively, in writing and worldbuilding) it is very hard to select one answer, because several answers give several pieces to the ultimate solution.
I’m now too lazy to search for one of those occurrences, therefore let me give a made-up programming example: Say you asked ”How do I achieve foo in language X”. Now you get one answer that gives a functional solution that almost fits your needs, but not enough explanation that you could fix it. Another answer gives an in-depth explanation, but no concrete solution to your problem. However thanks to that explanation you are able to adapt the solution of the first answer to your needs.
So which answer was it that helped you? The first one, giving the almost-solution? Well, it certainly helped (because it was what you derived your ultimate solution from), but had you only been given that answer, you wouldn’t have solved your problem.
Or was it the second one, with the in-depth explanation? Well, sure, that helped too, but then, without having the almost-sufficient solution from the first, you would have spent much more time getting to a solution based on that information alone.
Thus it was both posts together that helped you get the solution to your problem. But the accept mechanism demands that you choose only one.
I do agree that it is useful to mark a question as resolved. I’m not sure it is useful to mark an answer as the one resolving it.
This can sometimes be the case, but most of the time one particular answer was the best from the OP’s point of view. I agree with others that this shouldn’t effect sort order, as it does on SE, but there should be something like an obvious green check mark. In cases where multiple answers helped, pick the one that helped most. This system doesn’t need to be perfect to be useful.
As primarily an answerer, I found it very useful to know up front whether a question was “solved” or not. My volunteer time to write answers is finite, so I want to spend it for the highest impact. On average, that is better served by answering questions where the OP hasn’t said OK, thanks. Got it. Done.
For that, marking questions as resolved would be sufficient, as when seeking for unanswered questions, you don’t care which answer got the check mark, you only care that the existing answers sufficiently (from the asker’s view) answer the question.
Note that not being able to decide which answer to accept may cause resolved questions to go without checkmarks.
If the OP has the choice between a public and a private vote of approval, that’s all that’s needed. In most cases, it’s unreasonable to assume there can only be exactly one most correct, most helpful answer, and many askers express their difficulty in selecting only one answer to accept. It is entirely possible, and in fact fairly common, that more than one answer is not only useful, but useful enough in its own right to completely satisfy the asker’s need and comprehensively explain all that’s needed.
As @celtschk points out, it may also be the case that no one answer is a complete and correct resolution to the question, despite the question being completely and correctly resolved (at least as far as the asker can tell). In this case, separating “this question has been solved” from “this is the canonical answer” is also helpful.
Ideally this should be done by the community rather than the asker.
Any sort of reliance on an action only one single user can do is always going to be a problem.
As a starting point (probably not required for the MVP), I would propose simply basing this on whether any answers have a score of more than 0.
In future we could, if required, make it more complex by, for example, raising the required answer score to some number above 0 or set a time delay, so any answers newer than X hours aren’t considered when looking for positive score answers.
If there’s a need to have a concept of a question being solved that can’t be captured by answer score, other users should also be able to mark a question as solved. Although this would probably indicate that voting isn’t working as it should.
Or there should just be a way to mark a question to temporarily make it more prominent in searches or the front page or wherever (kind of how editing bumps a question on SE, but more significant and for a longer duration than this).
I disagree. If I ask a question, I am in most cases the only person who can really decide what is the “right” answer. Yes, that is reliance on one user - but it is the user who actually matters because it is the user that started the process by asking a question.
Basing “acceptance” on “any answer > 0” or using “highest positive score answer after ‘x’ time” or whatever just doesn’t work because there are plenty of topics where:
Multiple answers may be given that are all highly voted *but which don’t solve OP’s problem"
An answer may generally be “best” but in OP’s specific case not actually be the right (functional → acceptable to OP) answer.
There are exceptions: I have one safety-related answer that was very highly voted (thank you HNQ) but which will never be accepted by OP because OP was looking for a way around the safety rules and I was explaining why the safety rules matter and why OP must not cheat the system. But that’s OK: Anyone looking at the Q&A will see my answer highly voted and quickly figure out why and will see that OP did not “Accept” any answer and understand why.
Maybe, but askers often don’t accept answers because they abandon their accounts, forget about posts, may just be looking for something that doesn’t exist or for some other reason.
I know I have, at times, waited for an answer saying what I want to hear despite knowing one of those posted is probably the right answer.
In some cases OP also accepts an answer considered to be wrong / bad by the rest of the community (i.e. it has a negative score).
In the same way the answers don’t solve OP’s problem, they may also not solve some other user’s problem. If we want to have a mechanism to check whether answers solved OP’s problem, we should also be able to check whether there’s a user whose problem wasn’t solved by the answers. Requiring them to ask another question isn’t really ideal if their question is the same. If their question is in fact different, they should ask another question (but this also applies to OP).
If people only post solutions which don’t solve OP’s problem and others upvote them, I’d say in general the question wasn’t asked well. In such cases it probably makes sense to slightly edit the question so the answers solve the asked question and then ask another more specific question.
Allowing a question to be marked as “solved” solves one part of one problem, but not all of it and relying on it creates other (arguably bigger) problems.
I think the solution to that part of the problem is don’t make the Accepted Answer automatically show at the top. If Answers are ranked by votes (straight Up - Down or weighted/calculated doesn’t matter as long as it is consistent) then the Accepted Answer should up where it belongs based on votes. If Answers are based on Recent Activity or any other criteria then again the Accepted Answer should show where it belongs - no bump based on Accepted. But being able to Accept is a plus for OP (i.e., they can say “that’s it!”) and in most cases gives some meaning to other users who look at the answers later.
But only the asker is in a position to know whether it really helped with the original problem. Yes, the mechanism isn’t perfect, but it’s still useful to know whether the OP thinks this question is “done”, or another answer would be useful.
Think of it from an answerer’s point of view. You want your limited and fixed volunteer time to be used as meaningfully as possible. It is useful to know when the original asker thinks the question has been “solved”, because then writing another answer is likely to be a waste of time relative to writing an answer to a fresh question. Allowing the volunteers to optimize their time is important.
Then there is also the gamification angle. I often took it as a personal challenge to write the answer that the OP would consider the best.
I agree that acceptance shouldn’t change the sort order, but something like a prominent green check mark and some extra rep for the answerer make sense.
I think we definitely need some way to mark questions which have good, complete answers.
I’m not sure where that should come from or how it should look, but I know what I don’t want: that thing at Quora where there’s fifteen versions of a question and each has five or six half-hearted guesses none of which are actually any good and now I’ve just wasted my time.
I don’t see a compelling reason to differentiate between the asker and someone facing the same problem at a later point.
Someone having the same problem would certainly know if an answer works for them.
Giving the asker the ability to say “this answered my question” without giving this ability to others encourages posting an exact duplicate or a minor variant that really should be covered in the same Q&A. It may also encourage the feeling of ownership over a question, which may make users feel answers on another Q&A doesn’t answer their question since it’s answering someone else. I have seen instances of users being happy with an answer on their question that’s almost a word-for-word copy of the top answer on a question they rejected as a duplicate (although this may not help that much with that problem).
Not that I know what all of this should look like though.
I’d agree that simply basing this on voting isn’t perfect, as a lot of votes (the majority of the initial votes) are by users not facing the same issue, who may very well not see the problem with any given solution. On the other hand, a lot of experts should be able to see what would and wouldn’t work based on their experience and knowledge, so this should only be a problem in very rare cases. This assumes a sufficient percentage of voters are actually experts, which may not be true, but that would be a much bigger problem than what’s being discussed here (we have elsewhere discussed the idea of allowing experts to give some sort of “stamp of approval” or other solutions to try to deal with this).
As an answerer, this isn’t all that important to me. I would post an answer to something if I feel it hasn’t been adequately answered, regardless of what the asker feels or whether they’re even still around.
Also, in my experience, answers with even just a single +1 provide a sufficient answer to the question most of the time (at least to the extent that I can see and the asker hasn’t indicated a problem with it; they’re usually no longer even around to accept that answer or an answer I could post).
But I accept that not everyone may feel the same or may have different experiences.
I would suggest that if the OP upvotes any answer, you mark the question as having a valid answer. Nothing else and no marks on answers or point benefits, etc. Otherwise “acceptance” becomes a point of contention as it is on StackOverflow.