Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 157 Stack Exchange communities.

What is meta?
Here's how it works:
  1. Any Stack Exchange user can ask a question
  2. The community provides support, votes on ideas, and reports bugs
  3. Your voice helps shape the way Stack Exchange operates

There are two lines in the FAQ that are seemingly contradictory, both in the What kind of questions should I not ask here? section, and a third reference to this problem in the Stack Exchange about page's What’s special about Stack Exchange? section.

As Matthew Read said in the comments, Statement I allows for curiousness-driven questions to be posted on Stack Exchange sites (and I think it's safe to say that they must also meet the other criteria for an allowable question). Statements II and III do not allow for such questions, and require the motivation behind a question to be solving a particular problem.

Do you, or do you not, need a concrete problem that you are trying to solve in order to pose a question to any single Stack Exchange community?

Statement I:

However, if your motivation is “I would like others to explain __ to me”, then you are probably OK.

Statement II

there is no actual problem to be solved: “I’m curious if other people feel like I do.”

Statement IIa (Programmers.SE Moderator Mark Trapp) (I think this got deleted in something of an insanity spree in what gets moved/posted where, but I believe Mark can confirm this statement):

If the question askers provided a "This is my problem, this is what I'm thinking, how can I solve it?" story, they'd be fine. That's all we're looking for: some concrete way by which to evaluate the answers.

Statement III:

We also expect questions to represent real problems, not just imponderables, hypotheticals, or requests for opinions.

To make this concrete, let's just take a question from Stack Overflow: Why MutableString is deprecated in Python? This question has 2 upvotes, 0 downvotes, and over 330 views. It's an OK question, and something that I'm sure people have wondered. However, it doesn't solve anyone's problem. Does that mean this question should be closed?

Maybe I'm doing a really crappy job explaining my confusion.

What is the difference between asking someone to explain a concept that you read in a book (allowed, per Statement I) and asking a question that doesn't solve an actual problem (not allowed, per Statements II and III)? To me, they are the exact same thing. Not understanding a concept would potentially lead me to not being able to solve a problem, but until I try to apply the concept to a concrete solution, then it's not a problem.

share|improve this question
@MatthewRead summed it up nicely. I'm going to actually add that to the original question. I'm surprised this hasn't come up before with all of the new sites opening so frequently. – Thomas Owens Sep 16 '11 at 22:05
Curious if other people feel the way I do implies a polling type question, which we know is a no-no. Asking someone to explain a something is not asking people to explain how they feel. The former has an answer. Thomas, I think you are depriving people of the nature of the issue to which you linked. To me, that was more of a what if ________ happened? more than anything. – jonsca Sep 16 '11 at 22:12
Related: Original Meta Programmers Topic; Questions that prompted all of this: Question 1, Question 2 – user149432 Sep 16 '11 at 22:15
I respect the fact that you stood up for the OP in that case, but that question had so many loose ends. I think with a strong edit, the concept may be viable, but there's no way it can't be largely speculative. The idea's time might be just around the corner, but we might as well speculate about how brain-computer interfaces might influence software engineering. – jonsca Sep 16 '11 at 22:21
up vote 9 down vote accepted

You're being too pedantic.

Ultimately, a question needs to be constructive. Constructive questions are, in simple terms, clear questions of value to other programmers, that attract clear answers that are valuable to other programmers.

You can take a cue from the "Not Constructive" close reason, which pretty much summarizes the reasons non-constructive questions get closed:

This question is not a good fit to our Q&A format. We expect answers to generally involve facts, references, or specific expertise; this question will likely solicit opinion, debate, arguments, polling, or extended discussion.

Your concrete example is a good question. There are good reasons things are deprecated, and knowing the reasons why things are deprecated is useful to programmers. The first answer for that question pretty much explains it:

The MutableString class was meant to be educational, and not to be used in real programs. If you look at the implementation, you'd see that you can't really use this in a serious application requiring mutable strings.

I'd say that if I was programming in Python, wondering whether or not to use the MutableString class, this would be pretty useful information to know.

share|improve this answer
This is much more like what I'm looking for (+1), however, I do want to poke at one thing, and then perhaps I'll have a clear answer. How do you know if a question is "likely solicit opinion..."? Until you have answers, how do you know what kinds of answers you'll be getting? For some questions, it's fairly clear ("Do you use spaces or tabs?" is going to be full of opinion/debate/argument). Other times, there might be authoritative sources on the matter that provide "the one true answer as we know it today". How can you tell and justify closing questions until someone has found The Answer? – Thomas Owens Sep 16 '11 at 22:51
Or, if there isn't an answer, the question has degenerated into discussion/opinion/argument? I guess what I'm getting at here is unless you are an expert on everything, you don't know if there is something more authoritative than opinion for every question. I've, on multiple occasions, came across closed answers because they weren't constructive but found an authoritative answer, so I sent it to a moderator to reopen so I could post. Until a question develops and matures, I'm not sure if you can tell if it will be a good question or not. – Thomas Owens Sep 16 '11 at 22:54
@Thomas: You can't always tell ahead of time if a question is going to solicit good answers. But the decision to close a question is made on the basis of how the question is asked, not on its final outcome. This is necessary because everyone who wants to post their unconstructive questions will point to other unconstructive questions on the site as evidence that it is OK to ask theirs. – Robert Harvey Sep 16 '11 at 22:56
(Also, I totally agree with you that questions need to be constructive and constructiveness should be a key factor in deciding if a question is good or not. However, how do you quantify constructiveness?) – Thomas Owens Sep 16 '11 at 22:57
In general, a constructive question is one that can be definitively answered. There are certain red flags for non-constructive questions: "What is the best...", "What is your opinion on...", questions that are speculative, questions that already have the answer in the question, questions where every answer is equally valid, etc. – Robert Harvey Sep 16 '11 at 23:01
That brings up a good point. Why don't more people (users and moderators) try to fix these bad questions sooner rather than later? Once a question has an answer, it becomes incredibly difficult to fix the question without damaging the answer(s). If an answer becomes invalidated by edits and the author doesn't update or delete it, it will probably get down voted into oblivion. Are there things that we can do to try to salvage these questions? What are those things? – Thomas Owens Sep 16 '11 at 23:02
Stack Overflow attracts about 800 to 1000 flags per day. There simply isn't time for moderators to "fix up" questions. Moderators are "exception handlers;" I believe the role of making questions better belongs more properly to the community members at large. Community members who have editing rights are encouraged to improve marginal questions, but a substantial portion of those questions are unsalvageable by editing. – Robert Harvey Sep 16 '11 at 23:07
Would you support (or suggest) changing "there is no actual problem to be solved" to "has a definitive answer" and/or changing "real problems" from the Stack Exchange About page to "be constructive and have definitive answers"? If I understand, that's much more in-line with the actual intent, at least as you explained it? – Thomas Owens Sep 16 '11 at 23:30
Because it sounds like questions aren't necessarily about a real problem, but being definitive and adding value to the community. – Thomas Owens Sep 16 '11 at 23:32
@Thomas A key aspect of salvaging a question early is seeing it early. Often I don't see questions until after they attract answers and at that point, it's difficult to shift focus. Editing a question also sometimes horribly backfires, even more so if the edit changes the point of the question in an attempt to make it constructive. Editing subjective questions is difficult, so I can see why more people don't do it. Programmers doesn't have the same volume of posts and flags as SO, but it's still fairly substantial. We invite editing of closed questions and reopening them when possible, though. – Adam Sep 16 '11 at 23:32
@Robert I interpret "You're being too pedantic" as "Yes the actual rules as written contradict themselves, but that's OK since you aren't supposed to take them literally." I would expect a group of programmers to be pedantic, and so I would therefore expect the rules to be structured accordingly so as not to contradict themselves. – Michael McGowan Sep 27 '11 at 15:43
@Michael: Both of the statements cited in the OP target a specific group of problem questions. "However, if your motivation is “I would like others to explain __ to me”, then you are probably OK" and "there is no actual problem to be solved: “I’m curious if other people feel like I do.”" are aimed at "Not Constructive" questions. If the OP hasn't done their homework, or is just asking for a subjective opinion, these statements are there to provide justifications for closing. – Robert Harvey Sep 27 '11 at 16:03
@Robert I'm not saying not to close "Not Constructive" questions. I'm saying that it seems we are in agreement that some questions are worth keeping around despite failing to meet the literal instruction "based on actual problems you face." When the letter of the law and the spirit of the law are in disagreement, the letter should be updated to reflect the spirit. Call that pedantic if you wish. – Michael McGowan Sep 27 '11 at 16:28
@Michael: It is hard to imagine a constructive question on Stack Overflow that doesn't apply to a real-world problem. Even if it's just understanding how a particular programming language construct works, that's still a real-world problem to a programmer. There's a difference between improving your understanding and engaging in speculation/holding a debate/asking for a poll. – Robert Harvey Sep 27 '11 at 16:32
@Robert I would count the MutableString example as constructive, but I would not say it's "based on actual problems you face" (unless the asker specifically had some legacy code that needed to be updated). By all means outlaw the debate/poll questions, but the language used should not accidentally forbid the MutableString questions. – Michael McGowan Sep 27 '11 at 16:41

To my mind, there is no contradiction. Statement I allows you to ask question regarding a real issue that you are merely curious about, rather than actually facing. Statement II only precludes "What do you think?" and "Do you agree?" type questions, not all curiosity.

A real question is a good question (assuming it's on-topic etc.) whether or not it's a problem that you are actually facing. You can ask on behalf of a friend, you can ask in order to mitigate future potential issues, and you can ask even if you'll never encounter the issue but you think someone else might.

All three statement's and Mark's variation on II follow this logic, I believe. The wording could potential be clarified to make this perfectly explicit, but I think assuming "actual problem" means "currently existing problem" is an unfair leap.

Of course, hypothetical questions need to be reasonable. Yes, aliens could invade and blow up your datacenter, but do you really need to prepare for that and ask about it on Server Fault? :P

share|improve this answer
I added a sample question to my post:… This question doesn't solve anyone's problems, but it's a question that someone could very well have when working through Python tutorials or reading the documents. Questions like this have some value. Should it be closed? I believe you say yes. Is this true? If so, why? – Thomas Owens Sep 16 '11 at 22:28
I suppose the thing here is "real issue". How do you define "real issue"? I think we all agree purely hypothetical questions aren't appropriate. But what makes one issue or concern more "real" than another? If I'm reading a book, and I read something I just don't understand, is that a "real issue"? What's a real issue to me might not be a real issue to you. – Thomas Owens Sep 16 '11 at 22:36
@ThomasOwens I think that example should be reworded; I would expect that the asker has used MutableString and is wondering why he no longer can, or wanted to use it but can't. In either case it's a real problem. Such questions are often closed for other reasons, though -- you can't know the mind of whoever decided to remove it unless they gave a reason, so answers are speculation. The accepted answer seems good but is unsourced. Regarding your issue of understanding, I don't see how anyone could disagree that it's a real issue for you. Questions dealing with the asker's problems are fine. – Matthew Read Sep 17 '11 at 1:33

My interpretation is that Statement I, along with the topicality of the site as defined in each site's FAQ, the Guidelines for Great Subjective Questions, the individual community's guidance on and tolerance for subjective questions (if it is a subjective question), and common sense with regards to professionalism and respect should prevail.

I'm of the opinion that topicality trumps all, with the norms of the individual community in second. If I'm reading a book, watching a TV show, listening to a news report and I come across something that doesn't seem right, the first thing I'm going to do is Google it. If I can't find an answer and there's an appropriate Stack Exchange, I want to ask it there so it can be found and answered by experts (and, given Google's love for Stack Exchange, very quickly indexed for the rest of the world to use).

As such, Statement II should be removed from the FAQ entirely and Statement III to be modified to reflect that questions should be specific, focused, answerable, and involve facts, references, and expertise (as opposed to opinion, debate, arguments, polling, or discussion).

share|improve this answer
It's saying not to ask questions in which there is no actual problem to be solved. For the issue to which I think you are referring (the licensing question on Programmers), I'd go one more statement down and cite: we are being asked an open-ended, hypothetical question: “What if ______ happened?" – jonsca Sep 16 '11 at 22:05
I can point to many good questions on Stack Overflow alone that should be closed. Some of them are interesting questions that are insightful to people, but they don't solve any problems.… – Thomas Owens Sep 16 '11 at 22:20
"I can point to many good questions on Stack Overflow alone that should be closed" -- That's not much of an accomplishment... – Michael Mrozek Sep 16 '11 at 22:24
So vote to close and/or flag them for a moderator. The site has evolved, but current questions must be judged by current standards. – jonsca Sep 16 '11 at 22:25
@jonsca I don't understand what the current standard is, then. Perhaps I'm not explaining it well enough. I see a very distinct problem that no one else seems to see. I see a difference between "explain X" and "what do you feel about X" and I don't see a difference between "explain X" and "no real problem to solve". – Thomas Owens Sep 16 '11 at 22:38
Robert has covered it nicely in his answer and comments, but it's an issue of "explain why it's a bad idea to use an <X> construct in this type of program" versus "explain what would happen if <language> had no for loops", the latter of which does not solve a specific problem. – jonsca Sep 16 '11 at 23:15

You must log in to answer this question.

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