What is meta? ×
Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 129 Stack Exchange communities.

Background

The close reasons have recently been changed, this includes the removal of the old close reason:

Questions must demonstrate a minimal understanding of the problem being solved. Tell us what you've tried to do, why it didn't work, and how it should work

This was the close reason used for requirement dumps amongst other things. Within the comments of that answer it was suggested that a subset of those questions could still be closed under "unclear what you're asking" if they were not phrased as a question, but not if they were just requirements.

Question

What would be the requirements for a question to be considered as a true question, rather than a list of requirements. Are (relatively small) pure requirement questions, with an explicit question as to how to achieve those requirements on topic. For example would the following question now be on topic (assume for the purposes of this question that it would not be a duplicate).

I'm looking to create a program to replicate bank account management. How would I write a program in which it was possible to hold several accounts, each with an account number and balance, where I can debit, credit and check the balance on each account through keyboard input?

The program that I'm thinking of would work in the following way

  • You would type in the account number of the account you want to manage
  • Once you were managing an account you would be given the options to debit or credit the account or print balance
  • After choosing the option the program would do that then return to the main menu
  • Each account would be an object and would be held in an arraylist

How would I achieve that?

tags: [java][class][arraylist][ObjectOriented]

And the typical answer that people are looking for with this question would be something like the following (relatively short) program:

public class Main {
    static ArrayList<BankAccount> listOfAccounts=new ArrayList<BankAccount>();

    static String[] mainOptionList={"1) Create New Account","2) Access account", "3) Exit"};
    static String[] accessOptionList={"1) PrintBalance","2) Debit account","3) Credit account", "4)Exit" };

    public static void main(String args[]){
        boolean mainExit=false;

        Scanner scan=new Scanner(System.in);

        while(!mainExit){
            for(String option:mainOptionList){
                System.out.println(option);
            }
            int reply=scan.nextInt(); //consider scan.hasNextInt to protect against non integer input

            switch (reply){
                case 1:
                    System.out.println("Enter account number");
                    int newAcNo=scan.nextInt(); //consider scan.hasNextInt to protect against non integer input
                    listOfAccounts.add(new BankAccount(newAcNo,0));
                    break;
                case 2:
                    boolean innerExit=false;
                    BankAccount managedAccount=null;
                    while(managedAccount==null){
                        System.out.println("Enter account number");
                        int oldAcNo=scan.nextInt();
                        for(BankAccount bankAccount:listOfAccounts){
                            if (bankAccount.isAcNo(oldAcNo)){
                                managedAccount=bankAccount;
                            }
                        }
                    }

                    while (!innerExit){
                        for(String option:accessOptionList){
                            System.out.println(option);
                        }
                        int accessReply=scan.nextInt();
                        switch(accessReply){
                            case 1:
                                System.out.println(managedAccount.getBalance());
                                break;
                            case 2:
                                System.out.println("Enter amount to debit");
                                int debit=scan.nextInt(); 
                                managedAccount.debit(debit);
                                break;
                            case 3: 
                                System.out.println("Enter amount to debit");
                                int credit=scan.nextInt(); 
                                managedAccount.credit(credit);
                                break;
                            case 4:
                            default:
                                innerExit=true;
                        }

                    }
                    break;
                case 3:
                default:
                    mainExit=true;
            }
        }
    }
}
public class BankAccount {

    int accountNumber;
    int balanceInPence;

    public BankAccount(int accountNumber, int balanceInPence) {
        this.accountNumber = accountNumber;
        this.balanceInPence = balanceInPence;
    }

    public void credit(int creditInPence){
        balanceInPence+=creditInPence;
    }
    public void debit(int creditInPence){
        balanceInPence-=creditInPence;
    }
    public String getBalance(){
        return balanceInPence/100 + "£" + balanceInPence%100;
    }

    boolean isAcNo(int testAcNo) {
        return testAcNo==accountNumber;
    }
}

That program seems quite a lot smaller than some answers that I would consider not too broad

