104

Note: the eventual outcome of this discussion involved dropping this particular off-topic reason, along with other changes. See: https://meta.stackexchange.com/questions/216585/recent-changes-to-close-reasons-on-stack-overflow   —Shog


I was using the reason "demonstrate a minimal understanding" myself quite frequently, but the more I review, the more I have doubts about it and I think this reason can either be dropped entirely or at least rephrased, so I started to use "problems with code you've written must describe the specific problem" instead:

Questions asking for code must demonstrate a minimal understanding of the problem being solved.

So the poster has posted some description, maybe even a snippet of code and in his mind that already proves that he has that minimal understanding required. After all he described the problem and what he tried to solve. So telling him that he lacks that understanding is rather rude, and from the posters point of view doesn't even apply. What both version of the reason not emphasize is that a description of a problem is not various versions of

it doesn't work

but that we rather mean really specific details (see below). I can often see in the reopen review queue that the "improved" version just includes a more verbatim description, while what usually would be expected is some specific error message, a trace or a log, or whatever applies.

Then it continues with:

Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist

comparing it to:

problems with code you've written must describe the specific problem — and include valid code to reproduce it — in the question itself. See SSCCE.org for guidance.

Which says essentially the same, only in more detail.

So the "minimum understanding" reason is IMO a more rude version of the reason telling the user that an SSCCE is missing.

The intent of giving this reason is to tell the user that he needs to give exact details to be able to help him, so IMO a checklist would be much better. Something like:

Your question was closed because it may not provide enough details. Things you can do to improve your question to get an answer include:

  1. Format the code in a way that makes it readable and easily understandable.
  2. Provide the smallest working sample of code demonstrating the problem (link to SSCCE)
  3. Include your input and output.
  4. If applicable provide logs (i.e. Android debugging log, stack trace, etc.).
  5. If applicable provide the exact error messages (compiler, etc.).

And something like this should be best included already in the banner that appears when a question is closed instead of being hidden in some pages you often enough have to actively looking for.

It might be helpful to adjust this, based on the tags or close reason, as I realize that I'm more focused on the programming area, and the above list may not apply to other areas of SO.

Update

Another thing I forgot to mention (but wanted to) is this:

Questions asking for code

Is IMO essentially an invitation of the type of questions

I have a problem, can you provide the solution? (with an optional please)

while

Questions concerning problems with code you've written

puts at least some emphasis on the fact that the poster has to put some effort himself in trying to solve the problem by providing the code which he used to attempt the solution.

29
  • 94
    +1 Let's NOT make SO a kindergarden for noobs looking to get their homework solved. Keep the high standards and bear in mind that good questions deserve good answers and bad questions deserve to be closed (with a proper reason describing why the Q was closed and what to do to get it reopened). We're expecting effort from askers not just dumping their problem and asking for help.
    – user221081
    Commented Dec 11, 2013 at 11:39
  • 1
    I do get the impression that there's a lot of discussion about this close reason, and as an aside, I find myself using the "describe the specific problem" reason more often too. Commented Dec 11, 2013 at 17:56
  • @DennisMeng, Personally I even started to use it in place of unclear of what you are asking as well, because in most cases it adresses most typical problems. So there is only a small amount of questions left, where it is really unclear.
    – Devolus
    Commented Dec 11, 2013 at 17:59
  • 3
    Yeah, I try not to use "unclear what you're asking" if I know it's a "needs to describe specific problem with your code" or "needs to show minimal understanding" issue, since those close messages are more specific and detailed. Commented Dec 11, 2013 at 18:02
  • 10
    I see that this post got a lot of upvotes, but I think there might be some invalid assumptions here. "Questions asking for code" is directed specifically at icanhazcodez questions, i.e. questions asking us to do their coding for them. "Questions concerning problems with your code" is directed specifically at code dump questions, where the OP wants us to do their troubleshooting for them. They're not at all the same thing.
    – user102937
    Commented Dec 11, 2013 at 20:06
  • 3
    When I review the "reopen votes" I see a lot postings where nothing substantial has been changed, and that got me thingk of why. After all, the people want to have answer, so when they edit, the are doing it int th ehope to clarify the question, and for this, they have to be pointed out in a clear and concise way what went wrong. And when I try to look at the close reasons from the point of a newby, they are IMO not very clear.
    – Devolus
    Commented Dec 11, 2013 at 22:03
  • 3
    @Devolus: Ah, I see now. The simple answer to that is that most people do not bother to improve their questions. And it's not because the close reasons are unclear; I've seen many instances where people ask for more details, but they'd rather argue than put the effort into making their questions better. I've also noticed a higher percentage of people making the effort to improve their questions since the close reasons were overhauled. I'm not saying there isn't room for improvement, but there was a lot of effort put into the current close reasons to make them the best they could be.
    – user102937
    Commented Dec 11, 2013 at 22:04
  • 1
    @TheGrinch, I'm well aware that there are poeple who ignore it (I just encountered such a case only yesterday). But the posters come here because they have a problem and are looking for a solution. But their understanding of how to obtain it, is not neccessarily the same as SO sees it, so we have to provide them the best hints that we can. After all, we are also not happy with seeing the same problems again again.
    – Devolus
    Commented Dec 11, 2013 at 22:07
  • 3
    I think you're underestimating the sheer will of the people who come here wanting it the way they want it, and no amount of information, no matter how eloquently presented, will dissuade them.
    – user102937
    Commented Dec 11, 2013 at 22:08
  • 4
    It is because of the degree to which I am involved that I am able to say these things about new users with some degree of confidence.
    – user102937
    Commented Dec 11, 2013 at 22:43
  • 1
    @Devolus: "Benefitting the masses" is more like "benefitting the community", which spoon-feeding help vampires does not. Commented Dec 19, 2013 at 11:24
  • 11
    I frequently use "must demonstrate minimal understanding" when the question uses standard functions for which documentation is widely available and the problem or error could easily be resolved by reading said documentation. I would like to keep this closure reason for this purpose. Usually those questions can't be fixed, so I wouldn't even look for them in the reopen queue.
    – Kerrek SB
    Commented Jan 6, 2014 at 0:33
  • 1
    What if somebody has a problem, googles it but doesn't find a solution, then posts it on SO? Sounds fine right? Then well, -6
    – bjb568
    Commented Jan 7, 2014 at 8:07
  • 6
    @bjb568: No. A duplicate should a duplicate of a genuine, useful SO question. If it's literally a failure to understand the return value of a function, which is documented, then I would like to get rid of such questions efficiently and appropriately. Bear in mind that most questions that fail to read man scanf aren't called "How does scanf work", but come in all sorts of extremely specific, completely unhelpful guises that nobody would ever look for or expect to find a duplicate in.
    – Kerrek SB
    Commented Jan 7, 2014 at 8:24
  • 3
    @KerrekSB, That's why I would be in favour of having a close reason specifically for the "can't read the manual and can't be bothered to use a debugger either" type of questions. On the other hand, if those questions were closed efficiently, I guess 90% of the traffic would vanish.
    – Devolus
    Commented Jan 7, 2014 at 8:27

12 Answers 12

27

Take 3: Closing camels, not gnats - poorly-written questions are Unclear

First off, a big thanks to everyone who pitched in here - trying to distill a broad class of (often ill-defined) problems into a clear, helpful bit of guidance is quite a challenge - I'm happy to see so many folks willing to take a crack at it.

In particular, I'd like to thank Travis for helping to push this in the direction of identifying a specific problem clearly, Gilles for the keen observation that what we're discussing here is very close to Too Broad, and jmac for an excellent write up on the notion of "minimal understanding" itself. After reading these three answers, it's pretty clear that we're converging on a close reason that is remarkably close to Too Broad! There's just one problem...

Too Broad questions aren't the problem. Clearly-written but overly-broad questions are fairly obvious: if you've been assigned the task of implementing an order-entry system from scratch and haven't ever written more than "hello world" before, you have my sympathy... But that's clearly too much for a single question. It's the ones that could be plausible if not for a complete lack of information as to how much of an answer is needed that lead to confusion and chameleons.

Unclear what you know == Unclear what you're asking

I was discussing the results here with Anna, noting in the process how this close reason could be described as "unclear if it's too broad", and she made a rather insightful observation: we're still talking about questions that are Unclear What You're Asking - we just have some fairly unhelpful guidance attached to that close reason.

So let's fix that.

As of now, the "minimal understanding" off-topic reason is gone. Instead, the top-level "Unclear what you're asking" reason links to a new, Stack Overflow-specific Help Center page that focuses on guiding readers toward including the sorts of information that make for a good Stack Overflow question. This page is moderator-editable, and in addition I've started a discussion to solicit suggestions for improvement.

Typos are off-topic - but let's do more to help folks find and fix them themselves

In addition, I've replaced the "problems with code you've written" off-topic reason with this:

This question was caused by a problem that can't be reproduced or a simple typographical error. While similar questions may be on-topic here, this one was solved in a manner unlikely to help future readers. This can often be avoided by identifying and closely inspecting the shortest program necessary to reproduce the problem before posting.

A few other sites have been using similar off-topic reasons for a while, and "typo" has constantly been one of the top write-in reasons for closure on Stack Overflow - time to make it more convenient.

Note that the help page linked to in this reason is also specific to Stack Overflow and moderator-editable; I've started a discussion soliciting suggestions for this as well. Oh - and this is linked to from the "How do I ask a good question?" page now referenced by Unclear.

66
  • 77
    @Shog9 it's very confusing. Unclear what you're asking means I don't understand what question is about. But I clearly understand that user wants his homework/task to be done and posts only requirements as a question. Commented Jan 9, 2014 at 17:24
  • 49
    @Shog9 sorry, didn't get you. Scenario is simple - user copy-pasted requirements to stackoverflow (or other SE site) as question. I do understand those requirements (i.e. it's clear what user asking). But I clearly see user didn't try to implement these requirements (minimal understanding of problem is missing) Commented Jan 9, 2014 at 17:30
  • 37
    @Shog9 That seems like a distinction that will confuse many question askers. They'll look at the close reason, think "well obviously I'm asking you to do exactly this, what's unclear" and will just get mad.
    – Servy
    Commented Jan 9, 2014 at 17:31
  • 54
    So are we really saying that "minimal understanding" is right out? "Unclear what you are asking" is terribly vague, and I predict that the community will now abuse it in all sorts of horrible ways.
    – user102937
    Commented Jan 9, 2014 at 17:32
  • 15
    @Shog9 Oh I agree there, and that a change is entirely warranted, and I'm not quite sure what should be used; I'm just saying that your proposal of using "unclear" when someone dumps requirements and asks for a solution seems confusing.
    – Servy
    Commented Jan 9, 2014 at 17:35
  • 17
    OK, so let me see if I understand this correctly. icanhazcodez -- Too broad? It doesn't work -- Unclear what you are asking? icanhaztroubleshootz -- Too broad? No code sample -- Unclear what you are asking?
    – user102937
    Commented Jan 9, 2014 at 17:36
  • 3
    @Robert: too broad vs. unclear
    – Shog9
    Commented Jan 9, 2014 at 17:39
  • 15
    Should this be announced somewhere? Not everyone will come to meta to understand these changes.
    – Stijn
    Commented Jan 9, 2014 at 18:32
  • 5
    @bluefeet Yes, I'd agree that those are both too broad. If I'm reading Shog9 right, questions that are just a set of requirements with no scent of an attempt by the OP are "too broad" because they're asking for us to come up with a solution. Questions that describe code that isn't working, without actually showing us that code (i.e., questions formerly closed as needing a SSCCE) are unclear. Commented Jan 9, 2014 at 18:43
  • 11
    But what close reason do we use now when people need to get a clue?
    – Pekka
    Commented Jan 10, 2014 at 1:57
  • 8
    I'm not quite sure yet if I agree with this change - the new close reason is clearly useful, but the "too broad" reason for icanhascodez still feels weird, mostly because the text doesn't seem to match these cases. If somebody has an assignment to implement a simple function in python, it can be clearly answerable with a single short answer, and thus the whole first sentence of "too broad" wouldn't apply (and I doubt someone dumping homework on SO reads more than that). IMO we still need a separate, spelled-out close reason for these types of "do my work please" questions.
    – l4mpi
    Commented Jan 10, 2014 at 7:53
  • 22
    I don't like the new off-topic close reason. Unlike all other close reasons, this appears to only suit closing a question once it's been answered. "This question was caused by a problem that can't be reproduced or a simple typographical error. While similar questions may be on-topic here, this one was solved in a manner unlikely to help future readers.". I would feel strange about applying this close vote reason if the question was un-answered. As another note, if this is to be past-tense, change to "that couldn't be reproduced". Commented Jan 10, 2014 at 9:54
  • 6
    @Qantas94Heavy Duncan's remark is still a valid objection. The use of word solved indicates that this closing reason should be applied only to questions that have been answered and accepted. The underlying logic behind this closing reason might be in fact correct, but the wording is unfortunate. Also, the "While similar questions may be on-topic here" part of the sentence could be omitted altogether. It just adds unnecessary complexity to the close reason.
    – stewie
    Commented Jan 10, 2014 at 10:48
  • 5
    I agree with the others, I just came here because I was in the close queue and had a couple in a row where there just was no suitable option. I like the idea behind the change, I think the current implementation is lacking though.
    – Tim B
    Commented Jan 10, 2014 at 11:41
  • 13
    For SO, this was a lousy change. It completely obliterates the concept of closing questions that don't provide a SSCCE.org reproducer (when relevant) which we clearly want and it's also worded in such a way that it appears to only apply to questions which have already been answered. This was a huge step backwards in the usability of this close reason. Commented Jan 13, 2014 at 2:40
240

Analogy Time

A good question-answer pair is like collaborative problem solving.

Completed Puzzle

The asker has a big puzzle they are trying to solve, and are stuck on some part of it.

A good question about solving a puzzle

A good question will explain what it's trying to achieve as well as the specific problem they are currently facing so that people can help them find an appropriate solution.

A good answer about solving a puzzle

Unclear what you're asking

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question.

If you don't clearly explain what you're trying to achieve overall, answerers can't figure out what an appropriate answer would be without additional information. e.g. "How should I put these 4 pieces together?"

"How should I put these 4 pieces together?"

Too broad

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.

Even if you explain what you're trying to achieve (e.g. "I want to put together a 24-piece puzzle!") if you don't explain where you're having trouble accomplishing that, answers would need to cover too many different things and end up being too long.

"I want to put together a 24-piece puzzle!"

Primarily opinion-based

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.

Even if you clearly describe a specific problem, sometimes a question doesn't have a 'right' answer. If you ask "Which puzzle do you prefer?" then it's clear what you're asking, and you've limited the scope, but all answers will only be stating the preference of the answerer.

"Which puzzle do you prefer?"

Off-topic

Questions seeking debugging help ("why isn't this code working?") must include the desired behavior, a specific problem or error and the shortest code necessary to reproduce it in the question itself. Questions without a clear problem statement are not useful to other readers. See: How to create a Minimal, Complete, and Verifiable example.

If you ask "What's wrong with my puzzle?" nobody can answer unless you provide answerers with the ability to understand what you are expecting to get, and give them enough information to reproduce the same problem you have.

"What's wrong with my puzzle?"

The above was updated based on a post for Japanese SO

Current Issue

The current off-topic reason in question reads as follows:

Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist

Reading this as a rational human being, this sounds like we want the user to prove that if we provide the missing piece, they can figure out how to combine it with the information they already provided without handholding:

Missing Piece = Answer

If you actually click through to the question checklist, it becomes far more confusing, since that talks about code formatting, including code, doing research, etc. Which aren't necessarily associated with having a minimal understanding.

I think what strikes me as so odd about the close reason is that it is saying that what would be a very valid question is invalid if the person asking can't understand the answer (even if future visitors with the same problem could understand it).

What I think the close reason is trying to say is that the person may be providing details or otherwise following the rules, but it's clear that they aren't even in the right ballpark and don't understand what they're actually asking well enough to have their problem solved given the current explanation. Something more like this:

Information unrelated to actual problem

The issue with the close reason is that to the person asking, they think they provided relevant information, and simply lack the knowledge to realize how far off they actually are. That close reason is not going to sit well if they think they're asking this:

Good Question

The Problem with the Current Message

Let's say I'm trying to put a glove on as a sock. I ask a question:

Putting on Toesy Socks

I am trying to put on my socks to keep my feet warm, but it isn't working. I can get them on my feet, but they don't stay well, and they don't fit properly despite being large enough to fit my feet. I know they are properly sized, and I definitely don't have them inside out. How can I fit this sock Insert Image of Glove on to my feet? I am new to Toesy Socks.

This question would definitely be eligible for a great big:

Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist

But here I am, no closer to getting the glove on my foot, and wondering where the heck I went wrong. I definitely explained my problem, my attempted solution, what my expected results are, and even included a fancy picture of my sock! Why is this question getting closed? SO users are mean! Why is everyone a fascist?!

I think the fundamental issue is that this is being used to say, "You are clueless beyond anyone's ability to help you", and there is no way to explain that nicely, especially to people who can't distinguish between a glove and a sock despite being a sentient being.

Proposed Solution

