94

There seems to be a very high bar for contributing to Stack Overflow, especially when it comes to asking questions. These standards can result in serious self-doubt, and seem to be the driving force behind a huge volume of off-site criticism - which generally seems to be treated dismissively on Meta.

The tour tells me that Stack Overflow is "a little bit different from other sites"; but it doesn't seem like it should be that different. After all, there is still a free-form text input at the top of the page. It also says that the site is for "every question about programming"; but there are quite a few standard reasons for closing (and perhaps subsequently deleting) a question, and most of them seem to be about more than just whether the question is "about programming". I have seen countless complaints that these rules exclude questions some people might find "valid", "useful" etc.

It seems like trying to ask about this usually just gets canned responses like "Stack Overflow is not a discussion forum". I assume this is intended to have deeper implications, but they aren't immediately clear.

What purpose is served by having such high standards for questions? In particular, why should I flag or vote to close questions that don't meet these standards but still seem like "valid questions about programming"; and why shouldn't I answer them? And shouldn't we at least be willing to make exceptions based on things like

etc. ? Please give a big-picture explanation of the overall policy and its motivations - not about e.g. the apparent attitude of the people implementing it.

22
  • 11
    Originally motivated by meta.stackoverflow.com/questions/427224. I was going to post this self-answered, but then I ended up sitting on it for months without ever really working up the will to write a proper answer. So I'm going to let everyone else have a crack at it first. Commented Apr 13 at 23:29
  • 50
    I always consider SO a kind of "cache" for answers to programming questions, which helps fellow programmers save time with correct solutions. For low-quality questions you mentioned, they are unlikely to attract useful/high-quality answers as I believe in garbage-in-garbage-out. If we don't close/delete these low-quality posts, it will waste the reader's time when searching for the correct answer, which defeats the time-saving and correctness purposes of SO that I consider.
    – ray
    Commented Apr 14 at 1:23
  • 20
    Well, if the question is about programming and you can answer it in a way that helps others, why should you vote to close? You can downvote the question for being low quality but not vote to close. It would be even better if you could just edit and improve its quality.
    – Dharman Mod
    Commented Apr 14 at 8:49
  • 13
    @Dharman If there is no MRE you can hardly edit to provide one. Or explain instead of the author what is the troubling them and what they don't understand. Sometimes, you can extrapolate, but not always.
    – Dalija Prasnikar Mod
    Commented Apr 14 at 12:25
  • 11
    @Dharman In my experience, the most frequent problem is that there is not a "the question" to answer, but simply a piece of code that "doesn't work". Commented Apr 14 at 15:12
  • 6
    @KarlKnechtel While I support the importance of keeping a high bar for high-quality Q&A on SO, I observe that currently we are kind of "punishing" low-quality posts. We might leave a bad impression on the poster. I keep thinking about the other way around: rewarding high-quality posts to provide incentives for contribution. However, I do not have any promising ideas yet (mainly due to the non-monetizing nature of SO). In the end, I only have the tiny thought above and I don't feel it qualifies as a full answer.
    – ray
    Commented Apr 15 at 1:37
  • 4
    My issues is that SO users are far too quick to close. When I ask a question on SO it's because I've already exhausted all other possibilities, and usually it's because my problem is subtly different to existing questions. Yet even when I point that out in my question, people instantly decide it must obviously be a duplicate of what I explicitly call out as not a dupe. That's my experience every time recently. It's very rarely positive. Just a whole lot of effort writing a question only to have that effort dismissed by people that didn't even take the time to understand the problem.
    – Clonkex
    Commented Apr 16 at 4:12
  • 8
    @Clonkex Please read How long should we wait for a poster to clarify a question before closing?, in which the consensus answer is "zero seconds". Feel free to use Meta to dispute specific question closures, using [specific-question] [reopen-closed] tags. My experience, however, has been that the large majority of such disputed duplicate closures really are duplicates, and often are very obviously duplicates - the people asking just don't want to accept that they're responsible for extrapolating to their specific code. Commented Apr 16 at 4:33
  • 2
    That said, according to the site search, it has been more than three years since a non-deleted question of yours was closed as a duplicate, and you have over a dozen questions since then, some of which were quite well received. That duplicate is also a textbook example of a duplicate, and you don't make any such protest therein. So I really can't see what you're complaining about. Commented Apr 16 at 4:36
  • 3
    @KarlKnechtel I think telling people to "use meta for this" is quite ignorant that reopen votes by in large don't happen and that using meta is basically not even on the radar as an option. Closing a question basically kills it for good. I think it is telling that especially when you get into more specific (importantly not "too localized") issues, there is a high tendency for questions to be erroneously closed by people who even admittedly know nothing about what the question even is (and those questions are clearly useful as they show up pretty highly in Google thankfully). Commented Apr 16 at 7:56
  • 5
    @JustineKrejcha there have been quite a few questions that get reopened due to posts on Meta (The fact that these posts might cause the meta effect is another matter). Some times in fact the question is improved and made reopen-able due to the meta post. Commented Apr 16 at 8:14
  • 17
    One of the reasons some regulars don't open the reopen queue is that it is a royal waste of time. The vast majority of reopen votes come from users who don't understand how the site works, and relatively often apparently from users who vote to reopen their own closed question without having made any changes to it.
    – tripleee
    Commented Apr 16 at 9:05
  • 4
    In my view the bar to asking questions has already been lowered drastically over the last five years or so, and should in fact be raised. We shouldn't be spending so much time swatting away the dross.
    – matt
    Commented Apr 16 at 15:13
  • 3
    @triplee Long time ago that I looked at the reopen queue, but when I looked last time there was like approximately every tenth question in this queue that should be opened again (but none to only a few ever got). It simply didn't work well. I know it's only a minority of cases but still some errors have been made there. We can as well switch queues off, when they are not working. Commented Apr 16 at 18:24
  • 7
    "The tour tells me that Stack Overflow is "a little bit different from other sites"" - that is what I've been saying for a long time. Stack Overflow lies, pretty much. It's not a little bit different, it's 100% different. Except for Wikipedia, it has a larger overlap with that site. But given how the site is treated... I don't actually believe that, I do believe that the intention is for it to be only a little bit different and we're being excessively anal without anyone having the guts to tell us to stop it. Until discussions were added. That's the first sign to me that change is coming.
    – Gimby
    Commented Apr 17 at 15:05

