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

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](http://en.wikipedia.org/wiki/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 you'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 https://softwarerecs.meta.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 preferred,
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?](https://meta.stackexchange.com/questions/10647/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].

### Yes, I've read these guidelines

If you have a question that meets these guidelines, welcome! [Follow this link to ask your question](https://softwarerecs.stackexchange.com/questions/ask).