I think that rather than confusing the user with nice jargon to say, "You're beneath us", we should be a bit more straight with them. Something like:

This question needs more help than we can provide. We like helping people, but sometimes the person needs to help themselves first by reading a book on the language, the online documentation, or asking someone they know who can help them. Once you understand the topic a little better, we invite you to edit this question, fix the obvious mistakes, and get it re-opened.

Yes, this isn't nice. But neither are poor quality questions from people who don't have the ability to understand that their question is low quality. At least if we're honest that this is not something that will be solved on Stack Overflow, they may be less likely to ask 20 variants of it and get a question ban.

19
  • 7
    +1 Thanks, because you explained exactly the problem I have with the current phrasing, that I tried to explain as well.
    – Devolus
    Commented Jan 7, 2014 at 9:02
  • 8
    I like this, it's the closest in spirit to the "basics of construction" from Alex P's classic Old Shoe or Glass Bottle
    – AakashM
    Commented Jan 7, 2014 at 9:33
  • What about the "How do I do it?" questions? The ones which have simple answers, but where the OP still doesn't know much of anything about the problem?
    – bjb568
    Commented Jan 7, 2014 at 18:26
  • 11
    @bjb, if someone asks "How do I define a variable in javascript?" the above description is just as accurate -- they should be reading a book, online documentation, or asking someone who will help despite their ignorance (not here).
    – jmac
    Commented Jan 7, 2014 at 23:12
  • @jmac Yeah, that can help and can be suggested thru a comment, but those questions shouldn't be too much of a problem, since most of them will be duplicates.
    – bjb568
    Commented Jan 7, 2014 at 23:16
  • 1
    @bjb, I definitely think that most close reasons should be accompanied by a comment, but I know many users don't agree. The only concern I have with my language above is that it may be used as a "catch-all" for closing questions that aren't off-topic, which is one of the things I think is supposed to be avoided. I don't think there's any real way to avoid that, and at least this way the user would be given a bit more honest guidance in to what the problem is.
    – jmac
    Commented Jan 7, 2014 at 23:21
  • 2
    How about "This question asks for more help than it is reasonable to ask for". "than we can provide" is demonstrably false if there are any correct answers to the question. But we need a close reason for questions asking why their code threw a NullPointerException
    – Raedwald
    Commented Jan 7, 2014 at 23:27
  • 5
    @Raed, I don't think that's the same thing. The help that is being asked in many of these cases (like the putting on socks example above) is perfectly reasonable. The issue isn't the scope of the question or the amount of help requested, it's that any answer won't solve the problem because what's required is fundamental knowledge or common sense that cannot be provided through this medium. Asking the same question to your teacher (who is paid to teach you), or a good friend (who has motivation to help) isn't unreasonable -- it's just more than we can provide here.
    – jmac
    Commented Jan 7, 2014 at 23:32
  • I think I see what you mean. How about "This question asks for more help than is reasonable to ask for here."
    – Raedwald
    Commented Jan 7, 2014 at 23:37
  • 1
    @Raed, if I were an asker, and someone told me my question was asking more than is 'reasonable', I would want to know what the scope of 'reasonable' is -- the close reason would come across as jargon and wouldn't help me understand. Saying, "Sorry, we really can't provide the sort of help you need" is a lot more direct and doesn't hinge on a definition of 'reasonable' that is decidedly unspoken.
    – jmac
    Commented Jan 7, 2014 at 23:39
  • 2
    This is an excellent write-up and guidance proposal for a class of questions that do indeed suffer from a lack of "minimal understanding". I'm not sure this is quite the set of questions we need to handle here though; yet more evidence that "minimal understanding" was a rather unfortunate choice of words. But I like this - it may be worth including anyway...
    – Shog9
    Commented Jan 8, 2014 at 22:47
  • 2
    @Shog, I don't even have close privileges on SO proper, so I'm really just riffing off what I read on meta and what people seem to want to use it for, and how I read the current close reason from the reader-side and the asker-side. Ideally, the mesh of close reasons would be explained in some way like the above to make it easier for both askers and readers to understand what sorts of questions we do/don't want, and what sorts of close reasons apply to each. To me, focusing on the wording is less important the understanding the concepts behind the various wordings.
    – jmac
    Commented Jan 8, 2014 at 23:36
  • 5
    @Shog Can we just get, like, this whole analogy worked into a help page, images and all? It seems like it's actually pretty darn useful at explaining all the close reasons. Commented Jan 9, 2014 at 17:14
  • 6
    @BillyMailman: As good as it is, it's more useful as an analysis tool than a help topic. Getting through it is a lot of cognitive work, and most people won't do it (I confess that I haven't actually gotten through the whole thing, as it is taking me awhile to grok the diagrams).
    – user102937
    Commented Jan 9, 2014 at 18:02
  • 6
    I didn't entirely follow (or like) your puzzle analogy, but the "toesy sock" concept was sheer genius. Commented Jan 10, 2014 at 10:03
18

I'm still digesting yesterday's conversation, so this probably sucks. But,

Questions without context are off-topic on Stack Overflow, as they require answerers to guess at how much the asker needs to know. Questions should include a clear statement of the problem being solved, as well as why it needs to be solved, what has been tried, and how that didn't work.

Key changes:

  1. Focus on stating the problem and why it's a problem before suggesting solutions.

  2. Emphasize that the question - not the asker - is a potential problem for answerers.

  3. Emphasize what, why, how as the keys to establishing that delicious context.

Obvious weaknesses:

  1. Replaces one bit of jargon with another: I've little doubt "context" would quickly become another synonym for "gratuitous displays of effort" in some camps.

  2. Doesn't link to any long-form resources. This isn't strictly required, but it is nice.

  3. Doesn't include any examples of what a good question looks like. Keeps it relatively brief, but concerning given weakness #2.

I'll think about this more over night.

15
  • 3
    I'll think this over a bit more overnight as well, but my initial reaction is two-fold: 1) bolding "questions without context" is weird. 2) The Stack Overflow question checklist would be a good resource to link to in this case.
    – Adam Lear StaffMod
    Commented Dec 12, 2013 at 1:31
  • 6
    What? There's no bold in this post! I blame the new top bar for making folks see more black than actually exists.
    – Shog9
    Commented Dec 12, 2013 at 1:33
  • 4
    I would love this as a close reason. But it could provide some opportunity for misuse. A question with no or little context can be fine if it's a problem with a non-obvious solution that anyone with knowledge in the problem domain can recognize as such. This close reason could be used to wrongly close those by a bureaucractic mind or someone not familiar with the field. It might need some more qualification. Not sure. But other than that, can we please have this, like, tomorrow?
    – Pekka
    Commented Dec 12, 2013 at 1:56
  • 2
    I like the direction :) However, I too fear the word context being taken out of the intended context. Can you explain what your interpretation of context is in this context?
    – Travis J
    Commented Dec 12, 2013 at 2:28
  • This certainly goes in the right direction, apart form the phrase "Questions without context". I'm not really sure that beginners would recognize the meaning of it, thus ignoring it. It sounds rather subjective to decide wether there is enough "context" provided.
    – Devolus
    Commented Dec 12, 2013 at 7:46
  • “Questions without context are off-topic on Stack Overflow” doesn't make sense: if they're about programming, they're on-topic. Commented Jan 6, 2014 at 13:14
  • 1
    Context is the wrong thing to stress here. To be reasonably answerable, a question needs either a precise specification, or enough context to allow answerers to figure out their own way to deal with the requirements. (Occasionally it's useful to have both, because the asker is taking a common wrong approach to a particular problem, and a good answer will describe an alternative strategy that doesn't match the asker's spec - but that's unusual, not the norm.) In particular, questions about very common tasks, like this, need no context at all.
    – Mark Amery
    Commented Jan 6, 2014 at 20:31
  • @Pëkka Maybe it would help to reinforce the idea of 1) comment, 2) edit, 3) downvote, 4) flag
    – bjb568
    Commented Jan 7, 2014 at 8:24
  • @Gilles: Please don't start the whole "off-topic doesn't mean what you think it means" argument again. For purposes of this discussion, "off-topic" means the question is not suitable for Stack Overflow in its present form.
    – user102937
    Commented Jan 7, 2014 at 16:44
  • @RobertHarvey Yes, but that's MSO jargon, not something that should go into a message displayed to the general public. Commented Jan 7, 2014 at 17:41
  • @Gilles: I'm perfectly fine with "unsuitable for Stack Overflow," if people really want to beat that dead horse again. The Help Center makes the use of the term perfectly clear.
    – user102937
    Commented Jan 7, 2014 at 18:06
  • At present we can use the "demonstrate a minimal understanding" reason (ignoring the "asking for code" part) for questions asking why their code threw a NullPointerException, and reading the stack trace would tell the OP all then need to know. Such "debug this for me" questions can have enough context to be answered, and answered correctly. But they should be closed (yes?).
    – Raedwald
    Commented Jan 7, 2014 at 23:46
  • Strictly-speaking, you should close them as duplicates of a question that explains how to debug them, @Raedwald.
    – Shog9
    Commented Jan 7, 2014 at 23:50
  • 1
    @Shog9 I opened a separate question about what should be done for simple NullPointerException questions. At present, closing these questions with the "demonstrate a minimal understanding" reasons has the highest voted answer.
    – Raedwald
    Commented Jan 9, 2014 at 13:26
  • I like your suggested close reason because it implies that if someone does understand the question and answers it well, then the question can be reopened. Too many questions are closed because they require a very specific domain knowledge, but people without this knowledge do not even realize this and assume that the question is unanswerable.
    – asmeurer
    Commented Feb 25, 2015 at 15:39