8 Answers 8

20

Stack Overflow is supposed to be a knowledge base, which is to say, a systematic collection of information that can be browsed and looked up by many people. The particular form of a knowledge base chosen for Stack Overflow is to be a collection of question and answer pairs for well-defined programming problems, not unlike Frequently Asked Questions lists that used to be much more popular in decades prior. A key difference is that a traditional FAQ list is usually written by a single person or a closed group of people who choose all the questions and answers in advance, whereas Stack Overflow accrues questions organically. But there is no difference in purpose: the point is to collect questions that may be useful to other people, and systematize them so that everyone reading knows exactly where to find solutions to their problems. A bad-quality question does not further the goals set for Stack Overflow.

Many people approach Stack Overflow like a help desk: they come here with their complex program and expect others to explain everything that’s wrong with it. The problem is: how many other people are going to have the exact same problem? How many other people are going to write the exact same code? How many other people are going to make the exact same typo? If the answer is “none”, or even “not that many”, then perhaps the question is not all that valuable as far as the knowledge base is concerned. The people who come here to answer questions don’t do it just to make the single person asking happy: they want to build a systematic repository of useful knowledge that they might also want to consult later themselves.

Some approach Stack Overflow like a forum for debate: there are many programmers here, what do they think about ⟨thing⟩? But people come and go, you are never going to get a representative sample. Opinion-based questions lead to petty squabbles of dubious value. And where technologies tend to age like milk, opinions about technologies tend to age like mould: not merely quick to spoil, but rotten to begin with. (Really, programmers have the most inane opinions. Just look at Hacker News.)

Now, I happen to have the controversial opinion that even elementary questions are completely fine to ask, and “research” is not actually in itself a prerequisite to ask a question. (On the other hand, there are only so many useful elementary questions that can be asked before you run out of topics.) The real prerequisite is something a bit harder to explain: spending the effort to make the question useful to others, and in particular:

  • To state the question unambiguously and clearly.
  • To state the question so that it can have an objectively-recognizable answer.
  • To state the problem in isolation from other problems (and any ultimate goal the asker may have).
  • To state the problem in reasonably general, abstract terms, isolated from as many irrelevant particulars of your situation as possible.
  • To ensure the problem is well-motivated. (Questions asked just for curiosity and about dead-end solutions tend to be poorly received.)
  • To give the question a descriptive title (I dare even say: preferably exhaustively descriptive) and appropriate tags – relevant to the actual problem at hand, and not merely incidental.

This is how traditional FAQs tended to be written. Only when this is done, will the question become valuable in the knowledge base, which is to say, useful to as many people as it possibly can. Doing this demands a certain kind of analytical skill (and some of it can only be done in retrospect, once you know the solution!), and sometimes the quality of the question can be improved by others, but more often than not, it cannot. You may be tempted to second-guess the asker’s intentions, but then you may guess wrong. And if you answer a low-quality question, you may perhaps help the single person asking, but will waste time of everyone else. Better request improvements in comments, vote to close the question and leave it to the asker to decide what to do to improve it, if it is possible.

So why close and delete bad questions? The big-picture answer is because they do not add to the knowledge base that Stack Overflow was supposed to be, and people browsing it should be spared the effort of weeding those questions out. Simple as that.

4
  • 4
    "Now, I happen to have the controversial opinion that even elementary questions are completely fine to ask, and “research” is not actually in itself a prerequisite to ask a question." I don't think this opinion is particularly controversial. Viewpoints on the "research" question have changed quite a bit since it was posed. A consensus has been emerging that the purpose of such research is to make the question meet the other standards, which is why questions are not closed directly for lack of research. Commented Apr 15 at 20:43
  • 5
    Me being able to find the answer to your question as fast as I type it into google search is not a reason to close it, me being able to find the answer to your question on Stack Overflow as fast I can type it into google search is. I occasionally stumble across questions that I'm shocked no dupe exists for...yet I can't find one. It happens, and as you point out it's fine. Commented Apr 16 at 1:48
  • 3
    @JaredSmith IMX, in the common case, the dupe does exist. You just can't find it, because of all the other terrible questions that should be closed as dupes of it. (Although sometimes, even if you magically had access to a list of all those questions, it wouldn't be reasonable to pick out one as the best target.) Plus all the other terrible questions that use a bunch of similar words, but are actually about something completely different. Commented Apr 16 at 18:02
  • 3
    Part of the dupe thing, for me and I think a lot of others, is proof-of-work: the thought crosses my mind that if the dupe is hard for me to find, well, I can hardly blame the OP for not being able to find it either. That doesn't stop me from closing it if/when I find the proper target, but I interact with those a little differently than I do yet-another-question-where-the-op-clearly-just-forgot-about-google. Definitely true though about sometimes having to wade through muck to find a dupe target though, and I still think it's worth the effort for exactly the reason you're referencing. Commented Apr 16 at 19:21