share|improve this question
5  
I'm hoping shog9♦ has finished his breakfast –  Richard Tingle Jan 10 at 0:31
9  
Too broad. Too broad daorb ooT. –  Rosinante Jan 10 at 0:44
2  
@KenWhite I don't see why Checking if a folder exsists using a .bat file would be off-topic or otherwise unsuitable. Tactical map ingredients? feels too broad but I'm not sure, I know nothing about the subject. –  Gilles Jan 10 at 0:52
53  
I just noticed that two of the three close reasons I use most often disappeared, with no adequate alternatives apparent, so I came here looking for answers. I suppose one could argue that "questions concerning code you've written" could be covered by "unclear..." or "too broad", but "question asking for code..." represents one of the most common problems with poor questions, and is not covered by those reasons. A question can be very clear and very specific in asking someone else to write code for the asker. I think this decision was a mistake. I'd very much like to see that one reinstated. –  Adi Inbar Jan 10 at 0:58
9  
@Gilles: Regarding the "checking a folder" question, did you read the comment I left there? A five second search found an answer to half of the question using words in the question (I left a link), and I found the other half (but didn't link that because of space limits). There was zero effort to even try to find a solution first indicated; it's a "Please write me the code" question. Is that where we're headed now? I'm already seeing more "Here are my specs. Do my work for me?" posts, it seems. –  Ken White Jan 10 at 1:01
19  
@Gilles I think the fear is if a large percentage of questions become doing someones homework for them (as opposed to helping them with it on a specific problem) it will drive down quality and drive out experts. And then there will be no answers for anybody –  Richard Tingle Jan 10 at 1:11
1  
@Gilles I did read it, I just don't feel it addresses the issue adequately. See the comment I just added to your answer below. –  Adi Inbar Jan 10 at 1:12
3  
@RichardTingle Seeing that the questions on SO that tend to help me the most (as a professional programmer) tend to be ones that don't include code, I beg to differ. Most questions that include code are either debug-my-code-for-me, or XY questions where the answers waste time and energy explaining why approach X is wrong, when I was looking for a way to do Y all along. –  Gilles Jan 10 at 1:12
1  
IMO this would be clearly "too broad" –  Devolus Jan 10 at 9:34
11  
Honestly, it was bad already with people getting their HW or actual work done for them on SO; far too few people moderating and way too many people trying to up their rep. Now? it seems like this is a move to increase advertising revenue. Dump your HW or thing you don't understand on SO, and it can't be closed (legitimately). I give back to SO because when I google something it often comes up. I believe in the concept. This? I may stop. –  Brian Roach Jan 10 at 11:41
4  
@RobertHarvey Why, beyond simply defining that to be true it doesn't seem to logically follow. "Do my simple project for me" seems fairly narrow –  Richard Tingle Jan 10 at 18:54
2  
@RobertHarvey Which side of the line would you put my example question? I answered it in approximately 100 lines of code which is a lot less than some answers to questions which I've thought were fine –  Richard Tingle Jan 10 at 18:57
1  
@RichardTingle: Your example seems too broad. It can certainly be answered with a code dump in a reasonable space, but not with a detailed explanation of the code and what it does, and questions with specific requirements like that are unlikely to help anyone else, because they're not general enough to have broad applicability to other programmers. –  Robert Harvey Jan 10 at 18:59
5  
What I do now is I will vote to close such a problem on the basis of "unable to reproduce the problem" since that is usually the case. The poster's problem is, "I can't do this homework problem, can you do it for me?" but I when I try it, it works. –  lurker Jan 11 at 16:49
2  
(1) This post describes the new rules, but I don't see where it gives a reason for the change. It could help us understand, if you explained why. (2) I'm betting on "Too broad" to be the new catch-all ("Too broad" is too broad)... –  Drew Jan 13 at 3:47

7 Answers 7

As mentioned above and elsewhere, presumably the new order of things is such that if the question contains a list of requirements only, but they are too vague, we can close them as unclear. If the list of requirements is too broad, we can close them as, well, too broad.

That leaves list of requirement questions that are quite clear, and not too broad. I guess many people feel these should not be closed at all.

My worry is that this elides the real issue of why much of the community wants to close questions that are an answerable, clear list of requirements with no attempt by the asker.

My understanding is that from the very beginning of StackOverflow, one of the main issues was that we needed to retain the "experts". If the site becomes filled with questions and behaviors that the best, most knowledgable question answerers find obnoxious, they will leave and the site will suffer for it. And it seems to me that many people on SO feel that asking clear, answerable questions that are nothing more than a list of requirements is rude, makes their experience on the site less pleasant, and should be discouraged.

However, we can't simply restrict ourselves to only questions that experts find interesting, because that's both rather elitist and will drive away good question askers, and is probably too small a set of questions anyway.

So I always viewed the requirement that folks demonstrate at least some attempt, with actual code in most cases to be the compromise that bridged this gap. We'll let people ask very basic, how do I do x, y and z questions, so long as you demonstrated some minimal attempt on your part.

Posting a clear, answerable list of requirements may be a "valid question", but it's also something that I think a lot of folks may find really, really rude and obnoxious. And demanding that the asker also provide a very minimal attempt at a solution was our way of compromising between the beginners who deserve to get answers, and the expert question answerers who don't like feeling as though they are helping people who can't/won't bother to help themselves.

Down voting such questions doesn't really address this issue, since the only real deterrent on this behavior is not having your question answered, which requires closure.

I don't particularly have a solution, but needed to share something since the discussions surrounding these issues lately have tended to make me feel rather sad and disconnected from a community that I once thought I understood fairly well.

share|improve this answer
23  
Indeed, this whole change has happened rather suddenly, and I'm somewhat confused by it. I tried to review the close queue earlier today and realised I had no idea what I was doing anymore so stopped –  Richard Tingle Jan 10 at 17:58
8  
That leaves list of requirement questions that are quite clear, and not too broad. I guess many people feel these should not be closed at all -- That's absolutely right. If such questions are uninteresting to the experts, a downvote is sufficient correction. In fact, that's the guidance given on the downvote button: This question doesn't demonstrate research effort; it is not useful or unclear. –  Robert Harvey Jan 10 at 18:30
9  
I hear what you are saying about demonstrating effort, but that's never really been a criteria for closing. All other things being equal, I much prefer a well-worded "how do I do this not immediately obvious thing" question to an under-specified, poorly-worded, "why doesn't this work" question that nevertheless demonstrates effort, because the former question is useful to others, while the latter is not. –  Robert Harvey Jan 10 at 18:37
11  
@RobertHarvey "but that's never really been a criteria for closing" - This is one of the attitudes from mods/SE employees that's made me feel pretty bad about my participation in the community. The close reasons are the map, what the community actually does with them is the territory. If a significant chunk of the community (or specific tag sub-communities) feel strongly that this is a reason to close questions, just declaring us wrong feels pretty crappy. –  joran Jan 10 at 18:42
1  
@RobertHarvey The fact that these sorts of questions don't annoy you is great. But that doesn't help the people for whom they are a problem. Is the message that we should just suck it up or leave? –  joran Jan 10 at 18:43
4  
What does annoyance have to do with it? "What have you tried" has never achieved community consensus; it has always been controversial, in no small part because it converts questions from How To questions (which are useful to everyone) to highly-localized troubleshooting questions (which are only useful to the OP). –  Robert Harvey Jan 10 at 18:45
7  
A large part of why I participate on SO is that I get something back from it. What I get back is answers. I don't get anything back from debug-my-code questions. The content that is most useful to me mostly comes from questions that have little or no code, that ask the same “how do I do this” question that I am trying to solve. Questions with code often get into XY problems that the answers waste space struggling against. I'm trying to do Y, I don't care about somebody's attempt to use method X. I don't want to close these questions because they are the ones whose answers help me the most. –  Gilles Jan 10 at 18:48
3  
Worth noting: poorly-researched questions are a self-correcting problem; users who ask them routinely get downvoted and question-banned. –  Robert Harvey Jan 10 at 18:52
    
@Gilles If the question's list of requirements truly are clear, and not too broad, the addition of a minimal attempt on the part of the OP will never, in my view, lead to an XY problem. We agreed that the question was answerable without the code. Show their attempt provides more opportunities to help the OP with specific mistakes. –  joran Jan 10 at 18:54
    
@RobertHarvey Perhaps I misread your "I much prefer..." sentence. My point was simply that deciding which questions should be closed is essentially is judgement on which questions do the most harm. If we disagree about how harmful certain questions are to the site, then we will naturally disagree about whether they should be closed. I took your comment to mean that you thought clear, answerable list of requirement questions with no attempt at a solution are not very harmful to the site. –  joran Jan 10 at 18:56
4  
@joran I strongly disagree. As an answerer, it's often been my experience that I answer the same question over and over again, and the sole reason the questions aren't duplicate is that every asker has gone through a different false track. –  Gilles Jan 10 at 19:21
1  
@Gilles We have had very different experiences, then. –  joran Jan 10 at 19:23
2  
@Gilles: it's worth noting that you and joran are experts in different fields/tags, which may account for your different views on things. Personally on the JavaScript tag, I find much of the same experiences as you. In fact, I try to close these as duplicates, only to get "it's not a duplicate, the asker's code isn't exactly the same" or someone who comes in and answers it anyway (usually 2-3 users), even if it's off-topic. –  Qantas 94 Heavy Jan 11 at 11:11
2  
How do you recon, we close THIS question? Unclear? Too Broad? IMHO none as it is absolutely clear to me what the OP wants and it doesn't have many answers. –  Siddharth Rout Jan 13 at 9:13
1  
"In fact, that's the guidance given on the downvote button: This question doesn't demonstrate research effort; it is not useful or unclear." So why isn't downvoting an option when reviewing questions? I will simply start downvoting things if you make this option available. –  james.garriss Jan 13 at 16:32

The reason why I come to stack overflow is because I consider this site the best. And the reason is very simple. Unlike other sites, we don't offer code/solution in a platter. We help the user grow.

I am not too happy with the new close options as it doesn't address the questions which are clear and are not broad. These questions lack clear research efforts. Yes, I can downvote them but is that the solution? I absolutely agree with what Ken White mentioned in the comment above.

Putting the question on hold gives a chance for some more positive feedback ("you can get this reopened") and some time to improve it

Here is one good example where the OP admitted that he/she didn't read the rules. Now this question is absolutely clear to me and can be answered using a very short code. So how do we close this as I definitely don't want to give the code in a platter.

Experts like you and me are not paid or given any goodies to answer questions (like they do in ExpertsExchange or www.elance/www.freelancer.com). We answer questions in our spare time because we have the passion to help the community evolve. Personally, I get an awesome feeling when I get a comment by a user saying that I made his day irrespective of the fact whether the user upvotes or marks my post as an answer.

I am not saying that I have asked the best of the questions in stack overflow but the three questions that I have asked in the last 2 years explain what I want very well without even hinting anyone to serve me the complete solution.

Cutting short my rant, In my opinion, yes the old must demonstrate a minimal understanding of the problem being solved should be rephrased as it sounds very offending as most users (and not all) do know what they are asking. Perhaps we need a new close reason such as this

This question is closed temporarily as it lacks research efforts. Please edit the question explaining the exact requirement. Also include attempted solutions, why they didn't work, and the expected results.

Note: The above is just an example and can be improved to what the community feels is the best.

share|improve this answer
7  
+1 Agree completely. One of the issues that eventually grated on me at EE was that the site was geared (dollared?) completely to the party asking questions. No question from a paying customer was too bad to answer. Whereas SO has the balance right in that its about the broader community .. but IMO, amputating the close options when they could have been pruned is a step in the wrong direction when it comes to getting community input. –  brettdj Jan 13 at 10:39
3  
Agree with most of this (for me it's not so much the warm fuzzies, but rather I learn so much from answering Q's). Interesting to note that while the linked Q apears clear and well wriiten, the OP commented on the only answer I've spent some time creating my own solution which was a text to columns approach and then deleting the unwanted columns directly contradicting the tag Excel-vba. –  chris neilsen Jan 13 at 10:54
3  
Before restoring a Minimal Understanding/Show your research close reason, I think we need clarity on why a question lacking these should be closed. Paraphrasing some of the other answers/comments here, this could include (1) reasurance that the OP is capable of understanding reasonable A's (2) proof the OP is not a help vampire (3) encourage the OP to exhaust his/her own resources before asking. (4) I also think that the emphasis should be on evidence of research/effort. While this will often be code, it doesn't have to be. ("..I've Googled for nearly an hour.." doesn't qualify!) –  chris neilsen Jan 13 at 10:56
2  
You're clearly in the wrong place. The purpose of Stack Overflow is to “build a library of detailed answers to every question about programming”. It's not to give hints (shudder), it's to produce answers that are useful to the community as a whole, not just to the asker. The original asker's effort or lack thereof is completely irrelevant to future visitors. –  Gilles Jan 13 at 16:18
6  
@Gilles: I think you have misunderstood then :) Are you willing to do someone's homework if it helps future visitors? –  Siddharth Rout Jan 13 at 16:21
    
@SiddharthRout Of course. Many homework questions are ultra-specific, and not SE good questions because they'll only ever help someone with the same homework question. But if a question happens to be both suitable for SE and a homework question… I probably won't even know whether it's a homework question unless the asker tell me. How is the homeworkness relevant? –  Gilles Jan 13 at 16:26
3  
@Gilles: Like I mentioned in the comment below your answer, I simply bow out from this conversation as I simply don't agree to your "understanding" of what stack exchange is :) –  Siddharth Rout Jan 13 at 16:30
3  
+1 for stating the problem so well. –  james.garriss Jan 13 at 16:35
    
While I partially agree with @SiddharthRout (downvoting is not a solution) and I am going to miss the demonstrate a minimal understanding as a reason for closing the question (strictly applies to do my homework and no research/understanding shown). I am kind of happy to see it go... After hanging around SO for about a year I am a bit sick of troubleshooting and debugging same errors/questions. At this point I am more looking forward to see a higher quality questions, better Q/A. I quite often disagree with the community(specifically mods) on meta so my presence here will be occasional now –  user221081 Jan 13 at 17:15
2  
The reason why I come to stack overflow is because I consider this site the best How ridiculous. The best for what? You should come here to take advantage of its stated goals. Not any random goal you make up because you suddenly need help with your problems. SO is not and should never be a code generator, no matter how much you think you need one. –  Lightness Races in Orbit Jan 15 at 1:05
1  
because you suddenly need help with your problems. LOL@LightnessRacesinOrbit: At the risk of sounding naive or rude but trust me I am not... Do you think I come here because I need help? Which part of my post made you think that? Maybe you need to re-read my post again? –  Siddharth Rout Jan 15 at 7:08
1  
@lightnessracesinorbit even more ridiculous that you are making up a random goal strawman for someone else's reasons for being here ... even more so as you are completely off the mark. Sid is a Microsoft MVP. –  brettdj Jan 15 at 7:35
    
@brettdj: He could be a Microsoft founder for all it matters: I was responding to the statement I quoted and the statement only, using the wider form of "you". In the 1920s I might have said "because one suddenly needs help with ones problems", but it's not the 1920s any more. Going further, in principle, being a Microsoft MVP does not mean I automatically have to agree with everything he says, so I don't see why his credentials are relevant in the slightest. The irony is that I basically agree with this answer and had already upvoted it ;) –  Lightness Races in Orbit Jan 15 at 10:20
2  
@SiddharthRout: Yeah, it does. In my defence, I was pretty drunk. :) –  Lightness Races in Orbit Jan 15 at 10:30
1  
@LightnessRacesinOrbit now your orbit makes a little more sense to me :) –  brettdj Jan 15 at 10:36

Ultimately, I believe the problem is many of our users tend to think in very binary terms.

if (asking for a tool)
    close as tool recommendation
else if (!has code)
    close as describe the specific problem 
else if (can I have the code)
    close as minimal understanding
else if (does not include specific statements of research)
    close as minimal understanding
    etc       
    .
    .

And it's this line of thinking that led to the misuse of the minimal understanding close reason, among others. Users were looking for questions to have arbitrary pieces of information and not evaluating the posts. I am very guilty of this myself, but after thinking about the depreciation of the 2 new close reasons, I'm starting to see where I made mistakes in how I evaluated posts.

Ultimately, closing questions is not about blanket statements, and specific requirements that you need to have x or y. It is about evaluating the specific question itself and judging the quality of the post.

  • Is the question well written and well thought out (And I don't mean perfect grammar and spelling - you can have a well written and thought out post that need serious help in the grammar department)
  • Did the user do his research. This don't always need to be "I did X, Y, or Z", sometimes it is something that is obvious based on how the question is written and what the user is looking for. And frankly sometimes, you can get away without this if your question is well thought out and well written.
  • Did the user adequately explain the problem and the issues that he is having
  • Was the question asked before?
  • Can the post be answered without a novel

Once we get back to judging the posts, I think it will benefit the site in the long run.

And while it is somewhat contrary to my points above, most tool recommendation request still can be handled with a blanket if statement, but I think they are the exception because of the specific nature of those posts.

share|improve this answer
    
+1 i was a bit shocked at first as I havent been following for a couple weeks but reading meta I now see the point of removing the minimal understanding etc. You have nicely pointed out the criteria for judging these days –  user221081 Jan 13 at 8:23

The "minimal understanding" close reason that was removed was never intended to address questions from folks who know what they're doing, can express their problems clearly, and can understand and make use of a reasonably-scoped answer. As I wrote in the original proposal for its creation:

If you're asking others to solve a problem for you, you must be able to understand and communicate it well enough to allow useful answers to be written and found by others.

I thought that was a reasonable thing to ask, and a reasonably clear way of expressing it.

I was utterly wrong.

That you even raised this discussion is itself evidence of just how badly that particular wording communicated its intent. You wrote as your example a clear, understandable problem statement, demonstrating within it knowledge of the problem domain and even including a full set of relevant tags - and you question whether this would now be seen as on-topic!

Well, that's a good question. But I can't answer it. That's a question for the folks writing answers every day on Stack Overflow - if they can't, or don't want to, answer these questions, then they'll go unanswered and most will eventually be deleted entirely.

Camels and gnats again

I titled the answer you reference "Closing camels, not gnats" - I suppose I should elaborate on that...

By adding that off-topic reason, I was trying to pinpoint something rather subtle: requirement dumps from folks who had so little understanding of the topic that the best they could do with an answer was paste any code in it into their project and hope it compiled and worked. Such questions are not hard to find, sadly, and represent a very real source of frustration for the good folk trying to answer them.

But I've come to realize - mostly due to discussions such as this - that this was entirely too fine of a line to draw. Gauging the skill level of askers can be surprisingly difficult once you get away from the most egregious examples... And so many folks stopped bothering, subtituting instead a requirement for ostentatious displays of effort. The outcome has been increased confusion and frustration, both from the folks whose questions have been closed, and those trying to close them.

And to what end? While we've all been trying to strain out these well-written but no-understanding gnats, there's a veritable caravan of egregiously-bad camels stomping all over the site: questions with poorly-defined requirements, dumps of requirements with no question, out-and-out nonsense that might most charitably be considered the offspring of a very bad question and a very bad translator...

When true "lack of understanding" questions so often have other, more serious, more obvious problems, is there really any point to trying to break them out? Do we really care whether or not the asker understands what he's asking, if he can't communicate it clearly to the rest of us?

I don't think so.

share|improve this answer
5  
What about regex-for-me questions? Should they be answered? They are (not always, but often) well specced, and by the nature of regex, not too broad. Is the only valid close reason here "duplicate"? –  Jan Dvorak Jan 13 at 7:23
1  
Not sure what all the regex hand-wringing is about lately, @Jan - it's not like it's the only tag where folks ask specific questions that can be easily answered with simple expressions. Heck, it's not even close to the most active such tag... Anyway, as I said above: this is only a problem if folks decide they don't like answering these questions anymore. –  Shog9 Jan 13 at 7:38
6  
My example was deliberately of the scale of a typical homework. This was deliberate because I fear the world where the question offered to students by teachers (which will always be well speced etc because the teacher understands it) can simply be put up on stack overflow and then copied and pasted. This seems like a bad situations seems bad for students and bad for us (how many unique simple questions are there that we are now encouraging to be asked rather than the components) –  Richard Tingle Jan 13 at 7:46
    
I hate to break it to you, @Richard, but... Folks have been posting their homework on SO and getting good answers for a long, long time now. There used to be a whole tag for such questions! But believe it or not, most homework assignments don't make particularly great SO questions if posted verbatim - for starters, "recursion homework" makes for a lousy title. –  Shog9 Jan 13 at 7:52
2  
@Shog9 unquestionably true (and I have no objection to questions about part of a homework), I just don't want to make it any easier –  Richard Tingle Jan 13 at 7:54
    
So don't answer them then, @Richard. Personally, I think if someone pays for an education and then decides to cheat, they're cheating themselves - give 'em as much rope as they ask for. –  Shog9 Jan 15 at 4:42
2  
@JanDvorak Personally I find regex questions to be amongst the most unclear out there. Very rarely is the requirement defined without ambiguity. –  Duncan Jan 15 at 10:53

A question is a true question if it asks a question. The presence of code has nothing to do with whether the question is a question, otherwise we would simply use a filter that requires a minimum number of code lines. Which would be silly, which is why we don't do it.

Where your example fails is that the question is so open-ended that an answer would be a whole application. There's a close reason for that:

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.

If the requirement can be answered with three lines of code, it isn't too broad. If the requirement requires 10000 lines of code, it's too broad. Again, there isn't a precise threshold — you're supposed to use your judgement when deciding whether to vote to close.

The “minimal understanding” understanding close reason was removed because it was massively misused. Your reaction demonstrates a misunderstanding:

This was the close reason used for requirement dumps and general low effort questions.

No, that would be wrong. “Too broad” is a perfectly accurate description of requirement dumps — though you may want to leave more focused guidance, like any time you're closing. For “general low effort questions”, if you were closing as “requires minimal understanding”, that was the wrong button: the button for low effort questions is downvote and not close. Closing is for questions that cannot be reasonably answered. (Of course there are low-effort questions that cannot be answered, which is why you can combine the two actions.)

share|improve this answer
36  
If the "minimal understanding" reason was being misused frequently, then perhaps it should be reworded to make it clearer what kinds of questions it's intended for. But I feel strongly that there should be a distinct closing reason for questions that just describe what the code should do and ask how to write it, without showing any attempt on the asker's part or identifying a specific problem. You say "closing is for questions that cannot reasonably be answered", but I'd add that it should also be for questions that can reasonably be answered but try to use SO as a free code-writing service. –  Adi Inbar Jan 10 at 1:07
12  
So your recommendation is that we just downvote the low (or no) effort questions, and populate the site with tons of downvoted questions? Yep, that should encourage more people to post questions on SO instead, and vastly increase the knowledge base here. I know that if I'd first come to SO and seen the front page full of -1, -2, or -5 questions I would certainly not have considered it a great font of expertise and problem solutions. –  Ken White Jan 10 at 1:15
13  
@Gilles I read the linked discussion before I posted any comments here, and I did read your answer, but I strongly disagree with it. Downvotes are not an adequate replacement for a closing reason for questions trying to get people to write code to the asker's specifications. I don't think I've been misusing it, judging from the fact that it has been one of my three most frequently used flagging reasons, and I've only had one out of 317 flags declined. –  Adi Inbar Jan 10 at 1:18
9  
The entire point of putting questions on hold in the first place was to give the user a chance to edit the question and get it reopened. The change, IMO, simply means they stay open longer, and the "piling on" effect gets it substantially more downvotes and discourages people from bothering to improve them. ("Why should I fix that? It already has too many downvotes.") And how does that encourage people to use SO? "They bombarded my question away! Screw this BS!!!" –  Ken White Jan 10 at 1:19
5  
@Shog9: So do I. But I certainly don't expect to post my requirements on some web site and ask people to write it for me. –  Ken White Jan 10 at 1:21
18  
@Gilles: Ok. I need an app (in Delphi, 'cause that's what we use where I work) that meets these specs (4 or 5 long paragraphs worth, dealing with some Active Directory and remote computer management), and it's URGENT!!!. If I post it NOW, can you have it for me in like 15 minutes??? It's really URGENT!!! Thx. BRB. Yeah, we need to encourage those questions more by leaving them open. The solution to the size of the close review queue is not to leave bad questions open longer, and neither is increasing the number of visible (and rather discouraging) downvotes. –  Ken White Jan 10 at 1:23
6  
@Gilles Again, I strongly disagree, and what you're saying sounds to me like it runs completely against most of what I've read here at meta in the past and the impression I've gotten of the general feeling on the part of the community. It has been repeated over and over, SO is a Q&A site, which would imply that requests that someone else write a program to perform a list of requirements is off-topic, unless the request is narrowly targeted enough to qualify as a specific how-to question. –  Adi Inbar Jan 10 at 1:31
6  
I also want to add that downvoting is not sufficient for those kinds of "questions", because the issue isn't just a matter of quality, it's that it's not really a question and doesn't belong at a Q&A site. Presumably that's why it was in the "off-topic" category--because it's just that: off-topic. Just downvoting doesn't get the message across that this site is not intended to be a free code-writing service. –  Adi Inbar Jan 10 at 1:39
15  
@Gilles: What do I want? I read posts frequently at MSO about how we're not nice enough to new users, while at the same time changes are being made that make it less friendly. You're encouraging negative feedback "Downvote them instead, to make it very clear that their question is worth being beaten to death quickly while making them feel inferior at the same time." Putting the question on hold gives a chance for some more positive feedback ("you can get this reopened") and some time to improve it. –  Ken White Jan 10 at 1:41
14  
BTW, I want to note that when I was new at SO, I did sometimes answer "can you write this program for me?" type questions. It was through reading experienced members' "what have you tried" type comments and then reading discussions on meta that I learned that the general feeling in the community is that it's not what this site is about, and I've come to agree that "questions" like that subvert the site's mission. Asking for a program based on a description of requirements isn't a question about programming, even if it's phrased as "How would I write a program that does the following things?" –  Adi Inbar Jan 10 at 1:53
8  
@Gilles I still disagree that "too broad" covers it. The description of the "too broad" reason implies that it applies to questions that are discussion topics, or ask people to expound on a wide-ranging subject, or otherwise aren't specific enough. A request for someone else to write one's code can be very specific. We can debate the semantics to death here at meta, but "too broad" doesn't get the message across to new users that this is a Q&A site, and that questions asking someone else to write a program to one's specs are off topic for that reason, not just because they're "too broad". –  Adi Inbar Jan 10 at 2:10
5  
-1 for using the word "cromulent". Whatever that means. –  John Saunders Jan 10 at 5:16
10  
@Gilles The point I'm making is that without the "No really, you should at least have the slightest clue" close option, "too broad" becomes completely ambiguous (as if it wasn't already). There are any number of "Tell be how to do this" questions that "let me google that for you" is the appropriate answer unless we don't care about the value of SO. If we want to turn SO into a mechanical turk for google searches, then ... I'm out. –  Brian Roach Jan 10 at 12:01
14  
So I guess the issue here is that many folks want to be able to close low effort, answerable questions, and many other folks think that's a bad idea? :shrug: Changing the names of the close reasons isn't likely to resolve this. If a significant chunk of the community feels strongly that low effort, answerable questions should be closed, they will continue to do so using whatever close reason they think fits the best, I would guess. –  joran Jan 10 at 17:14
9  
So we are now officially endorsing poor quality questions? Help vampires don't care about whether or not their question gets downvoted to oblivion, all they care is that some medium to high-reputation user who is a rep whore swoops in and delivers them their solution on a silver plate. Is that really what we want to be? –  Qantas 94 Heavy Jan 11 at 11:06