13

What questions are we targeting?

This close reason was introduced to

handle the sorts of "here's my spec, please write code for me" questions that were already being closed

Let's see what kinds of questions this covers. First, this is only applicable to questions of the form “how to I accomplish this task?”, not questions of the form “debug this piece of code” (these are the two main kinds of questions on Stack Overflow). The task has to be a programming task, otherwise off-topic (in the vernacular sense of “not about the site's topic”) applies.

What kind of programming tasks are not appropriate for a questions and answers site about programming? I can see two reasons (beyond of course unclear if the task is insufficiently specified).

  • The task may be too big — it's not something that people would be expected to write in a few minutes, but on a 6-to-8-week-contract. There is already a close reason for that: too broad.
    Do we need a more precise close reason for givemetehcodez questions? I don't see a pressing need. It's true that too broad covers both the case where there can be too many answers (such as resource requests) and the case where answers would be too large (such as givemetehcodez), but I don't see much potential for confusion. However, it is true that the guidance for too broad is fairly generic and could perhaps be improved.

  • The task may be so unique that it is unlikely to be helpful to future visitors. This happens mostly with the kind of homework-type question that sets a purely artificial task that is adapted to a particular progression in a curriculum. But even homework questions can be useful to future visitors — especially when the exercise is from a textbook. Indeed such questions are more useful than “debug this piece of code”, which we do allow (and even encourage by saying right off the bat that “the best Stack Overflow questions have a bit of source code in them”).

So how is this “minimal understanding” thing relevant?

In a previous discussion, I mentioned how “demonstrate a minimal understanding” is useful for cases where the asker is out of his depth. The thing is — just how common is this on Stack Overflow, in a way that the question isn't asking for an unreasonably scoped task?

Not all questions call for complete code. Instead of answering with code, we can answer with a general strategy, a roadmap of what libraries to use and how to assemble them. Even if the way a question is phrased demonstrates that the asker will not be able to accomplish the task, in a way, that's his problem. A good guideline for writing good answers on Stack Exchange is: how many future visitors will find this answer useful? Maybe the next person to come along will have the required understanding. Write for that person.