78

To be honest, the "apparent attitude" post you linked to lays it all out pretty well, so I don't know what I could add to that.

And shouldn't we at least be willing to make exceptions based on things like

No. None of those things.

Stack Overflow is supposed to be a system that builds a searchable database of knowledge. The platform structures that database in terms of questions and answers. The idea is that if you have a programming problem, you search for a solution. If you did your diligence in searching for a solution but couldn't find one (note: throwing your code into a search engine doesn't count), then the platform has failed, you ask a question, and the platform will succeed for the next person with that problem. That's the ideal.

To this end, all of the things you list are irrelevant. Who is asking, their level of expertise, the motivation of the asker, none of that matters. In the ideal case, Stack Overflow should be a system where who is asking or answering is immaterial. We care about information, not the people in question. The goal isn't to help the person asking the question; it's to help the next person with that same question.

Furthermore, ideally we try to optimize for pearls, not sand. What that aphorism means is that it's OK to lose a few good questions here and there if it means having fewer bad ones. So being strict is preferred over being lax. Why?

Because the time of experts who answer questions is incredibly valuable.

Stack Overflow was initially conceived as a way to keep experts engaged without running into the Help Vampire problem that exhausts such people. Having strictly enforced rules about questions helps, as it makes it easier for people with actual knowledge to be connected to questions that engage that knowledge. Shutting down poor quality questions quickly reduces the burden on experts, as they don't have to sift through as much garbage to find something that's interesting.

Now all of this represents the ideal state. Nothing about SO at present is "ideal". The platform has suffered substantial brain drain over the last few years. There are a variety of reasons for this, but lower question quality on many important tags is a substantial part of that.

So suggesting that we should encourage even lower question quality by just answering everything or leaving it for others to answer is... unhelpful.

21
  • 26
    The "database of knowledge" thing has always been debatable. It's some label that many users like to put on the site, but the intention was always just to create a site which is helpful for programmers. Including debugging help, which is often very localized and niche, to the point where there could be no "next person" having that same problem ever. If the goal was just to build a database of knowledge we might as well shut the site down and migrate everything to Wikipedia - which is actually a database of knowledge.
    – Lundin
    Commented Apr 15 at 6:38
  • 17
    "who is asking or answering is immaterial" - the rep score and badges shown immediately below the user name don't do much to help with that, though.
    – Friedrich
    Commented Apr 15 at 6:45
  • 4
    @Lundin You assumed Wikipedia is the better way of building a database of knowledge, which is very untrue as far as I can tell. Ignoring the why, the what is obvious: there are several pages on Wikipedia covering programming topics that are simply atrocious.
    – Passer By
    Commented Apr 15 at 7:37
  • 9
    @PasserBy Worse yet, many canonicals don't give the complete answer in a single post but you have to puzzle it all together from multiple answers, each giving some detail but not the complete answer stand-alone.
    – Lundin
    Commented Apr 15 at 9:00
  • 11
    If we were building a "database of knowledge", then a whole lot of answers should just be deleted and merged together. But we can't do that, since we have to respect the authors. The result is a database of noise with some knowledge sprinkled in here and there.
    – Lundin
    Commented Apr 15 at 9:02
  • 12
    "Being strict is preferred over being lax. Why? Because the time of experts who answer questions is incredibly valuable." In the context of this question, where the OP specifically wants to answer the questions, this translates into: "We deny you spending your time on what you want, because your time is too precious to be wasted doing things we deem unworthy of your time."
    – LWChris
    Commented Apr 15 at 9:08
  • 2
    @LWChris No, it translates to "I wasted my time on this terrible question, I'll save everyone else some time by telling them this question is terrible before they click it".
    – Passer By
    Commented Apr 15 at 9:31
  • 8
    @PasserBy The OP asks about questions they find "valid", which for me implies they wouldn't find them terrible. The whole question boils down to "Why can't I answer questions I find useful just because you don't find them useful?" (I want to add that I am undecided in this matter; I just wanted to point out the perceived weirdness of answering "Why can't I add content I find useful" with "Because we think you should rather spend your time on something useful.")
    – LWChris
    Commented Apr 15 at 9:38
  • 17
    You're not loosing a few good answers, you're loosing contributors themselves, which could provide many good answers. No knowledgeable contributor will spend time on SO after having encountered several questions he/she deems worthy of answering and not being able to - that's what makes him feel like he wastes his time. Once someone has decided to answer a question, he already assessed that answering is not a waste of his time.
    – user625488
    Commented Apr 15 at 12:54
  • 13
    @user625488: "Once someone has decided to answer a question, he already assessed that answering is not a waste of his time." But they can be wrong. One thing you learn when you've done this sort of thing for decades is burnout. In the beginning, you can get energized by every question. But the more and more you see the same low-effort garbage, the less you're willing to tolerate stuff. But it doesn't just affect low-effort garbage questions; it reduces the willingness to participate at all. Commented Apr 15 at 14:16
  • 8
    @user625488: What you're arguing for is effectively help-desk churn. Get people to run the help desk. When those people burn out (and they will), get new people to run the help desk. Keeping regular contributes engaged for longer by preventing burnout was one of the major goals of SO. And sometimes, doing that requires telling someone eager to engage "no, this is crap, and you will be better off in the long run by not engaging". Commented Apr 15 at 14:17
  • 6
    @user625488: This is also why SO is quite unsuited to having discussions. Structurally it is difficult, and those structural difficulties are important. A user might want to have a discussion, but we make that really hard specifically because we know it's not helpful in the long run. Commented Apr 15 at 14:18
  • 1
    I see a surprising number of people who say "The goal isn't to help the person asking the question; it's to help the next person with that same question". I just can't understand it. The goal involves the union of the two. Not either one alone. Both. I agree with the essence of the statement, but not the literal meaning.
    – starball
    Commented Apr 15 at 17:00
  • 9
    @Fe2O3 "How can it be that the sometimes inexplicable assessment of 3 (usually long-time-therefore-hi-rep) individuals must be accepted as representing the opinion of "the community"?" - I don't see how this is any less absurd than having one person decide "I have successfully read OP's mind, therefore the question should stay up". Especially considering that the purpose is to build something that can be found with a search engine, by others who need it. Commented Apr 15 at 20:32
  • 2
    @user Aside from what Dan said, there is one person who asked the question, and arbitrarily many "next people" if the question is properly posed. Commented Apr 15 at 20:35
36

TL;DR Because lowering the bar for question quality for the most part doesn't actually help the people you are suggesting it would help.

I took a minute before answering this to ponder when I'm willing to overlook a few hiccups in question quality and I came up with two, neither of which you mentioned:

  1. Somebody is clearly not a programmer, and explicitly states that they aren't trying to be one, but have an immediate one-off software problem they are trying to solve and don't have the money to pay a real programmer to solve it for them. They just need help, and they probably won't ever even log in to SO again.
  2. Somebody is an experienced Stack Overflow user tripping over a misfeature in a tech stack they aren't used to. Some poor 10k rep Java programmer gets tasked with doing some web frontend work and immediately runs into the morass that is JavaScript module systems, which they would never have expected because seriously, what programming language screws up module systems? Despite the numerous Q&As already present on the site, it can take more than a little googling to fix module mismatch problems without the help of somebody already well versed in the nuances. Don't get too hung up on the specific examples, every tech stack has at least some sharp corners.

What do these have in common?

We're not trying to teach these people how to be programmers.

The first one isn't going to learn and doesn't want to, the second already knows and just hit something counterintuitive enough that not even their usual Google-fu will easily suffice.

For everybody else, while the question quality rules might make solving their immediate problems less efficient, it is more efficient for teaching them how to solve their own problems, and this is by far the most valuable service we could possibly provide them (it's also more efficient use of the valuable time of oversubscribed experts as Nicol Bolas' answer correctly points out).

Consider the MRE. Why do we insist on a minimal reproduction case? Because it makes debugging more efficient? Well, I mean, it does, but part of the reason is that at least half the time the user will either solve their own problem in the course of creating one or realize the minimal example doesn't reproduce the issue and now they have a place to start looking for the problem on their own. Sure, it helps us debug more efficiently, but more importantly it starts teaching the user how to tackle their own problems.

Why do we insist that people search before posting? Because it cuts down on noise? Well, yes it does, but it also gets people in the habit of at least googling their error message before posting yet another question about file permissions or whatever.

I think a lot of people miss (or perhaps undervalue) the pedagogical aspect of the question quality rules, teach a person to fish and whatnot.

I know, I know I'm old

Although I've only been a professional programmer for ~10 years, I've been a Linux user off-and-on for 25 and I built my first PC around 1993. I definitely grew up as a technologist with the old school early Internet hacker ethos with the ESR school of what constitutes a good question. I realize this is now incredibly passé. Millennials and Gen Z are in general much more collaborative and less individualistic, and in many ways that's a good thing. So they are quicker to reach out to others for help at early roadblocks. It isn't necessarily wrong or right, it's just a different way to be. And that's fine, as far as it goes.

But I can't help but feel those folks have thrown the baby out with the bathwater and missed out on some very real advantages of that rugged individualist paradigm, and based on this neverending debate about the purpose of Stack Overflow I don't think I'm the only one. And one of the problems that one encounters trying to sail upwind of the zeitgeist is that pushing back against even part of the prevailing paradigm comes off (possibly even in your own head) as rejecting it utterly: sides are taken, lines are drawn, and we all entrench for battle.

It doesn't have to be this way

It probably will, people being what they are and I'm certainly as human as anybody else. But the Internet is a big place, and there's plenty of space to have a site for people with the rugged individualism of a Randian protagonist as well as a site for people who want a more collaborative and interactive experience. Do we really need to turn Stack Overflow into a bad clone of r/learnprogramming? If you are tempted to answer yes, consider the question in reverse: why would we want to turn r/learnprogramming into a bad clone of Stack Overflow?

The Internet is big enough to cater to a lot of different tastes and use cases. Maybe we should act like it, instead of insisting on the One True Way of human interaction online?

9
  • when you refer to r/programming, I assume you mean r/learnprogramming. The former refers users with programming questions to the latter. With that corrected, I find the jab at r/learnprogramming unnecessary. Between that and SO, there are different approaches. SO is the place that is much more on the side of the spectrum of giving the fish. r/learnprogramming is the place that tells people not to give the fish and instead teach to fish. But reading their FAQ and wiki, you may be surprised to find that many of the question quality standards are highly similar to ours.
    – starball
    Commented Apr 15 at 17:09
  • 7
    @user Islam Hassan is correct: I'm not jabbing at all, I'm saying that both culturally and technically reddit is better suited for an interactive experience. Stack Overflow is/was/is intended to be a high-quality database of answers to questions and the culture, UI, and technical choices for the most part are aimed at facilitating that end. Reddit has a different goal and offers a different experience, and that's a good thing. Why does everybody always want to compress this to some one-size-fits-all bake-off, even in response to an explicit plea to not do that? Commented Apr 15 at 17:39
  • Whereas /r/learnprogramming/ has in abundance the very first two questions absolute beginners ask, before any code, "Is it too late to learn coding as a X-years-old?" (X = 15 - 100) and the 'Should I learn this or that?' (e.g., programming language). Commented Apr 16 at 2:49
  • @Bergi that's IMO not a dumb question at all - C++ is one of the very few languages still widely used where function arguments evaluation order is undefined. It is IMO definitely useful to have a SO result which saves many learners or not yet very skilled C++ programmers potentially days of research. And both the question and answer are very much useful technical knowledge.
    – user625488
    Commented Apr 16 at 17:36
  • 2
    "googling their error message before posting yet another question about file permissions or whatever" and that's why I hate the generic error messages that are presented to users (not just programmers), because they will find stuff that will very likely not help them.
    – Braiam
    Commented Apr 16 at 17:44
  • @PeterMortensen Reddit generally doesn't see "spam" the same way Stack Overflow does. Users posting links to on-topic material is considered normal use of the site, even if the link is primarily advertising a commercial product, as long as the user isn't specifically there to shill products. The rule is titled "Spam" as in "this is our policy about spam" because what they want to say is more complex than "don't spam here" (which should go without saying anyway; the devil is in the details). But aside from that, Reddit has been circling the drain for years now, so.... Commented Apr 17 at 1:51
  • (but it has always been normal on Reddit for the posts to be dominantly links; IIRC this functionality was added first, then the threaded comment section, and only then the ability to make "self posts" where the OP actually has personally authored content rather than a link.) Commented Apr 17 at 1:52
  • 1
    @Bergi What's wrong with basic questions? Don't such questions have their place in a valuable corpus of knoweldge? OTOH, the question you gave as an example is IMO not basic but quirky. Repeating myself here: C++ is the only language in Tiobe's top 10 that has undefined order of evaluation of function parameters. That will definitely be a quirk to anybody coming to C++ from any other programming language. Also IMO, such questions should definitely have a place on SO - you don't come to SO for things that are explicit and easy to deduce from specs.
    – user625488
    Commented Apr 19 at 19:39
  • @Karl Knechtel: Meta/FI: This is now completely out of context. I posted two comments. The first comment was deleted for some reason. The first comment was, as far as I remember, about another subreddit with very different content from /r/learnprogramming/: A subreddit devolved into/overrun by essentially 100% link spam. Not random link spam, but advertising/creating attention for on-topic blog posts. The posts only contained a link to the blog post, no context whatsoever. Commented Apr 28 at 1:05
15

Consider your options

First off: if you can see yourself in the character I assumed for this question, let me take a moment to thank you. As an expert in one or more languages, libraries etc. who is capable of answering these questions, your time is valuable. If you choose to spend some of this time trying to "help beginners", the world will likely be a better place for it.

That said, there are many possible approaches to that goal. Here's a probably-non-exhaustive list:

  • Contributing to documentation for an open-source project1

  • Writing guides and tutorials on a personal blog - or on a suitable platform that accepts free-form guides and tutorials on the topic2

  • Building up a following on social media, then directing beginners to excellent existing information (whether or not your own)

  • Noticing a common pattern in the mistakes beginners make, hammering your advice into Q&A form by creating your own high-quality framing question, and posting it self-answered on a Q&A site (such as Stack Overflow)

  • Finding well-asked (properly focused, clearly stated, appropriately detailed, unique) questions from beginners on a Q&A site and answering them

  • Editing existing questions to improve them - by stating ideas more clearly, removing noise to save the reader's time, fixing up code examples (where possible) to focus on the specific part relevant to the problem, etc.

  • Reading a discussion forum and replying to beginners who start threads looking for help with an issue - diagnosing the problem for them from a code dump, possibly discussing back and forth to get needed information, asking probing questions to figure out what the beginner already knows, etc.

