8

While reviewing the vote to close queue on Stackoverflow, I have seen a number of questions (in and , mainly) where:

  1. There is some code which the question asker thinks should work
  2. It doesn't work
  3. They have provided sufficient code in the question to enable it to be answered, and indeed it has answer(s)
  4. They have said what is wrong (e.g. "it throws a NullPointerException")
  5. What the code is supposed to do is clear enough

So clearly, one of the close reasons is inapplicable. But some people are deciding to vote to close anyway, using the reason "Off-topic: Questions asking for code must demonstrate a minimal understanding of the problem being solved". But they are not asking for code, they have written some code already, it just doesn't work!

I may have voted the same way a few times, and for that I apologise. I am now voting to leave open these questions (with a heavy heart because they are invariably very poorly-researched), because I don't think that is what that close reason is for, and sometimes I downvote the questions as well, but it disturbs me that there are several people seemingly abusing the close system to close questions they just don't think are very good quality or appropriate for the site, using invalid reasons. Not only does this set a bad precedent, it doesn't look good to the outside world to use invalid close reasons.

P.S. I think the NullPointerException ones could best be addressed by closing as a duplicate of a "canonical NullPointerException question for Java", which has been suggested to me on Meta before. But I haven't found such a canonical question yet.

Anyway, sometimes the questions I am talking about are not necessarily duplicates, just poorly-researched.

  • 1
    I confess, with some embarassment, that occasionally in haste I've used the 'minimal understanding' close vote reason where I should've used the 'describe the specific problem... include valid code' reason when faced with questions that should've been closed for the latter reason; I just see the bold bit of the reason, it applies perfectly, and I get confused and pick the wrong reason. I've seen that reason used often on debugging questions, so I guess others make the same mistake reasonably frequently too, although whenever I do it I immediately notice and feel like a moron. – Mark Amery Jan 5 '14 at 11:16
  • 4
    However, you're actually describing two problems here. One is the use of inappropriate close vote reasons; the other is closing of debugging questions that clearly shouldn't be closed because they provide all the information needed to be reasonably answerable. I haven't noticed the latter happening; perhaps you could provide soe links to examples? – Mark Amery Jan 5 '14 at 11:19
  • I agree with @MarkAmery on the debugging questions. "Debug this for me" is not a specific question. Specific examples would be useful. – psubsee2003 Jan 5 '14 at 11:25
  • 1
    possible duplicate of Bandwagon effect in close votes – gnat Jan 5 '14 at 11:26
  • 1
    @gnat The two answers below suggest this isn't a bandwagon effect, but rather that I am interpreting the close reason too narrowly. So I think it is too early to close this question as a duplicate of that question. – Robin Green Jan 5 '14 at 12:34
  • 8
    +1 for being scrupulous about close reasons. But I'm increasingly of the opinion that "this is my code, it doesn't work, can somebody see what's wrong?" questions must absolutely be burned with fire, especially in the traditionally low-quality tags like Android and PHP. Whether the close reason matches 100% is secondary to that goal IMO. – Pëkka Jan 5 '14 at 14:35
  • 1
    Related: Still confused about minimal understanding One-sentence summary from Gilles' answer: "Don't ask if you aren't capable of understanding the answers." – Josh Caswell Jan 5 '14 at 19:51
5

I'm sick to death of misunderstandings surrounding this off-topic reason. I get it: it's pathetically unclear.

It will be going away very, very soon

17

I do a lot of close vote reviews in . I confess, I use "minimal understanding" close reason a lot. I rarely vote to Leave Open but rather just Skip borderline cases as there's plenty of bad questions out there and close votes will expire over time, so the daily 40 reviews / 50 close votes can be used more efficiently.

For the kind of questions you describe, the problem is usually:

  • There's a lot of code with lots of different problems. Even if the original exception gets solved, the question and answers turn into "I did what you suggested and now I get this problem" discussion.

  • The problem is poorly specified. The OP may say there's a NPE but there's no stack trace or other information to tell where the NPE comes from.

So essentially the question is "here's my code, please debug it for me". It may be answerable and some people even find solving these kinds of riddles enjoyable. However, borrowing from old close reasons, it's "too localized" because it's unlikely to help the generic population i.e. future visitors with similar problems.

Leaving bad questions open and providing useful answers to them just encourages further similar bad questions.

