Dealing With Obsolete Content

This will happen sooner than you think. Content gets old. SO never found a satisfying way to make sure content gets reviewed periodically for timeliness, and never even found a good way to handle it when obsolete content is found.


What about bumping old posts, even when they are answered already, together with a note saying something along these lines:

This post has been bumped to the homepage to allow verification of its answers that may be outdated.

Ugh. That works if you have 20 questions in a system. It doesn’t work with 2,000. The main page will rapidly get clogged with old stuff tagged Community. Oh wait a minute, that already happens when old unanswered posts get bumped up.


This is a problem that SO identified a long time ago but balked at attempting to solve.

There are three simple changes to the SE model which I think would be enough to deal with obsolete content:

  • Problem: newer answers receive little attention because they’re sorted near the bottom, so they don’t get voted on much, so they don’t gain a chance at attention. Solution (technical): have the default sorting order take age and vote velocity into account and not just score. See How should we compute post scores?, On the value of scores and votes
  • Problem: there is one way to raise an answer to the top (accepted answer), but only the asker can do that. Solution (technical): have a way for others to push an answer up. See Alternative quick votes, something like Discord's message reactions, Handling "misvoted" content - #6 by gilles
  • Problem: when version 2 comes out, questions about v2 are closed as duplicates of questions implicitly about v1 whether the answers are the same or not. Solutions (cultural): edit questions and answers to include which versions they apply to as relevant; think when closing questions as duplicate about what the question means (does it actually ask the same thing, i.e. is it satisfied by the same answers?) and not just based on similarity of wording.

Part of the problem is that for software, “obsolete” comes in big batches when a new version of that package comes out.

The NetHack wiki partially solves this issue by tagging every page with the version the page was last completely reviewed for. (It gets even more complicated because they also track versioning for several forks.)

It seems like there also needs to be some kind of flag for obsolescence.

1 Like

I’ve been wondeirng whether new answers on older questions (parameters TBD) could get some temporary preferential placement. Sure, that question with 7 answers scoring 10-100 hasn’t been touched at all in the last 3 years; when someone finds it and adds a new answer, show it first along with a “new answer” label. How long, how old, what else should matter? Don’t know.


I’m actually not quite sure what the problem is. When I’m looking at a general list of questions (as opposed to if I have search for something specific), I normally see the most recently “touched” questions, which includes any of:

  • Asked
  • Answered
  • Edited
  • “Community bump” (which I don’t like…)

The only actions that don’t cause a question to move up to the top of the list are comments and voting.

So a new answer already (in SE, obviously we need to decide for Codidact) causes the question to go to the top - the only extra would be to actually say “new answer”.

I was talking about answer sorting on the question page. On SE, we’re told, most people land on question pages via search, not the site’s front page. I assume that will (eventually) be true for us. So the fact that the new answer bumped the question only helps the active community, while highlighting new answers on the question page (for some period of time) helps all readers.


Aha! That wasn’t clear (to me).

Yes, that is a problem. New answers are automatically (and appropriately) 0 votes and normally show up last unless you sort by “Newest” which most people don’t do (and I don’t do except in Code Golf (some of the time) to see new interesting answers).

Showing those new answers first (or even at top “A new answer has been posted, click here” to jump to the new answer at the bottom) makes a lot of sense - I often see a bumped (not “Community” - I ignore those) question and then have to hunt to find what has changed.


I think it would make sense to add a special feature for software Q&A sites where you can mark your post as “Answers might change with new version” such as questions about how to do something in an OS like Windows XP, and then people would ask about the same action for Windows 7, and then 10, or Visual Studio 2008, 2010, 2013, 2015, 2017, 2019 or like Photoshop CS 3, then 4, 6, CC 2017, 2018, 2019, etc.

Answers with updates about new versions should be able to distinguish themselves as “This answer is to the latest version of the software at the time” and enter the version somewhere prominent, so it could get higher sorting position, above all the answers for older versions, and then when a newer answer appears to an even newer version, lower this answer below the new one in turn.

1 Like

If the question asks about how to do something on Windows XP, doesn’t an answer about how to do it on Windows 10 or Ubuntu 16.04 or MacOS 10.5.1 belong on a different question? If there tends to be a lot of overlap, the questions can be linked together. If it’s something that’s truly general and doesn’t vary by OS, there shouldn’t be OS-specific answers, right?


What if it didn’t change in versions 1 to 9, someone asks without mentioning a version (and nobody cares because it’s the same on all versions anyway), and then version 10 comes out and things suddenly work differently?

Also, an answer can be obsolete in another way. For example, in C++98, the following was the standard way to iterate through a container with a for loop:

for (container_type::iterator first = container.begin(),
                              last = container.end();
     first != last;

This monstrosity still works even with the latest version of C++, but it certainly is no longer what people would advise you to write. Instead, you’d use the much simpler

for (auto& element: container)

Therefore the first version is outdated not because it would no longer work (it works fine), but because now there’s a better way, and therefore it is no longer the preferred way to do things.


If an answer is outdated, there should be a “vote-to-outdate” for mid-trust-level users. Then, that answer should be hidden from the answer pool.

A question could also be voted as outdated, thereby outdating all of the answers automatically, with new answers being submitted. The question would not be hidden, but all of the answers would be.

The outdated answers could be viewed with a “view outdated answers” option, but removed from answer count when viewing the question, and the question bumped, so that people can answer it as if it were a fresh question.


There definitely must be a way to see the outdated answers, if only because someone might have to work with an outdated system, and the outdated answers are the only ones that apply.


This only brings up another problem: people’s subjective opinions of what’s outdated and what is not.

The C++11 auto keyword is dangerous and is therefore likely banned by coding standards. So you would delete safe code in favour of potentially dangerous code, not because of any rationale, not because the code actually went outdated, but just because of “OMG new features in C++11 we must use them now”.

Editing old posts for the sake of subjective opinions would be regarded as vandalism on SO.

In what way is the auto keyword dangerous? Not to mention that the new style for loop would be much more clear than the old way even if auto were replaced by the concrete type in question.

And so we can implement votes against outdating too, encouraging discussion.

1 Like

Can this be indicated by discussion in comments if the author will not edit their own post?

It may be difficult to build into a UI or UX ways to differentiate, and allowing the discussion that should usually surround these to provide the necessary context and information may be sufficient.

1 Like

I think we’ve discovered here that there are different kinds of obsolete that should potentially be treated differently. I was thinking of the “this no longer works” kind, but there is also “there is a better way now”, “nobody does that anymore”, and several shades in between.

I definitely think there is value in preserving how to do something in older versions of software. Not everyone is using the most recent versions of everything all the time, and it can also be useful for people wondering why some old code is doing something in a certain way.

1 Like

Perhaps, then, clearly flagging applicable versions is one solution to all of this.

1 Like