Questions without effort were never "off-topic". They were always crap questions. Off-topicness is entirely orthogonal.

The problem is that the appropriate response to this is a downvote, not a close vote, and "minimal understanding" close-votes were being offensively abused by almost everybody on this website when they thought they were better than the OP.

The original intention of that close reason was to encourage the posting of a reproducible testcase, and this is reflected in the new replacement close reason.

Vote to close a question because it has been inadequately posed, not because you think the OP has not been studying the topic long enough.

share|improve this answer
4  
So, we shouldn't close give-me-the-regex questions? Because the askers don't care about the question score, nor do rep-hunter-answerers. –  Jan Dvorak Jan 15 at 5:30
    
@JanDvorak: I didn't say that. "Give-me-the-regex questions" don't and never did fit "minimal understanding". You can "understand" something perfectly well but not have bothered asking a question, but instead simply asked for a free solution. Granted, I'm not sure where that fits into this. –  Lightness Races in Orbit Jan 15 at 10:16
1  
What if I start using a custom "this question appears to be offtopic because it requests a solution, not explanation" close reason for gimmeregexes and other clear non-broad homeworklike dumps? –  Jan Dvorak Jan 15 at 10:30
    
@JanDvorak: I think that works –  Lightness Races in Orbit Jan 15 at 10:31
6  
Can this become an official close reason, please? :-) –  Jan Dvorak Jan 15 at 10:32
2  
@JanDvorak I second this suggestion. "requests a solution, not explanation" is not exactly the same as "user didn't put in any effort", but is close enough for most purposes where the latter was applicable. It also has the bonus of being less hostile. –  Ian Kemp Jan 16 at 9:50