A note on some other sites

Security and Cryptography have close reasons corresponding to this “minimal understanding” issue that I find appropriate, respectively:

  • Questions asking us to break the security of a specific system for you are off-topic unless they demonstrate an understanding of the concepts involved and clearly identify a specific problem.
  • Requests for analyzing or deciphering a block of data are off-topic here, as the results are rarely useful to anyone else.

In both cases, these address a very specific kind of questions which is relatively common (like “how do I hack www.example.com” or “how do I decipher OIAIJDNXYFIKLWQJSDIUQPZUA”), and it's helpful to have a pre-worded close reason. These close reasons are subsets of unclear (rather than too broad), though different from many unclear questions in that usually the asker would be incapable of adding more details. I don't see a similar pattern on Stack Overflow. Those unreasonably-scoped questions are all over the map in terms of the site's scope — asking to write programs from scratch, asking to add features to an existing program, asking what technologies to combine to achieve a goal. We aren't going to find a unifying factor.

Regarding some proposals on this thread

Accomplishing the goal of this question is beyond the scope of a single answer. Questions should clearly explain a specific misunderstanding in its simplest form, how it was reached, and what was attempted to work through it. (by Travis J)

I like the first sentence, but it's only a slightly specialized variant of too broad. The part about “clearly explain a specific misunderstanding” is an oxymoron; you can't expect the asker to say anything other than “if I could explain it clearly I wouldn't be able to understand the question”. As for the what-did-you-try part… for a plzsendtehcodez question, “what did you try” doesn't always improve the question, it often leads down the garden path.

Conclusion

I think this close reason should be changed to

too broad
Good answers would be too long for this format. Please add details to isolate an issue that can be answered in a few paragraphs.

Given how close it is to the existing too broad close reason, I propose to keep using too broad as it is.

More specific guidance — more specific than what we have now — can always be given in a comment.

Postlude

I'm not totally happy with my conclusion, because I do find that there is a very common type of guidance (or at least encouragement) that can be given to a “solve this for me” question: “what did you try?” However this needs to be wielded carefully. First, “what did you try?” needs to be worded in a helpful way (definitely not “what did you try?”!), which in itself is a reason to have it in a prepackaged form. Second, it is not appropriate for all plzsendtehcodez questions. Third, what it's really calling for is breaking the too-broad question into manageable subquestions — starting with one subquestion. The subquestions can either be about general strategy or a specific coding problem, and we should not push the latter but forget the former.

Travis J's proposal, once cleared of that irrelevant bit about understanding, does have a point, and I do like the first sentence. Here's some draft wording — but I wouldn't want this wording to go into production, I need to think about it some more.

Accomplishing the goal of this question is beyond the scope of a single answer. If you are looking for guidance regarding algorithms or libraries, state precisely what environment you're working in, your goal is, and what part of the design you need guidance on. If you need help with the coding, show us what you have done so far, what you want to do next and what is blocking you.

1
  • 15
    +1 just for the viewpoint that it's frequently wrong to demand that people asking for code show attempted solutions. The problem with this (sadly popular) approach is that it tries to turn all questions into debugging questions, which isn't useful. Frequently I try to Google for "How to do X in Y" and find a SO question with exactly that name, only to discover that the question asker posted their barely-comprehensible 100 line attempt at his special case of X, and many of the answers are about debugging his code, not how to do X. I'd rather they'd not made the 'effort'.
    – Mark Amery
    Commented Jan 6, 2014 at 20:07
7

Take #2: riffing on Travis

It is not clear that a reasonably-scoped answer can satisfy this question. Questions should clearly explain a specific misunderstanding in its simplest form, how it was reached, and what (if anything) was attempted to work through it. For help writing a good question, see the question checklist.

I liked Travis J's problem statement, but I felt it was incomplete: the real problem here is that we don't necessarily know if the question is too broad or simply unclear. Calling out both makes the problem a bit more obvious, I think.

Also, I'm expanding the scope of this discussion a little bit to include the other weird OT reason on SO: the one for help debugging code you've written. In practice, there's been entirely too much overlap between that one and this one, and it's time to separate them:

This question was prompted by a problem that is unrelated to the actual question asked. While similar questions may be on-topic here, this one was solved by the asker in a manner unlikely to be relevant to others. This confusion can often be avoided by identifying and closely inspecting the shortest program necessary to reproduce the problem before posting.

Obviously, this is a pretty major change, but I think these two reasons together should suffice to cover two broad categories of problematic questions:

If anyone has any concerns with this change, raise 'em now.

8
  • (Oh, thank Atwood! A real typo question close reason!) Since we like bolding things, can I suggest the phrase "explain a specific misunderstanding" in the first reason? The wording "how [a specific misunderstanding] was reached" seems just a little off to me. How about "caused", or "what is causing it"?
    – jscs
    Commented Jan 5, 2014 at 21:35
  • I was thinking about opening a new question to discuss this very aspect. Frankly I need the 2 close reasons we have (minimal understanding & specific problem) need to be split into 3 or 4 different more specific close reasons. Hopefully we'll get some input on how they are worded. Commented Jan 6, 2014 at 0:54
  • 1
    By the power of Grayskull, make it so. Actually I just wanted to imagine Patrick Stewart dressed up like He-man riding a green tiger, but the reasons you've detailed seem good to go in my opinion.
    – user50049
    Commented Jan 6, 2014 at 6:04
  • 6
    I can't get behind “explain a specific misunderstanding in its simplest form”. That's nonsense. If the question is prompted by a misunderstanding, you can't expect the asker to explain that part clearly. There's some good in here but “explain a specific misunderstanding in its simplest form” has to go. I'll try to propose an alternate formulation but I need to think a bit. Commented Jan 6, 2014 at 13:12
  • Yeah, the more I read it, the more I find the second sentence here overwrought, @Gilles. I think I prefer, "Questions should clearly state the problem being solved. If possible, explain why it needs to be solved, what has been tried, and how that didn't work."
    – Shog9
    Commented Jan 6, 2014 at 16:57
  • Answered — but we're deviating from “minimal understanding” into “what did you try”. Which I guess isn't a bad thing, all things considered — but “what did you try” is a delicate subject. Commented Jan 6, 2014 at 19:42
  • I like your first take better. It's much clearer and more self-explanatory than this one.
    – user102937
    Commented Jan 6, 2014 at 19:46
  • 2
    I don't think I understand "why it needs to be solved" being in there. Is that something we care about? It's part of the context of the problem, sure, and having it might help answers, but I don't think, overall, that it's necessary. I also fear that it would allow the reason to be twisted into "closed: you're only asking this because you're curious".
    – jscs
    Commented Jan 6, 2014 at 20:33
