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

My question was closed for being a "shopping list question", even though it was absolutely on topic and programming related. Why?

share|improve this question
30  
You want a list of reasons? –  Daniel Fischer Dec 15 '12 at 12:29
3  
@Daniel YES YES YES (seriously though, I flagged this to be CW'ed so everyone who wants can edit) –  Pëkka Dec 15 '12 at 12:30
1  
Given the volume of "Why was question closed, I was asking for a recommendation for <insert programming option here", should this or a similar question receive the faq tag? –  psubsee2003 Jun 21 '13 at 11:52
    
To make more explicit what Daniel implied, this question fails the test of its own premises. It IS a shopping list question, and one of the premises of the question is that such questions are bad. Maybe we should rethink those premises. –  iconoclast Apr 11 '14 at 17:08
    
Why not tag this faq-proposed, given the blockquoted text on top? –  Shokhet Jan 14 at 0:57
    
@Shokhet status-completed. Maybe OP wasn't aware of this tag when posting this question two years ago. –  Shadow Wizard Jan 14 at 7:34
    
@ShadowWizard I would've done that myself, but I would have rather had someone review the edit: I'm still not 100% of my edits, as a fairly recent 2K user. –  Shokhet Jan 14 at 16:28
    
Well, as long time user here I feel more comfortable using my powers. :) –  Shadow Wizard Jan 14 at 16:40

6 Answers 6

Questions that ask for a list of things, like "is there a tool that does x on platform y?" or "what is the best abc for my problem?" are usually regarded not a good fit on Stack Overflow, even if they are perfectly programming related, and often not a good fit for Stack Exchange sites too.

Jeff Atwood has written a blog post on the topic that is regarded something of a canonical document on the issue.

The main arguments against "shopping list questions" are:

  • They are open-ended; there is never one perfect answer to them.

  • They outdate incredibly quickly. This was what turned me against shopping list questions: if you look around on Stack Overflow, you will find plenty of 2010 "what's the best xyz" questions whose answers are hideously outdated now.

  • They tend to attract a lot of spam and/or link only answers

share|improve this answer
2  
Outdating quickly may be an issue for choices of hardware purchases, but is it really an issue on anywhere near the same scale for recommendations of either software applications or - to give the case where this issue most commonly appears on SO - programming libraries? –  Mark Amery Dec 15 '12 at 12:35
2  
@Mark it is. Terribly. Look at the state of HTML5 answers, for example. I have to run but I may look up some examples later –  Pëkka Dec 15 '12 at 12:35
2  
I will await your examples with interest and an open mind. Remember, though, that for this rule to make sense, it doesn't just need to be the case that HTML5 questions asking for library recommendations age quickly - they need to age significantly more quickly than HTML5 questions in general. –  Mark Amery Dec 15 '12 at 12:39
4  
@Pekka Also: Shopping list questions tend to attract a lot of spam and/or link only answers. –  Yannis Dec 15 '12 at 16:16
10  
Do the arguments against really outweigh the benefits? One of the main tenants of programming is to "not recreate the wheel". I know I've gotten a good bit of use from these questions. Who cares if a question is open ended? And you can easily date a response. How about this, if you don't like "shopping list questions" don't use them. –  JoshNaro May 13 '13 at 16:51
1  
"There is never one perfect answer" - this is nonsense. I asked a question "Is there a javascript gesture library that works with the android?" and a perfect answer would be "Yes, use such and such." assuming such and such worked. I haven't actually received an answer yet, but somebody suggested it should be closed, citing this thread. I can understand closing a thread that has been answered, but answer aging can apply to any topic. –  Facebook Answers Jun 22 '13 at 10:55
1  
@FacebookAnswers but then you end up with ten different answers, recommending a different such and such, usually with endorsements like "Try this its great" or "it worked for me". There will be at least one spam answer from a company who builds a such and such. Not saying those questions can't be useful occasionally, but the downsides really outweigh the benefits in general. –  Pëkka Jun 22 '13 at 11:00
    
@Pekka, well in my case I hadn't received a single answer, just a couple of comments. But lots of questions can have multiple, equally valid answers anyway. –  Facebook Answers Jun 22 '13 at 11:03
    
@Facebook but nowhere is it such an extremely strong (and, to many in the community, problematic) pattern as it is in shopping list questions. I'd really love to see a web site dedicated to shopping lists maintained and evaluated by experienced users (we all need them when we delve into something new and want to know the best tools), but SO isn't the right format for it. –  Pëkka Jun 22 '13 at 11:06
1  
@Pekka, but surely the solution is to close the question after it has received an accepted answer, not before it has received any answers. I have a specific problem; I cannot get javascript gestures to work on my Samsung Galaxy Tab 10.1. They work fine on the ipad mini, but not the Samsung. I tried a number of libraries, but none of them worked, so I asked, does anybody know one that does work? Why is that not a valid question, and if it isn't valid, how should I rephrase it to make it valid? –  Facebook Answers Jun 22 '13 at 11:12
    
@Facebook Stack Overflow is aiming to be a repository of questions and answers for future generations, not a support forum for localized issues; waiting until a question has gathered answers and then closing it would send the wrong signal to answerers. Anyway, the question you describe sounds kinda valid. Can you provide a link to it? –  Pëkka Jun 22 '13 at 11:16
    
Edit: found it. I don't think that question is necessarily going to be closed; it looks specific enough not to be a typical shopping question (which are usually along the lines of "which is the best IDE for xyz?"). Note that it hasn't gathered any actual close votes yet. –  Pëkka Jun 22 '13 at 11:18
    
@Pekka, fair enough. –  Facebook Answers Jun 22 '13 at 11:36
    
I'm writing a compiler, just reached the machine code generation part, it can do naive suboptimal translation. But I wanted to improve it. So I once asked a question to get a list of techniques/ideas/tricks/pointers existing compilers use to optimize their output. It got closed as not constructive in 10 minutes because I asked for a list... pfff. I hope readers can see the difference between the "What's the best" questions and my example... I'm not asking for the best, I'm just want to learn what can I do. –  Calmarius Jul 14 '13 at 13:34
1  
@user because that's not really SO's core mission. There's attempts to do that out there like slant.co –  Pëkka Mar 8 '14 at 14:57
up vote 29 down vote
+250

Irritatingly, the terms "shopping list question" (or "shopping question") and "recommendation question" are often thrown around without regard to what they originally meant. They're different, but since there is some overlap and very little care paid to how they're used, I'll attempt to define both here:

Price-shopping questions

These are the origin of the name, immortalized in Jeff's famous blog post and long the bane of Super User and similarly hardware-oriented sites. The basic template is this:

What is the best and cheapest Product of Type at this very moment?

Please list a specific make and model along with a link to whatever shop offers the best deals; I know there are 500 questions on this sort of product already, but a new one of these comes out every week so they're mostly out of date and I just plain don't trust the folks who answered the ones from earlier today.

P.S. In addition to its primary function, it also needs to make waffles and comfort me when I'm sad and be available for local pick-up in Ogallala, Nebraska.

The requirements alone make this sort of question extremely unlikely to ever help anyone else (or even be answerable in a useful fashion), but at least in theory they could.

The price requirement combines with the volatility of the marketplace to make them completely worthless though. You might as well set a timer and automatically delete them after a week - indeed, this solution was proposed at one point, because folks really wanted to use Super User for help building their computers.

I hasten to note that these are real problems; everyone has to do some price-shopping now and then, and some of us do so very often - but Stack Exchange is generally ill-equipped to handle these questions. Product review sites, some trade journals, forums and of course dedicated shopping sites like New Egg are generally far better suited for this purpose, tedious though it may be.

As soon as the question no longer asks about pricing, the question is arguably no longer a "shopping" question, though it may still fall into the category of...

Product recommendation questions

These are the first steps of a reformed shopper. They're no longer asking you to do the shopping for them, but they do still want you to tell them what to shop for. The most problematic form looks like this:

What is the best Product of Type?

There are probably 10,000 Products of Type on the market today, with many of them appearing to be of very high quality and sporting raving reviews on every site that sells them.
But which is the single best one, for every conceivable purpose, ever?

This is clearly subjective beyond all reason, so it is quickly replaced with,

What are all the Products of Type?

Just list them, please, and maybe include a short review; I'll choose the one that works for me.

Now we're hitting several different problems: this list is impossible to keep updated, it attracts spam like spilled soda attracts yellowjackets, and, oh yeah, it's an X-Y problem.

See, the asker actually does have specific requirements for that Product, because he does have an actual problem that he's trying to solve. This tends to come out after the question has been closed as a duplicate of a different (usually incomplete) list of Products, none of which work for him. What he wants to ask is this:

What Product of Type can I use to frob my widget?

My widget is a Mark III by Honeywell, manufactured in 1979; I've tried using standard Bosch frobbers, but they always break. Here's a picture of my widget, surrounded by broken Bosch machinery.

When I start frobbing, the temperature quickly rises to 10,000°F and destroys everything in the vicinity. What alternate Product can I use to avoid this outcome?

If he'd actually written that, this would've been an answerable question; indeed, some sites allow these sorts of questions without too many objections. But on larger sites like Stack Overflow or Super User they tend to attract spam:

You can use DaxterCo® Frobberific™ frobbers; they're awesome. Please see [link] for specific instructions on how to contact our sales staff who will proceed to string you along until you give up and buy something from us.

And because spammers are scandalous dastards and don't mind recommending their products in situations where they don't apply, there's absolutely no guarantee the products recommended will do anything to solve the specific problem described... And because strictly-speaking the question is still just asking for a list of Products of Type, getting rid of this spam is more work than it should be.

This brings us at last to,

How to ask for a product recommendation without actually asking for a product recommendation

At this point, we almost have a good question. The asker understands the problem, has described his situation and what he's tried so far to resolve it. We just need to get rid of that pesky technicality that allows for answers which don't actually do anything to provide a solution!

How can I frob my widget without causing it to massively overheat and burninate the villagers?

My widget is a Mark III by Honeywell, manufactured in 1979; I've tried using standard Bosch frobbers, but they always break. Here's a picture of my widget, surrounded by broken Bosch machinery.

When I start frobbing, the temperature quickly rises to 10,000°F and destroys everything in the vicinity. What can I do to successfully frob without these catastrophic results?

In other words,

  1. State the specific problem you're trying to solve.
  2. Describe what you've already tried, and why it hasn't worked.
  3. Ask for help solving the problem by laying out what you need to happen for it to be successful.

That's it. If it turns out there's a Product that can be used to answer this, great! If not, well, maybe there's another option; perhaps someone owns the Bosch frobber manual and can tell you how to solve it without buying anything. Either way, now you're asking for a solution and not a shopping list.

share|improve this answer

Shopping questions ask

  • What X should I use?
  • What is the best X?
  • What are the possibilities for X, and their advantages?
  • Which is better, X or Y?

They do not always literally involve shopping: the comparisons may be between several free things, or between intangible things such as "Which job offer should I take," "what programming language should I learn," or "what religion should I adhere to?"

The key to a shopping question is that it asks others "please make a subjective decision for me and explain it" or "please list all my possibilities with their strengths and weaknesses". This is very different from non shopping questions:

  • Can X handle foos of 100 MB or more?
  • Do all Montessori schools require children to be toilet trained?
  • How long does it take to travel by train from New York to Boston?
  • Why do lambdas make the STL algorithms more usable?

Some of these questions might invite opinions, or might attract lists of localized answers, but they are not asking anyone to make a decision for you.

When you plan to ask a shopping question, what you should do instead is:

  • Use a search engine to create a list of possible X that you will use, buy, support, or whatever
  • Search on the relevant Stack Exchange site (among other places) to learn more about these possibilities. (For example, to find sample code showing how usable a framework is, or to find pictures of a tourist attraction)
  • Rule out some possibilities after learning more about them
  • Establish a crisp, clear question that will let you decide which is right for you (for example how much does it weigh, how long does it take, is it multithreaded, is there a web API, etc.)
  • If there are several facts you need to know, formulate each one as a separate crisp and clear question. (Do not ask two or more questions in a single Stack Exchange question.) They need not be yes or no questions but they must be answerable. Don't ask "is X too heavy? should I really spend the extra money for Y instead?" Ask how much X weighs, or whether a reasonably fit adult could be OK carrying it on a long hike, or whatever it is you need to know.

After gathering the answers to your individual questions, you can make your shopping decision. You will leave behind factual and useful information for other people, who may use it during the second step (as listed above) of their own investigations. This is a feature of the site. Someone with entirely different priorities than you can still benefit from your fact-gathering questions, while they probably could not have benefited from the general "tell me what to choose" kind of question that we prefer not to have in the Stack Exchange network.

share|improve this answer

Basically, Stack Overflow prefers questions where there are only a handful of answers that "converge" to a single, definitive, and presumably correct answer.

It's like preferring an infinite series that has a single, rather than "divergent" limit points.

share|improve this answer

Well, similar to what we consider off-topic on Arqade, questions like this tend to be very broad, and as you probably already inferred, Stack Exchange prefers that you ask questions that receive only one answer. On Arqade, mod-recommendation questions, similar to shopping recommendation questions here, are off-topic because you could have a variety of mods, or things to buy.

Basically, shopping list questions are bad because they are subjective, and subjective questions receive lots of answers and those answers can be outdated, leaving future readers with nothing, unless some nice person comes back and changes his answer.

share|improve this answer

I find it somewhat ironic that something that is still so contentious could be described as canonical.

Most of them are not bad questions at the core. But unfortunately Jeff's article from 2010 has been applied incorrectly and way too literally with little thought or discussion when it comes to code.

I believe Jeff had a couple of things in mind:

  • Avoid answers largely based on opinion with no support, leaving very little for actual learning.
  • Avoid recommendations that would become obsolete in a short period of time.

Both really good ideas.

Unfortunately, I believe this article has been a huge source of misguided closures on stack overflow that could have been simple nudges to rephrase. I really wish Jeff would post a follow-up as there are a number of issues either that weren't covered by his electronics store examples, and there are definitive mechanisms that SO could provide to guide the asker to asking a better follow up question rather than just slamming the door in his face.

Issue #1 – Is the question a really a bad question if it could easily be rephrased into a good question?

From what I’ve seen, most questions closed on SO for shopping reasons, would be perfectly acceptable if they were simply rephrased. When somebody asks "what is the best camera", it's unlikely that person meant to ask “how do you take a picture”. However, that IS very likely the case when it comes to programming. A person asking for a component to create an excel file in c#, IS very likely asking “How do I create an excel file in c#.” He certainly isn’t going to complain if a user posts an answer that doesn’t’ require a component and just uses built in libraries. This is just simple semantics – changing the question from “what” to “how”.

Issue #2 – The answer becomes stale, not the question. Enter the voting mechanism.

I realize that we don’t want a pile of questions where there is a better answer every 6 months. But that is simply unavoidable, shopping or otherwise. The good news is that we already have a way to cover that – the voting mechanism. The voting mechanism along with time components could easily bring an updated answer to the top. Isn't this what we want want we talk about canonical questions/answers? All the right answers with all of the subtle differences covered on one question? The only other messy solution is a pile of questions like “how do I X in version 2.1.1.7”?

Issue #3 – No “Shopping Question” close reason.

“Not constructive” is way too general. If questions were closed with a specific message to the user giving them some tips on avoiding shopping questions specifically, rather than just referring them to the help center.

Issue #4 - Inherent information and the bias to "built in" By the time the question is asked, we typically know the language, it's version, and the tooling associated to it thru tagging and what is generally accepted about the language. This is akin to knowing the make and model of our camera and asking if there is a specific add-on to provide a feature. Asking for an add-on is merely an admission by the asker indicating that he believes the function is not already built in (or wasn't happy with it). Is it really a tragedy if two answers are presented? One with an add-on that requires 3 steps and a built in option that requires 5? Who are we to assume the built in option was what the user was requesting? Do we really need him to say "how do i" but then force him to add that he is NOT looking for the built in option?

share|improve this answer

You must log in to answer this question.

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