At first, I too was shocked about this change. Upset, even.

I mean, it came kind of as surprise; almost overnight a few of the close reasons I've become accustomed to using just...disappeared, replaced with one that didn't adequately fit the reason I felt that a question I had spotted needed to be closed.

I took a moment away from flagging and vote-to-close so I could wrap my head around this new scheme. While I took that brief hiatus, I looked at the questions that were being asked in the interim, and thought long and hard about my previous actions towards those questions. Normally I'd fire-and-forget on some questions that were incomplete or overly broad, and those that I was on the fence about in terms of details, I'd try to glean more from the OP, or close if there wasn't sufficient details to answer the question.

Admittedly my normal flow on the site and in the review queues is totally broken, and I'm still unsure as to what actions of mine are the right actions, both for keeping the site at a high quality, and to ensure that good questions don't get a whole bunch of close votes and down votes just because of a few misspellings.

Suffice to say...

I'm still confused, but I'm slowly starting to realize this is better.

Here's why.

We've been closing questions for the wrong reasons for a while now.

Take this one for example. This is a question that's way too broad to answer, and should be closed as such. (Ironically it's closed as "being a question regarding general computing hardware/software, and Super User may help better", and no that's just not true.)

If this were the old close scheme, how many votes would we get for that alone? 2 or 3, easy. We'd also get one for it not demonstrating an SSCCE, and one for it being too broad, maybe.