6

Modifying Shog's new one to de-emphasize the "show attempts" even further in favor of "show what you know".

It is not clear that a reasonably-scoped answer can satisfy this question. Questions should clearly explain a specific misunderstanding in its simplest form, and the parts of the problem that are understood (which may involve showing attempted solutions). For help writing a good question, see the question checklist.

The two key points here, as Gilles has explained, are a) "where are you starting from?", so that answers aren't wild guesses or thousand-word theses, and b) "are you going to understand a reasonable answer?", so that answers don't turn into hand-holding tutoring sessions that only apply to the asker.

2
  • 1
    I can't get behind “explain a specific misunderstanding in its simplest form”. That's nonsense. If the question is prompted by a misunderstanding, you can't expect the asker to explain that part clearly. There's some good in here but “explain a specific misunderstanding in its simplest form” has to go. Commented Jan 6, 2014 at 13:11
  • I think it's on the right track, @Gilles; but I started to find the word "misunderstanding" a little iffy, too, as I thought about it. I think "be descriptive and as precise as possible about the hurdle you face" needs to be there in some phrasing, though.
    – jscs
    Commented Jan 6, 2014 at 20:25
5

I like that @Shog9 is willing to visit this topic. I like his suggestion and am just putting forward some food for thought.

This close reason tends to be for help vampires. Specifically, the kind who asks too much of answers. Users cannot be expected to write a book explaining the background and history, a library to support whatever is being created, and a framework to do the creating all in one answer.

The thing is, there are users capable of all that, but it is unfair for them to labor for hours on end just to deliver it to someone who could have done it themselves with effort and time.

I like shog's suggestion because of its aims. It aims at making askers be clear through explaining the why, what, and how of their question. Perhaps the message to accomplish those goals can be a little more clear.

Accomplishing the goal of this question is beyond the scope of a single answer. Questions should clearly explain a specific misunderstanding in its simplest form, how it was reached, and what was attempted to work through it.

Advantages:

  • Attempts to reduce the size of something new an answer must create. For example, "how do I create a div in jQuery" vs "how do I create a mobile app like facebook on Android"
  • Asks for an explanation of the misunderstanding the OP is facing while not asking for the entirety of what led to it
  • Asks for a simple backstory and for a sample attempt

Disadvantages:

  • References the "scope of a single answer" which is hard to determine
  • Uses the word misunderstanding which may not always be the best fit
  • Does not address code directly
5
  • 2
    I like where you're going with this. Personally, I don't count your Disadvantage 3 as a disadvantage. In fact, I'd prefer to de-emphasize the "must show teh codez". Showing understanding and effort doesn't have to mean code. The important point is "are you going to be able to understand a reasonable answer, or am I doomed to be holding your hand explaining for the next hour and a half?"
    – jscs
    Commented Jan 5, 2014 at 21:20
  • I can't get behind “explain a specific misunderstanding in its simplest form”. That's nonsense. If the question is prompted by a misunderstanding, you can't expect the asker to explain that part clearly. Commented Jan 6, 2014 at 13:13
  • @Gilles - Perhaps the wording confused you. That does not mean they must explain both their problem and solution. It does mean they must explain what misunderstanding they encountered. If they completely understand a topic, then there would be no question so I believe that part does make sense. However, this is not a feature request, it is just wording as a suggestion. Since you feel so strongly about this topic, perhaps you could contribute with an answer.
    – Travis J
    Commented Jan 6, 2014 at 15:41
  • That may be what you meant, but it's not what you wrote. “Clearly explain a specific misunderstanding” is antinomic and unlikely to be understood by the confused asker. I'll try to come up with something later tonight. Commented Jan 6, 2014 at 16:30
  • Answered — but we're deviating from “minimal understanding” into “what did you try”. Which I guess isn't a bad thing, all things considered — but “what did you try” is a delicate subject. Commented Jan 6, 2014 at 19:42
5

I feel that the new reason of

This question was caused by a problem that can't be reproduced or a simple typographical error. While similar questions may be on-topic here, this one was solved in a manner unlikely to help future readers. This can often be avoided by identifying and closely inspecting the shortest program necessary to reproduce the problem before posting.

... is rather usefull to target the "debug me" kind of questions. However, I think that the "minimal understanding" should not have been removed though as there are also enough questions where this really applies and would warrant a more specific close reason. In such cases the other close reasons don't feel appropriate.

Examples like this would be

What's this =! operator? or Function to save data as struct on C

For these kind of questions I'm using now

This questions shows a serious lack of understanding the technology involved and is therefore beyond the scope of SO. Please refer to an appropriate beginners tutorial or other relevant documentation first.

which is basically a variation of the "minimal understanding". Questions of this type really show that the user needs to read up a manual first and learn the basics of his language and this should be what we need to tell him.

1
4