Now if there was a canonical Android NPE question involving setContentView() and findViewById() which could be the duplicate target for many, many close votes, I don't think it would be useful since applying such a generic canonical answer would be beyond the "minimal understanding". I think it would be better if there was a canonical "how do I debug my application" question that teaches people to gain the minimal understanding on their own.

  • For the questions you're describing, I think the right close reason is Questions concerning 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., not the minimal understanding reason which is specific to questions that are requesting code, rather than requesting debugging of existing code. – Mark Amery Jan 5 '14 at 18:27
  • 3
    Just to note: close votes expire a lot more reliably if you do use "leave open" on reviews. Awful lot of questions with <100 views where it might take months or years for vote aging to kick in otherwise. Use "skip" if you really don't know what you're looking at and don't feel qualified to judge. – Shog9 Jan 5 '14 at 20:26
  • Thanks for feedback. I think I can improve my close vote reason picking and not throwing as many questions in the "minimal understanding" bucket. And vote Close or Leave Open where appropriate and Skip only on the borderline or unqualified cases, just as before. (The original posting may have left a slightly different impression. Keyword: "borderline".) – laalto Jan 5 '14 at 21:31
14

Personally, I think you may be misinterpreting the "minimal understanding" close reason. Despite the phrasing, the intent of that reason is not solely about questions asking for code, it is about the minimal understanding of the problem, hence the reason that phrase is in bold. In fact, if you go back to the original discussion on the custom close reasons, https://meta.stackexchange.com/questions/185142/what-should-the-predefined-off-topic-reasons-be-for-stack-overflow, you'll notice the "asking for code" phrase is missing. The phrase was added when it was found that users were using the close reason incorrectly to close any "beginner" type questions, even ones that were good posts.

A "debug this for me" question is absolutely a question where the asker fails to demonstrate a minimal understanding, regardless of the amount of code the asker provides. To borrow your example, if a user dumps his code and says "I'm getting a NullPointerException", why do you think that is a good question?

Personally, I don't.

  • First, it isn't a question. The only shreds of a question is the implicit "debug this for me" question, or "why am I getting a NullPointerException".
  • Second, it is not useful to another beyond the OP. No one is going to find this question via a Google search or other search engine. Previously, these questions where closed as "too localized" because they weren't useful. You have to remember that Stack Overflow isn't here to be a free debugging service for everyone who has a program and an exception. The goal is to build a repository of useful programming problems and solutions, so questions that have limited future value to anyone or that can't be found in a search are not in the scope of Stack Overflow.
  • The OP has failed to demonstrate he/she has a minimal understanding of the problem because they can't even use their debugger to isolate the problem. Had they done that, they would have a specific question about a specific line of code and should be able to ask an semi-intelligent question about that line of code.

But to twist this example a little, if the OP had isolated the problem to a specific line or block of code, and provide a short example that replicates the problem, then asked "Why is this line of code throwing a "NullPointerException", that is absolutely on-topic and shouldn't be closed (unless it is also a duplicate).

All of this being said, I do agree that there is a failure to understand the intent of this (and other close) reasons by the close voters, and maybe there is room to tweak these close reasons to help guide the close voters more appropriately.

  • 1
    Tentative -1; as I understand the close reasons, you should be using describe the specific problem and provide valid code close reason for "here's my 100 lines of code, why doesn't it work?" questions, and only using the minimal understanding close reason for questions that ask for code, rather than asking for help debugging existing code. Both the current wording of the close reason and the description of it in the Meta thread you've linked to support this interpretation. I think this was part of the OP's point. – Mark Amery Jan 5 '14 at 18:32
  • @MarkAmery I certainly think both reasons could be applied, for the reasons you mentioned and the reasons I mentioned. Based on Shog's answer, it seems that it is very clear there is way too much overlap in these close reasons and they will be dealing with it, which I would be thrilled with. – psubsee2003 Jan 6 '14 at 1:23
4

The old "too localized" close reason referred to by the other answers was removed last year. In that post it says:

Too Localized was, by far, the most misused close reason in our surveys, with both Community Managers and Moderators deeming over 50% of randomly sampled TL closures to not have merited closure (including on SO).

Today, TL is used helpfully on code dump questions on SO, but the new OT reasons are where this is now correctly addressed. SO can use "Large blocks of code with requests for debugging without meaningful supporting info" as a specific OT reason.

[emphasis added]

So in some of the cases I mentioned, where there is a "large block of code with a request for debugging without meaningful supporting info", the "off-topic - other" reason can be used.

  • 1
    The frequency with which that is the close reason suggests that that should be a standard reason, not a free-text other reason. It was the same way in php with massive amounts of Too Localized closures, which now get closed with the even less well matched minimal understanding (not saying they shouldn't be closed, just that the language isn't a good fit). Many of the criticisms of the removal of TL in the meta post linked are becoming self-fulfilled. – Michael Berkowski Jan 5 '14 at 14:02

You must log in to answer this question.

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