But what does not work is to mix and match strategy and medium. You would not, I assume, try to fit an answer to a programming problem into a typical social media posting (especially if Markdown etc. is not supported); you would probably not try to offer detailed "support" for your personal blog tutorial in the comments section; you would almost certainly not edit the OP of a discussion forum thread to remove greetings and thank-yous, even if you were a moderator and had the power to do so.

Similarly, you should not "help" beginners with an issue masquerading as a proper question on a Q&A site such as Stack Overflow. Aside from the fact that many such posts are not actually questions at all, they don't meet the site's standards.

With that in mind, let's consider the purpose of these standards.

"Not a discussion forum"

In the above list, I clearly delineated "Q&A site" as a separate category from "discussion forum". Stack Exchange sites, such as Stack Overflow, belong in the former category.

A Q&A site is a fundamentally different medium from a discussion forum, so it has different rules, policies, guidelines and standards. These, in turn, exist because a Q&A site serves a fundamentally different purpose, aiming at a fundamentally different goal.

In the case of Stack Overflow, this goal is summarized in the tour (emphasis mine, original emphasis removed):

With your help, we're working together to build a library.... This site is all about getting answers. It's not a discussion forum. There's no chit-chat.... Not all questions work well in our format. Avoid questions that are... likely to generate discussion rather than answers.... Our goal is to have the best answers to every question...

As I've said on Meta before, libraries contain novels, not diaries. To extend the analogy: books in a library are organized into chapters, which are a sequence of paragraphs that present coherent ideas; the books then have compelling and useful titles, and are arranged according to the Dewey decimal system. Analogously: in order for a Q&A site to collect "the best answers" properly, it must:

  • Exclude whatever is out of scope or subjective, to ensure that the answers can be objectively judged in and of themselves, and so that everyone knows which site to find them on (so we close questions that are not about programming, primarily opinion-based, or which seek outside resources);

  • Make answers identifiable, by putting them underneath a framing question that sets clear expectations and allows readers to confirm that they actually have found what they're looking for (so we close questions that are unclear or not written in English) and that they have the same problem (so we close questions that are missing debugging details);

  • Organize answers properly by putting answers to the same question together (so we close duplicates, to avoid getting answers in a separate place) and not putting answers to different questions together (so we close questions that are not properly focused);

  • Ensure that answers will be useful to others - both by the above organization and presentation practices, and by making sure that the question points at an actual, identifiable conceptual difficulty that could be shared by others rather than an idiosyncratic failure to reason about the problem properly or check for a simple blunder (so we close questions motivated by a typo or by a result that isn't reproducible).

By doing these things, the resulting Q&A collection becomes vastly easier to search (because search results don't get cluttered with irrelevant things, and because the necessary information doesn't get stuck to an unclear question), and therefore more useful. As a result, everyone (not just people who try asking the question themselves) can get a fast, high quality answer - which is necessarily at the expense of personalization.3 Even when someone does manage to find "the right question" despite it being poorly asked, low question quality can have other harmful effects, and even spectacularly written answers often cannot salvage this.

Keep in mind that closing questions as described above is injunctive, not punitive. The point is to come to an immediate agreement not to answer the question until it is fixed, assuming it is fixable. Deletion is only for questions that are fundamentally not fixable. But immediate closure is vital to the proper operation of the site.

The topic (programming) on Stack Overflow is quite technical, of course, and this does impose some additional requirements in some cases - for example, the expectation of a minimal reproducible example to showcase a specific problem, or a clear, precise and unambiguous specification for a how-to question. However, the question standards really are mostly not specific to Stack Overflow, but rather things that should be expected on any Q&A site.

But what about...

Hopefully it's clear by now: A Q&A site is about the questions and answers, not the people asking and answering them. While of course we aim to be kind and courteous, when a Q&A site achieves a real sense of community, it's not because of having experts on call to help out with individual, emergent issues (like on a discussion forum). Instead, a functional Q&A site community is on the same page, working towards the common goal of building a useful Q&A reference.

As such, it does not matter whether a poorly asked question comes from an absolute beginner (to a programming language, to Stack Overflow, or both) or a 15-year veteran. Nor does the urgency or magnitude of the OP's plight.

Of course, it commonly happens that there's some issue that a lot of beginners encounter, and none of them are properly equipped to ask a good question about it - perhaps because of unknown unknowns, or because the issue is so fundamental that people encountering it have usually not yet learned proper terminology. That's why the option of posting a self-answered question exists. The best way for you to help is to pose the question properly, give your answer, and then help close duplicates. This way actually helps other beginners who have the question, instead of just an arbitrarily selected one who asked.

But if the question is common because it's something you recognize as an "interview question", consider what you're really accomplishing this way. If there's an interesting, underlying conceptual issue, please make the question about that issue instead. It's not actually very productive to "help" people get jobs by making them able to answer a question that was specifically intended to filter them out - because they'll be lacking understanding in other related areas necessary for the job, and then the company will have to deal with that.


1Especially one that has committed or is trying to shift to a diátaxis model (this could range anywhere from a tiny utility, to an entire programming language).

2This could include Q&A sites: the old Stack Overflow Documentation project was sort of like this, and the Codidact software supports an "article" post type - although the Software site currently doesn't use it.

3Again: we deal in novels, not diaries. In my opinion, this is actually why you don't get fast, high quality answers on a discussion forum: because they're personalized.

0
10

Stack Overflow isn't a generic help site, nor is it trying to be all things to all people. In many ways, it's the Q&A equivalent of Wikipedia (or, for those over 30, an encyclopedia such as World Book or Encyclopedia Britannica). That being said, we need to have high quality standards for the exact same reason that Wikipedia does. You wouldn't want Wikipedia to be cluttered with articles about typos, lacking in context, etc. - you want articles to contain generally-applicable information.

6

It seems like trying to ask about this usually just gets canned responses like "Stack Overflow is not a discussion forum". I assume this is intended to have deeper implications, but they aren't immediately clear.

True on both counts.

  1. This is intended to have deeper implications.
  2. They aren't immediately clear.

Jeff Atwood lends some clarity in blog posts, some of which are linked in previous answers. In particular, his 10-year-anniversary post includes illuminating reminders.

Stack Overflow ultimately has much more in common with Wikipedia than a discussion forum. By this I mean questions and answers on Stack Overflow are not primarily judged by their usefulness to a specific individual, but by how many other programmers that question or answer can potentially help over time. I tried as hard as I could to emphasize this relationship from launch day in 2008.

People who either already have a job as a programmer, or could potentially be hired as a programmer today if they wanted to be.
...
Yes, in case you're wondering, part of this was an overt business decision.
...
Stack Overflow was definitely designed as a fairly strict system of peer review, which is great for already practicing professionals, but pretty much everything you would not want as a student or beginner.

This design frustrates novices, because SO is the wrong venue for their questions. It frustrates would-be mentors, because SO is the wrong venue for their answers.

Why is the target audience not communicated more clearly? As Atwood puts it,

The responsibility for this misunderstanding is all on Stack Overflow.

1
  • 2
    You raise very good points, but ending the answer like that feels rather unsatisfying IMO. Commented Apr 16 at 1:44
0

A perhaps dissenting perspective here...

Why should I help close "bad" questions that I think are valid

You shouldn't.

You should either downvote or edit it instead.

If you think the question is valid within the constraints of the site and useful then it probably has the following qualities:

  • It's likely an on-topic question (even if it's esoteric or basic)
  • If it has content problems, it's probably salvagable.
  • It may be subtly different in important ways from what seems to be an immediate duplicate.

If you believe it's a valid question which may have problems, you can edit the question to improve it instead of closing it.

17
  • 7
    while i agree, one should edit, a question that currently has not been edited into shape should be closed if one isn't going to make the edit, until someone comes along and edits it. We shouldn't just leave the question unclear/low quality hoping that one day someone will care enough to fix it.
    – Kevin B
    Commented Apr 15 at 18:58
  • 6
    Where does the confidence most questions that are closeable for being unclear, or lacking MCVE, or ask multiple questions, or ask for extremely big answers, or ask for opinion based answers, etc are editable within on-topicness? If it's unclear I can't make it clear by myself. Same for a MCVE. If it asks multiple questions, which one do I leave? If it's one very big questions, how exactly do I limit something like "How do I write a new OS"? Same thing with "What is your favourite array method"
    – VLAZ
    Commented Apr 15 at 19:29
  • If someone feels a question has enough information to be answered, they should edit it into shape so that it doesn't get closed/deleted.
    – Kevin B
    Commented Apr 15 at 19:36
  • 3
    Editing is orthogonal to closure. Please read: How long should we wait for a poster to clarify a question before closing? Commented Apr 15 at 19:41
  • This comment illustrates my point: meta.stackoverflow.com/questions/429808/… Commented Apr 15 at 19:46
  • 2
    I mean, it'd be great if everyone who can determine that a question is unclear or otherwise fits a close reason was also excellent at editing questions into shape, but that's not the reality nor is it an efficient use of their time.
    – Kevin B
    Commented Apr 15 at 19:47
  • 2
    @VLAZ It being unclear is kinda orthogonal to the presupposed question in the OP, is it not? I mean if it's unclear, it's kinda by design "invalid" and can't be answered. I've seen many MANY questions that have had formatting problems or have looked ugly or weren't the greatest questions in the world but still was answerable to me looking for similar info. Commented Apr 15 at 19:50
  • 2
    Unclear is a close reason. "Formatting problems" is not a close reason. Your suggestion was that close reasons are fixable via edits.
    – VLAZ
    Commented Apr 15 at 19:54
  • 2
    @VLAZ The question is about closing questions which are low quality but supposedly valid in the OP's opinion. "Unclear" is completely orthogonal to this. The OP presupposes that they want to answer which basically by definition means it's not unclear to the answerer. Commented Apr 15 at 19:55
  • 3
    @JustineKrejcha Often, a question is unclear to one person but not another. The user it is unclear to should cast a close vote, and the person who can piece together what the asker actually wanted to ask should edit the question to reflect that. Nether action disqualifies the other.
    – Kevin B
    Commented Apr 15 at 19:59
  • 1
    @JustineKrejcha Sure, some issues with questions can be fixed by other users' edits. The question should still be closed first before attempting such edits - because it prevents yet a different user from coming along and trying to write an answer inappropriately while the edits are being made. Meanwhile, there are other potential problems with questions that can be fixed, but only with the use of information that only the OP has. It's vital to close such questions; the OP is still completely free to edit the question and then submit it for reopening. Commented Apr 15 at 20:04
  • 1
    @KarlKnechtel I strongly disagree; we don't close all posts that need edits (to suggest as such would be absurd). I mean, maybe theoretically but reopening is so rare that you're often better off just trying to find an answer somewhere else if you get a question closed. Commented Apr 15 at 20:07
  • 3
    closing posts that need to be edited to be clear, useful questions is literally what closure is for. It's unfortunate that the existing review queues and tools haven't grown with the site to be efficient at that goal all of the time.
    – Kevin B
    Commented Apr 15 at 20:09
  • 1
    @Dan That's fundamentally not tenable as long as we have different people with different expertises. For example, I wouldn't want questions about PPC assembly erroneously closed by someone who has never used the architecture because they don't understand it. Commented Apr 15 at 20:09
  • 1
    @KevinB Again, this is a based on a faulty premise. The OP can add a useful answer to the question (and they should)! There is no clarity problem on the OP's part. Commented Apr 15 at 20:12