The standard used on certain other SE sites (e.g. languages) is, "Demonstrate that you have tried to solve the problem yourself."

  1. Show your proposed solution (identify methodology and provide some relevant code).
  2. Relate your expected results.
  3. Relate your actual results.
  4. Discuss how 2 and 3 differ: E.g. "I was expected solutions of a type X, and got error message(s) Y instead."

Then someone can probably answer, "If you use methodology B instead of A, you will probably get your desired results." Or, You made a mistake with code in line Z; here is the correct code."

6
  • 1
    Doesn't Stack Overflow's close reason already have these elements, more or less?
    – user102937
    Commented Dec 11, 2013 at 20:01
  • 1
    @TheGrinch: My post (and the question) makes things more explicit. "Demonstrate a minimal understanding" leaves a fair amount of "wiggle room."
    – Tom Au
    Commented Dec 11, 2013 at 20:03
  • 1
    We need some wiggle room. Most questions that get closed under this close reason are essentially under-specified. We don't need folks to follow a laundry list necessarily; what we need is for them to ask clear, specific, answerable questions.
    – user102937
    Commented Dec 11, 2013 at 20:04
  • 2
    This is not what “minimal understanding” is about. We don't require the asker to show all the wrong paths that he's taken. It's a good idea, to avoid these wrong paths being proposed, but it isn't mandatory. Lack of minimal understanding is “you wouldn't be able to understand the answers”. Commented Dec 11, 2013 at 20:30
  • @Gilles: On the language sites, we expect people to attempt a translation. We don't want to see "all" the wrong paths, just one attempt so we know that they have some comprehension of the language. That's the standard being proposed here, and that's not an unreasonable one.
    – Tom Au
    Commented Dec 11, 2013 at 22:50
  • 2
    @TomAu I am very familiar with a language site. We generally don't accept translation questions. We do expect askers to look up the meaning of words in a dictionary first, but this has nothing to do with requiring them to show effort, or to show their attempts at solving the problem. We want to avoid duplicating the work of lexicographers who write dictionaries, and so we require users to explain how the dictionary's answer isn't good enough. Commented Dec 11, 2013 at 22:56
4

I mostly like the existing reason, but have seen enough questions wrongly closed under it that I feel like it could stand clarification/re-emphasis.

First, the existing reason:

Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist

Here's how I would word it:

Questions that ask for the complete code to the solution must demonstrate a minimal understanding of the problem to be solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist

This emphasizes that asking for “teh codez” is a significant part of why the question was closed.

  • To the questioner, it implies that if you're willing to write the code yourself, and to amend the question to make that clear/not ask for “teh codez”, then your question can be reopened on that basis.
  • To would-be closers, it makes clear that this reason is for questions that ask for code.
3

Shog9 has proposed (and implemented) the following close reason:

This question was caused by a problem that can't be reproduced or a simple typographical error. While similar questions may be on-topic here, this one was solved in a manner unlikely to help future readers. This can often be avoided by identifying and closely inspecting the shortest program necessary to reproduce the problem before posting.

I have some reservations about the wording, however I also feel it now fails to highlight a particular and very common issue - failing to describe a code error in sufficient detail.

Should we consider a companion close reason that focuses just on this topic? "Unclear what you're asking" might cover it anyway, but that's a broad, broad topic. I'm suggesting something like:

Questions about runtime or compilation errors must fully describe the error in a manner appropriate to the language in question. Please include the complete error message (including stack trace, for languages that provide one) and indicate which line of your code example triggered the problem.

0

I'll cut right down the middle and put it like this:

Questions asking for code must demonstrate minimal effort has been made to resolve the problem. Include attempted solutions, why they didn't work, and the expected results.

The main questions to weed out are the ones that finish with a variation of "gib me teh codez plz!!" And that wording might help both reviewers and askers.

It can genuinely happen that the reason for posting is a lack of understanding. In fact, at some point, that's why anybody posts, no? "I don't understand how this feature works, please explain it to me." However, behind that question, there can be an effort put in, which for various reasons has not yielded a satisfactory understanding. Or there was no research. Lack of effort to find a solution (meaning that there's probably a ton of duplicates or similar questions, or that documentation is amply available on Google) clutters our knowledge base with low quality questions.

7
  • 2
    Ugh, no, no, a thousand times no. Closing is not about effort. The massive abuse of this close reason in lieu of a downvote is a big part of why it's being reworded. Commented Jan 6, 2014 at 13:09
  • @Gilles If we shouldn't close for effortlessness, it follows we shouldn't close for lack of understanding. While I understand the call for not punishing effortlessness, I can never agree with punishing lack of understanding.
    – MPelletier
    Commented Jan 6, 2014 at 14:59
  • 2
    We aren't closing for lack of understanding of the problem, but for a fundamental inability to understand the answers. The reason is supposed to convey “you're out of your depth”. Commented Jan 6, 2014 at 16:33
  • 1
    @Gilles If that's the case (which I never understood as such, but sure, why not) then let's say it that way: "Asker failed to demonstrate understanding of provided answers."
    – MPelletier
    Commented Jan 10, 2014 at 15:30
  • 2
    So you can't use this close reason until 1. there is at least one answer, which 2. is comprehensible to a reasonable person who should be asking questions about this topic, and 3. the asker has demonstrated in some way that they don't understand it? Commented Jan 10, 2014 at 16:02
  • @Gilles Well, you started it :P Honestly, I don't think the result of the answers and invalidate a question.
    – MPelletier
    Commented Jan 10, 2014 at 16:08
  • Sometimes you can see from the question that the asker is fundamentally incapable of completing the task. But that's actually rare on SO. Most of the time, you have no idea whether they might be able to do it because they just dump big requirements or because their question lacks so much information that you can't tell what they're trying to do. Both cases are covered by existing close reasons (too broad, unclear). That's part of why this close reason was bad: it only genuinely applied to a small number of cases, and too broad applied in almost all of these cases anyway. Commented Jan 10, 2014 at 16:12

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