4

A lot of questions seem to be answered at the time an answer is posted, but a year or two down the road there are clearly better answers.

Is there any mechanism for flagging a question as one that needs 'revisiting', or alternatively marking answers as 'expired' -- as an alternative to posting new questions along the lines of "I've seen answer X to question Y, but X is outdated and I was wondering if there were newer and better solutions?"

Some question clearly have a 'best answer' that's regularly updated essentially as a wiki. Other questions are clearly have one-time final answers. However a large segment clearly follow the model of 'this is the best answer today, but check back later', particularly for questions about actively developed systems (e.g. best answers for python 2.X may not be the best, or even possible in python 3.x).

One potential consequence of this 'revisiting' / 'expiration' mechanism is a flood of redundant questions that have already been answered.

I'm just curious as to what others think of this, and whether perhaps it's been thought of before -- though I couldn't seem to find anything.

1
  • 1
    +1 - Good question, although I think the solution is to ask more specific, targeted questions.
    – jmort253
    Commented Mar 30, 2011 at 4:15

3 Answers 3

4

Framing

I'd frame the functional issue as follows:

Most questions can be categorically divided into three levels of "answered":

  1. Timeless: Questions with a timeless best answer, which is unlikely to be improved or updated in the future;
  2. Revolving: Questions with a "best answer" today but in the future there will be a "better answer"; and
  3. Wiki: Questions that are constantly being improved and updated.

Here are some examples of each:

Timeless best answers

Revolving best answers

Wiki

The functional issue is that when people search for answers to so-called revolving questions the best answer may not be found on Stack Overflow — the information may be outdated.

Proposed solution

Here is a suggestion for a solution:

When a question reaches a certain age, eg a year of age, allow users of sufficient reputation to flag a question for a "revolution". Once a sufficient number of revolution flags have been placed on the question (e.g. five), the question is "revolved".

A question is "revolved" by removing all answers to the question. When a user looks at a "revolved" question though it will say a remark such as:

This answers to this question have been revolved on the basis that users X, Y, Z believe that changes in circumstances have lead to the possibility of better answers. You may wish to view the answers from previous revolutions [link] before answering this question.

History of revolutions

At the same time as a question is "revolved", there should be a "History of revolutions" link and corresponding set of pages that show prior answer sets.

Votes and reputation

As the answer to a "revolved" question may be built upon previous answers, and to prevent abuse by those who regularly revolve a question, it may be worth considering reducing the value of votes on revolved questions e.g. by half the value of votes on first-instance questions.

Alternatively, and pointedly to reduce abuse, those who flag a question for revolution could be denied reputation for any answers they provide to that question.

Conclusion

While not a critical feature, this issue will become more germane as Stack Overflow – and its repository of answers – matures, and the suggested solution is meant to serve the following purposes:

  1. Reducing the number of near-identical questions occurring over time with different answers;
  2. Reducing the chances of less-than-ideal answers are returned in search results;
  3. Enhancing the functionality of "this is a duplicate of another question" by centralizing the discussion regardless of when the question was asked;
  4. Decreasing the number of "dead answers" that are no longer applicable;
  5. Revitalizing questions related to systems that have been changed since the question was first answered.
3
  • 2
    wow...+1 for a great suggestion. Very well explained with intent and purpose. Compelling arguments.
    – IAbstract
    Commented Dec 6, 2010 at 2:13
  • 3
    Just one thing: Answers added before the question is revolved but after the first revolve vote shouldn't be hidden—it should be assumed that those answers are up-to-date.
    – waiwai933
    Commented Dec 6, 2010 at 4:55
  • @waiwai933: Good idea. There ought to be a cut-off of "new" versus "old" questions. In any event, no questions should be deleted, I don't think -- and perhaps "old" answers could be flagged to be copied/transfered to the new revolution. Commented Dec 11, 2010 at 2:45
2

It's worth pointing out that all of the revolving examples actually are timeless answers if the questions are thorough and specific. The problem isn't that questions are revolving. The problem is that the questions are not as specific as they could be.