-2

This is something I think about a lot. I believe there's a fundamental (and serious, and potentially quite debilitating) contradiction between two ideals:

  1. What Stack Overflow is supposed to be: a curated repository of excellent answers to excellent questions.
  2. A Q/A site where people can ask questions and get help from real experts.

The thing is that if you fully embrace #1, helping questioners is not the primary goal. Questioners are fodder; their job is to ask questions (good questions) that motivate answerers to write good answers. But if a questioner gets no help (because their question was not good, or not new, or whatever), that's totally not a problem, because helping them wasn't the goal in the first place.

Personally, I believe that #1, though it sounds noble and was certainly responsible for SO's early success, is a dead end. Most if not all of the good questions have been answered. No one should be asking new questions; they should be finding their answer (and their question!) on the site already.

But if there are no new questions, there are no new answers to write, either.

So what happens is that you have a bunch of expert answerers hungrily waiting for nice, new questions to answer (hopefully in the scintillatingly definitive manner of yore), and then getting angry at the newbies for just asking a bunch of questions that are already answered.

I think most visitors these days (and certainly most questioners) assume that #2 is the acting definition. But of course there's still a core mass of old-timers who are still doggedly trying to uphold #1. Thus, the interminable battles, and meta-questions like Karl's.

Personally, I think that the "curated repository of definitive answers" mantra should be respectfully retired. I think SO could be successful today if it openly welcomed all questions, with no stigma about asking a question that might already have been answered, or that the questioner "ought to have been able to answer by doing basic research". We would see that most of the real-time answers were gentle redirects to existing answers, perhaps with a bit of commentary tailored to specifics of the "new" (but really not-new) question. (And we would have to keep finding ways to discourage and filter out the truly unacceptably lazy questions by people who just want us to do their work for them.)

Now, I am certainly not actually proposing to retire the "curated repository" mantra, because I know that would never fly. But I therefore expect the tension and the contradictions to continue.

6
  • 4
    I think the problem with the (hypothetical) notion of welcoming all questions is that it diminishes the ability to find answers through search. I don't want to have to ask a question to get an answer, I want to type something into a search engine and get a few links that will answer my question. Having the same old questions asked and answered repeated will make finding answers through search more difficult. Commented Apr 16 at 13:41
  • 1
    A best of both worlds would be if low-quality/repeated stuff could be automatically deleted regularly - a more aggressive roomba, if you like - somehow without deleting high quality posts in low-traffic tags, or rare but valuable corner cases. But I don't see how that can be done without more human curation, of which we do not have a surplus. Commented Apr 16 at 13:56
  • 4
    "But if there are no new questions, there are no new answers to write, either." -- Great, we've accomplished our goal and can move on to other endeavours (although to be honest, there's still be a good decade worth of curation just to clean up the existing mess). We don't need to trash the years of work building the repository, just to keep some people entertained.
    – Dan Mašek
    Commented Apr 16 at 15:48
  • 3
    "So what happens is that you have a bunch of expert answerers hungrily waiting for nice, new questions to answer" - well that really cuts to the core of it, doesn't it? There are more than 3 million unanswered, unclosed questions on the site, going all the way back to 2008. Some of them even have thousands of views already. If these experts are only happy with new questions, then that, too, is not and never has been what Stack Overflow is about. Commented Apr 16 at 17:48
  • 1
    @KarlKnechtel Perhaps part of the problem is the expectation of "high quality As" for "high quality Qs". There are bountiful examples of much praised (UV'd) answers that are little more than cut/paste copies from "The Specification" or "man pages". Such questions should have been closed as their resolution clearly demonstrates the "asker" did not do sufficient research themselves (i.e. RTFM). What incentivises "experts" to post copy/paste answers to "haven't read the book" questions?
    – Fe2O3
    Commented Apr 16 at 19:32
  • 1
    @Ðаո I know what you mean, but I'm afraid that's a dwindling minority viewpoint, and increasingly irrelevant. It seems to me that the vast majority of participants treat it as a Q/A site, and have done so for some years. Commented Apr 16 at 19:40

You must log in to answer this question.

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