Take this next one. I simply don't know now how to react to this question beside it being "too broad", and it not being useful (i.e. downvote). Before, I would probably have voted it down for one of the now-absent close votes, although I'm sure I would have regretted it - it should be "too broad".

We've been way too strict with closing questions.

I realize that we want high quality with our questions and answers, but for the longest time, I felt like we were setting a bar of perceived quality so high that it would be difficult to "ask the right thing at the right time".

Here's a fun little example. Sure, the question could have been answered with a little bit of research, but it's still a good question. And it was closed (briefly) for an entirely incorrect reason (the duplicate answer didn't match up with the actual question being asked).

I had noticed this trend since Winterbash, but I was hoping that it'd have blown over after the hats were put away. I do admit, though, I've seen this trend before even that; perhaps the hats magnified the issue?

What do we gain by scaring the newbies away?

How much research effort is really needed to ask a question on Stack Overflow? Why does it have to be "a lot"? What if it's a non-trivial but non-novel question?

Why can't a newbie ask a question about something they're not 100% sure about? Sure, it has to be a percentage within reason in my opinion (to curb help vampires), but why does the asker have to practically know the answer before they ask the question? Maybe we were being too strict.

Tell you what - I'm going to hold off of doing any vote-to-close until this digests and is all clear to me. I will admit that I am disappointed, if not very frustrated that this wasn't communicated with more broadness and visibility for longer, but I'm slowly coming around.

This isn't a bad thing. I'm starting to feel more comfortable with it.

share|improve this answer

You must log in to answer this question.

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