I've written a few questions on Stack Overflow before that have been closed due to being "not constructive" or "not a real question". Now, after scanning the FAQ for the site a few times, I understand that my questions were indeed closed for good reason. However, even after reading the FAQ, I still don't understand why a question of "what's the best practice here?" is a bad thing. I feel as though if you properly explain your situation as thoroughly as possible, then it shouldn't be a bad question at all.

Questions like "what's the best language?" or "which framework should I use?" are indeed bad questions initially, but I feel if you specify in the post (or preferably in the title itself) what the context is, shouldn't that be deserving of some kind of an answer? In my recent question I asked what would be "best practice", and naturally my question was closed. So I read the FAQ and learned how to make a more constructive question, of which I've now re-edited in an attempt to be less vague.

I understand the desire to avoid debate and lengthy discussion over a question, but I also feel as though sometimes there are certain questions which should be asked if proper context is given. Why is a question over "best practice" always a bad question to ask?

  • 3
    There ain't no "best" for all use cases. Instead of using that tiresome phrase, add context for yours, and exemplify the different coding approaches. Then ask concretly about pros and cons. Question title buzzwords are redundant. – mario Aug 5 '12 at 23:24
  • 2
    Instead of asking for best, ask for possible ways to do X, with pros and cons of each. ideally, include code implementing one approach, thereby showing that you have put effort into your question, and ask if there are alternatives, and when one would use one vs the other. Try not to ask whether there is a better approach, because whether one approach is better than another all depends on the specifics of one's situation. – ToolmakerSteve Sep 21 '15 at 17:24
  • 4
    @mario Just tried asking a "Pros and cons" question on the software engineering forum - immediately got a comment about the problem with "Pros and cons" questions". Changed the offending words to "Best practice" instead - got a link here. Lol. – Magnus W Feb 2 '17 at 17:31

While you may be an exemplary, clear-thinking individual, who uses the term best practice in a constructive manner, you have been preceded by a giant procession of people who are just looking for an easy answer that doesn't require thought. Instead of understanding the important specifics of their situation and looking for an appropriate solution, all they want is to spot a herd in the distance and go trotting off after it.

Thus, the term best practice has been rendered an extremely strong signal of someone unwilling to think about their problem and consider solutions, and questions that mention the phrase get closed.

  • 8
    Agreed; it's a huge red flag on UX that either means "I'm using the term for no reason" or "holy crap I have no idea what I'm doing". The former gets edited out, the latter (generally) closed. But the phrase itself isn't the problem; it's just a big honking sign that indicates the probable problem. Probably. – Ben Brocka Aug 6 '12 at 0:33
  • 31
    best-practice === cargo-cult – Kev Aug 6 '12 at 0:39
  • 10
    This needs to be printed and framed somewhere, or built into the Wikipedia entry on the subject – Pëkka Aug 6 '12 at 6:52
  • 6
    @Rosinante, Also, it's better if newbies just follow the current best practices instead of writing poor code and me having to deal with it because the didn't understand the advantages or disadvantages or at least search for "the best way" that others (which is more than one) are doing. – Iulian Onofrei Mar 23 '15 at 14:56
  • 10
    This is such an epic answer, I still remember it. I find myself tempted to link to it whenever I see a "best practice" question on SO (My Google query to find my way back here is site:meta.stackexchange.com rosinante best practice). – Pëkka Mar 25 '15 at 23:02
  • 15
    @gen, this answer is simply the best practice for questions about best practices. Your particular requirements (and your particular question) may differ. Of course each question should be considered on its own...rather than blindly following the "best practice." :D – Wildcard Apr 19 '16 at 0:35
  • 6
    Just to note: this answer offers an analysis about why certain stackoverflow users exercise their buttons under certain circumstances. While it is sympathetic to their point of view, it by no means completely endorses it. Those commenters who complain of arrogance or misunderstanding of needs need to take it up with the people who push the buttons, not so much me. – Rosinante Oct 8 '16 at 14:52

I think questions where the term "best practice" is used may often make a lot more sense if the reader mentally substitutes it with the "common practice" or "idiomatic".

There are many examples in all walks of life where there are 10 ways to do something, of which 5 are terrible, and 5 are perfectly fine and broadly equivalent, yet only 1 is typically employed. All other things being equal you might as well use the idiomatic solution because just like idioms in spoken language this shared context allows us humans with our puny brains to parse what on earth is going on much more quickly.

So I would suggest when wording your question think to yourself, am I really looking for the objectively best way to do this, or just a way which is perfectly reasonable and will cause the least astonishment down the line. You might find you'll get exactly the same answers with less chance of starting a flame war or having your question rejected.

  • 2
    I don't mind the word "idiomatic," provided that the user of the word knows what it actually means and is not merely substituting it for "best" to avoid close votes. – Robert Harvey Mar 17 '15 at 22:34

"Best" doesn't really describe what you are looking for.

In programming for example, it could mean fastest, shortest, most readable, smallest memory print, least likely to fail due to absurd user input, or any combination of the above. It's just not a useful description of a metric that can be used to objectively determine which answer would be... "best." "Best Practice" is just another way of saying "Best." It is often used when someone has a problem that they have no idea how to solve and/or when they want someone else to do it for them. Don't be one of those people.

Instead, what you should ask for is specifically what you are looking for. Don't ask what the best way to build a form that performs an ajax request is, ask how to build a form that performs an ajax request. Don't forget to also include the specifics that make your case unique. If your case isn't unique, consider not asking it; it's probably a duplicate. The answerers will naturally provide whatever solution they think is the best.

"Best Practices" aren't really a thing. You might come across blog posts, or articles on official documentation providing what they call a best practice, but really it's just their own opinion on what they think, at that point in time, is the "best" way to do something... but they haven't really defined what "best" means, so to me, those types of things simply aren't useful outside of being an example of how to do something. They aren't necessarily the "best" way to do it, they aren't in your situation.

  • 1
    Unless of course, you're actually looking to just do whatever everyone else is doing and don't care... in which case... i don't really have a response to that. I can't relate to that idea, it seems a bit absurd – Kevin B Jan 22 at 22:40

Asking about the 'best practice' could be maybe a good idea on the religious sites, since the religions tend to have 'best practice' for everything.

However, in real life, especially in the creative areas like programming, there's no highest instance that decides what's the 'best practice'. There are some institutions writing some norms, while other institutions may write other norms. There are influentions bloggers popularizing their norms, and others who oppose.

In other words, the first answer for the question about 'best practice' is 'best practice for whom'? It's extremally opinion based thing. There's no simple 'best practice' but many 'schools of thought' which learn doing the same thing in various way. You could ask what's the practice of splitting large classes in, for example, IBM (although not on SO), but asking, what's the best practice of splitting large classes could resolve in 10 contradicting answers, each dogmatic, and a huge flame war.

  • 4
    Programmers are religious. – user291305 Mar 18 '16 at 15:44
  • 2
    This answer shows a distressing ignorance of religions, most of which have numerous sects, and essentially all of which have substantial variations in practices in different schools of thought. (The unfortunate choice of distinction between "religion" and "real life" doesn't help matters any.) – Nathan Tuggy Oct 27 '16 at 20:35

You must log in to answer this question.

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