Dealing With Obsolete Content

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

Then to add to my suggestion:
Outdated/Deprecated Content, i.e solutions which no longer work, should be hidden with a version number applied.
Less effective solutions which are either unused or inefficient still work so should still exist in obvious view, but the default sort should be “newest” meaning newer solutions can now gain traction.

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

Yes, generally you’d want as many domain experts as possible participating. One big problem with this however, is that the ‘clique’ of the relatively few users who actively moderate the site aren’t necessarily as good as they think they are (cough the Documentation project cough). Therefore the site needs to expose such discussions to as many visitors as possible, so that the expert who just briefly visits the site and couldn’t care less about moderation chores still can have a say.

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.

Perhaps a “best before” date? As in, if the post is older than 5 years and it has not been reviewed/revisited in x years, it gets less attention or gets hidden away.

Pretty sure we’re directly separating experts and moderators, so this should be fine.

Outdated answers should not be hidden, merely de-emphasized. Heck, a lot of what I use SO for is ASP-classic; a language that has been dead for 20 years

5 Likes

@Strider In fact, the old stuff is often the most valuable content for many users - docs for the newest systems can be found easily elsewhere.

4 Likes

Yes. Exactly why SO is so incredibly useful for ASP-classic. I can find PHP info lots of places; but not a lot of people are dedicating sites to dead languages. SO has been invaluable for working on an old site I manage. (Also, the ASP-classic posts have a real champion in one particular use I see there all the time. If that one person leaves, SO will lose a huge chunk of its usefulness on that topic.)

1 Like

Strongly agree with this. The old stuff is often extraordinarily useful.

Has there been discussion about answer tags? I’m not sure of a nice UX/UI way to do this, but these could be as simple as “historical” vs. “current”, or perhaps could relate to software versions, as an example…

3 Likes

There was an inconclusive discussion (somewhere…) about answer tags, with software versions being the case that was raised. I think we should put this on a list of things to explore after MVP and after we have some communities up and running, so we can benefit from their input about how (or whether) they would use it. They’ll probably have some suggestions that influence how we implement it.

For example: same tag set as questions or different? Do tag edits bump? Do they get culled/combined at some point down the road, because version 9.3.2 vs 9.3.1 is important when it’s new but not when you’re up to version 42? And probably lots more I haven’t thought of. This cries out for use cases.

3 Likes

Thanks for the info, cellio. Good questions, all.

I’m glad to see you here, unbowed, taking this on. It makes me happy :grinning:


(P.S.: I found the conversation you mentioned (or, at least, a conversation on a similar topic) here.

3 Likes

A lot of the people .who is looking for answers will most likely search for those answers in a search engine than using the site’s search capabilities, I agree. So the idea of “last touched question” may be ineffective for those users.

I think it’s rather simple to put a vote-depreciation system in place. A question will lose a vote for every XYZ days (say 180?) without an upvote. So if that question becomes obsolete, nobody will upvote it, and it will start “sinking” to the bottom, drawing less and less attention without disappearing, because (as @celtschk said) some people still will need the obsolete answer.

On a side note, I’m happy to see that all the energy spent (wasted?) on SE meta is being put at work here. I can read a lot of commitment and good ideas, I’m pretty sure the result will be amazing!

3 Likes

I’m doing this in 2 parts, because it’s about 2 issues that should be evaluated on their own merit. First, defining what we are actually talking about here:

“Obsolete Content”? We’re only talking about outdated answers here, aren’t we?

I can’t imagine questions getting outdated. Even if they are about old technology, they still apply to that. Even more, if someone lands on a question and they read “This problem doesn’t exist anymore, because now you can just do X”, that’s something you don’t want to take away!

Obsolete via software versions
Not a problem IMHO. Currently at SO, questions have “… in version X.Y.Z” at the end. Python, with two “big” versions (2 & 3), just has tags for these. Answers routinely say “If you’re using version X.Y, you can do […]. Otherwise, you’ll have to do […].
The only (small) issue I see is if new versions provide an easier way to do something for an old question, which is currently handled with comments on SO.

Obsolete because of danger
This is probably the biggest and most important part: “Answers that are not safe anymore”.
However, I’d argue “anymore” is a stupid distinction to make. We need a way to tackle allAnswers that are not safe”. No matter how old.

2 Likes

Part 2: A suggestion for how to handle it

Re: Pushing new answers up to the top
Don’t do that. If the main purpose of the site was to provide fair voting of questions, sure - but please don’t lose sight of the goal here - the main purpose is to get answers.
If I land on a question and the first answers I see are some (quite possibly bad) zero score answers, just because they’re new, even though questions which a lot of others considered good exist - well, I’m not gonna be a happy camper. Bad, bad UX.

Instead, I would propose using answer flags.
Something like the duplicate flag on questions. Users can flag an answer, and if enough users agree, a highly visible warning is put on the answer.

In the case of a validated danger flag, I’d propose going at least one step further, similar to browser warnings for security certificates: Don’t show the answer; show a warning plus a link “I’m aware of the risks, show anyway”.
That is, if we’re not outright removing dangerous answers, which I feel is justified.

2 Likes

Understandable.

We can simply edit old answers to specify what version they’re in, and delete answers that are unsafe - do we really need to have a voting system at all? (yes, i know i made the suggestion in the first place)

1 Like

If you’re referring to using a flagging system, I would still consider the current process at SO voting. As in, at least 5 people need to “vote” that it is indeed a duplicate before stuff happens.

unsafe is relative - there are things that I would fire someone for doing on a public facing website that I am currently paying people to implement for a isolated network’s hardware API for example.

I like the idea of tagging a warning on known-risk approaches, but I am not sure I would have the patience to reveal every answer that was blocked just to see if it addresses my questions. A banner indicating risk exists & possibly a description of said risk would be enough IMHO.

If this were to be added it would probably be worthwhile to allow the author of the answer to fill this out themselves as there are a lot of things I could answer that would be safe to the original question due to some detail that might be a disaster for someone coming along later and thinking they had the same problem rather than only a similar problem.

1 Like

TBH, I actually think that it’s only the “anymore” that is the problem. Answers that are unsafe at the time when they are written are usually downvoted pretty fast. Just look on SO when someone propose a solution involving the gets method in a C question.

However, I really do like the idea of a “danger” flag. But I imagine it can be a bit difficult to define, and even tougher to make people use the flags the “correct” way. There are my types of dangers that vary a lot in severity. Examples:

  • No sanitation of sql querys
  • No checking of return values for functions like scanf or malloc in C
  • Using gets (buffer overflow)
  • Any use of undefined behavior
  • Using floats for currency

And let’s just look at not sanatizing sql querys. If the querys are hard coded and totally independent from user input, then sanitazion is in often not necessary and would even be a bad thing since it adds extra complexity where it’s not needed.

Others are different. I can (although not be 100% sure they don’t exist) think of any valid reason ever to use the function gets. So this is something I would always flag, no matter the question.

I think there is a risk for people flagging just about anything they would normally just downvote. Also, there will probably be a lot of flagging for things that is considered bad in general, but is not applicable to the specific question.

But the big advantage is that it provides a pretty good way to deal with very old and highly upvoted answers. Those are almost impossible to remove at SO.

It should be relatively easy to solve. All information tends to become obsolete, but you can usually predict at what pace. For example:

  • How does this specific piece of software/hardware/technique work - is time-locked and will likely never become outdated;
  • How do I do this in an operating system? - answers will likely change over several years (OSes don’t change as frequently as other things);
  • How do I do this in a programming language? - answers will likely change over the months-years;

I think all such questions which only really vary by the “version” (the concept should be similar and understandable for non-technical topics) should be visibly connected to other versions of the same question and its answers, like the “Linked questions” sidebar widget on SE, so it would be easy to discover and navigate them.

Distinct communities should decide whether they want to keep “newer version answers/questions” on the same page or on separate pages if there is too much content and too much difference between the details of basically the same at its core question.