For instance, if this question were asked with a specific version in mind, then it would be classified in your "timeless" category:

Python reverse / inverse a mapping — The best answer for Python 2.X is a dict(), but in Py3 it's a map comprehension.

If the question were: "What is the best way to invert a map using Python 2.X?", then the answer "use dict()" would be a timeless answer, as the Python developers are not likely to retroactively update or release a new version of Python 2.X anytime soon.

What is the best way to parse JSON in Google App Engine Python SDK 1.2?

The answer to this question will always be the same: django.utils.simplejson.

What is the best way to parse JSON in Google App Engine Python 1.4.X?

However, the answer to a new question specifically targeting version 1.4.x, which we'll assume uses Py3, the answer to this question should again always be the same.

Now, the question we must answer is: Do we need to include this level of granularity and detail in questions to prevent them from becoming incorrect? Will it be better for the question to become obsolete because no one cares about an old version of App Engine, or is it better for the question to be incorrect?

7
  • i have at times come accros a question marked c# where the answer doesn't work because i use c# 4.0 and the syntax changed from previous versions. knowing that the question and answer where from 3.5 would have been usefull.
    – Andy
    Commented Mar 30, 2011 at 8:15
  • How do you know what level of granularity to use? If you didn't know that Python 3 had a different answer, how would you know to put the "2.x" in the question? And how would you ever know that Python 2.7 has the same answer as Py3?
    – Gabe
    Commented Mar 30, 2011 at 8:17
  • @Andy: It's extremely unlikely that code which worked in C# 3 doesn't work in 4. Are you sure you don't have that backwards?
    – Gabe
    Commented Mar 30, 2011 at 8:18
  • @jmort253: Thanks for the interesting thoughts. I anticipate a few issues with a re-categorization of the "revolving" class as suggested: (1) it's a difficult-to-impose end-user requirement, (2) alternatively it's a labour-intensive editorial challenge, (3) it's often impossible to predict at the time of the question that the answers would become obsolete in the future, and (4) this wouldn't reduce the number of near-duplicate questions/answers and (5) the "best" current answer may not be in the search results. Those issues aside, this is a valuable insight into the nature of the problem. Commented Mar 30, 2011 at 12:58
  • @Gabe & @Brian - It's not really a question of seeing into the future, it's a question of just simply including those details in your question. Even if Python 2.7 and Py3 have the same answer, I should still specifically state in my question that I'm using Python 2.7 or Py3. Not only is this a good practice here on StackExchange, it's a good practice when posting bug-reports on forums. I agree retroactive updates is difficult, but 10k users could help by encouraging question-askers to include more detail so that future questions don't suffer from these issues.
    – jmort253
    Commented Mar 31, 2011 at 6:06
  • @jmort: So if there's a question "How do I do X in Py2.6?", how is a person supposed to know if that still applies to Py2.7?
    – Gabe
    Commented Mar 31, 2011 at 6:14
  • @Gabe - lol, you caught that too. :) Lucky for us, answers and questions can be edited, and we should encourage the community to possibly update questions so that they include versions the question would apply to. But then I guess that leads us back to the question I posed in my answer: Is it better for the question to be obsolete or is it better for the question to be incorrect, while we wait for someone to edit it?
    – jmort253
    Commented Mar 31, 2011 at 6:23
2

Currently there's no mechanism for marking an answer obsolete, other than down-voting. However, you have to bear in mind that some people still have to work with older technologies for all sorts of reasons so what you think is outdated may well be just what someone else needs.

There's always scope for providing more up to date or potentially better answers, so if you can, do so.

This will bump the question to the top of the active tab (and probably the interesting tab too). If others agree they'll up-vote your answer. The OP may even see and switch the accepted answer if you're lucky.

As of September 2021 there's an experiment to see if unpinning the accepted answer makes any difference to how new answers are voted on and used. If this provides good data it may lead to a permanent unpinning which will allow newer, better answers to rise to the top of the page and be a lot more visible.

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .