Skip to content

Instantly share code, notes, and snippets.

@Shog9
Created September 17, 2014 03:59
Show Gist options
  • Save Shog9/11fba4b271ecd0f34b94 to your computer and use it in GitHub Desktop.
Save Shog9/11fba4b271ecd0f34b94 to your computer and use it in GitHub Desktop.
Title4

#How to ask for a recommendation without going shopping

There's an old cliche about the kid who starts learning to play guitar, learns his first chord, and - head filled with notions of becoming the next Hendrix - jumps into the nearest guitar forum and posts, "WHAT ARE THE BEST STRINGS/PICK/AMP/PEDALS FOR PLAYING ROCK MUSIC???"

It is this attitude of ignorant optimism that four years ago inspired Jeff to write Q&A is Hard, Let’s Go Shopping!, a cautionary tale based on this problem's manifestation on Super User. Over the years, that post has gone on to be used as a warning against questions looking for products and resources far removed from computer hardware, precisely because of how common this problem is: when you don't yet know enough to ask for a solution to a specific problem, it becomes well-nigh impossible for anyone to provide you with one. The inimitable Kate Gregory described them thusly:

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".

She then goes on to describe a strategy for performing the research yourself, with only individual, well-defined steps requiring the assistance of others. That's right: if you're looking for a product or resource, you can use Stack Exchange to help you - you just need to break the problem down first. Jeff noted this in his blog post as well:

However, there is a way to ask these questions that avoids the inherent problems with shopping recommendations. [...] don’t ask us what you should buy — ask us what you need to learn to tell what you should buy.

Both Kate and Jeff nail the essential aspect of a good question, shopping or otherwise: a request for specific knowledge. Sadly, this advice is often overlooked, both by the folks asking these questions and those who jump to shut them down.

##The SoftwareRecs experiment

Don't get me wrong: if left untouched, these questions are a disaster. Untold hours have been wasted by the good folks on Stack Overflow, Super User, Server Fault and elsewhere dealing with the damage caused by years of allowing them with few restrictions: spam, obsolete answers, spam, duplicates, spam, spam spam egg and spam... But it would be a lie to say that nothing good ever came from them: many public comments, meta discussions and even emails have testified to the value of one or more of these questions, in spite of the trouble caused by the category as a whole.

With this in mind, we approached the proposal for a site dedicated to software recommendations with trepedation but also hope: given some groundrules, could we avoid the problems while preserving the value? Tim Post wrote up the initial guidelines for the site:

It's important to keep your questions as narrowly-scoped and specific as possible, because this is what's going to steer the types of answers that you receive.

[...]

  • Explain in detail what you hope to get [...] terms of features, license or cost
  • List any applicable frameworks that you might be using, or other possible compatibility quirks with your workflow
  • Indicate any that you had previously tried, and why you didn't like them
  • Do anything else to encourage answers to be as specific as possible
  • Obviously, 'best' without context is never going to work - in fact please try to just avoid the word in titles. [...] we're pretty certain people aren't going to recommend the worst.

Sound familiar? Define your problem, do your research, be specific - again, these are not just good requirements for "shopping" questions, they're a good recipe for any question!

The Software Recommendations site has been interesting to watch; they've managed to attract quite a few questions, but the answered ratio is far lower than most other sites. To some extent, this is to be expected: take away the overly-broad, subjective criteria and these become hard questions, requiring diverse and often quite obscure knowledge to answer well. The community and moderators have taken a hard line against answers that fail to directly address the requirements of the question being answered, establishing strict requirements for those as well as for the questions. Perhaps the best thing to come out of this site has been the guide for askers written by Gilles - indeed, this entire post is little more than an excuse to repost that, as I believe the advice, if followed diligently, could allow anyone to ask for a recommendation of anything on any site. Oh - and again, it's not just good advice for "shoppers" - it's good advice for askers, period.

##How to ask a recommendation question

A software recommendation question has two essential components: a goal to accomplish, and a set of requirements. The goal establishes the setting and explains in broad terms what you want to do with that software. The requirements put specific constraints that the software must verify.

Think of your task as a picture puzzle. The goal is an overall description of what the picture represents, in brush strokes. The requirements define the exact shape of the missing piece that you're asking about.

Define your goal

Describe the task that you want to accomplish. Explain your goal, putting it in context. Part of a good recommendation is to work out the best tool for the job — so tell us what the job is.

This part can include a user story: “As a <role>, I want <goal>” or “I am a… I want to…” or “As <who> <when> <where>, I <what> because <why>”. Then explain the role of the software your're asking about in this task.

Don't use words like “best” or “good”. We aren't going to recommend bad software. Explain what the software has to be good at. It's not about what's best in the absolute, but what's best for a specific task or purpose.

If you're looking for alternatives to software that you're already using, don't describe your goal as “alternative to X”. There is often no exact equivalent to X, so tell us what you use X for. See http://meta.softwarerecs.stackexchange.com/questions/48/how-to-ask-for-an-alternative-to-some-software for more tips.

Define your requirements

There are a number of must-haves — a number of features that are required for the task. Tell us what must absolutely be there, so as to avoid answers that will be useless for you. These requirements need to be absolute and objective: either it's there or it isn't there.

Almost all questions need a platform requirement: are you going to run this software on a PC or a smartphone? Under which operating system? Is a webapp ok or does it have to work offline?

After the must-haves come the nice-to-haves. What features would you ideally like to see? These can be rated: requirement #4 is strongly prefered, requirement #5 would be a nice plus. These can be gradual in a the-more-the-better way (or the-less-the-better), but beware of adjectives which lack a frame of reference such as “lightweight” or “low-cost”.

Show what you know

Did you search for suitable software? What did you find?

If you find a single program that seems to match, that's probably the obvious solution. Also look at software that's bundled with your operating system. Try it out! Sometimes the obvious solution is the best one. If you're unsatisfied with what you found, say why: “I tried X and it didn't meet <requirement #5>”.

If you found a lot of seemingly-matching programs, it's a sign that your requirements may be too broad — try to refine them. If you found nothing, we're here to help (but then consider relaxing your requirements if they indeed cannot all be met).

Write a to-the-point title

The title should summarize your goal in a few words and mention the most important requirements.

See How do I write a good title? for tips on writing good titles.

Tag your question

At least one tag should correspond to the category of software you're looking for or the category of task that you want to perform, something like [tag:video-editing] or [tag:document-indexing]. Look at other existing tags. Be sure to check their description (tag wiki) to make sure you understand what the tag is for.

If you're looking for software to run on a specific platform, use the corresponding tag, e.g. [tag:android] or [tag:windows].

Copied wholesale from Gilles' answer to What is required for a question to contain “enough information”? on Meta Software Recommendations

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment