115

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
  • 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
    Commented Aug 5, 2012 at 23:24
  • 5
    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. Commented Sep 21, 2015 at 17:24
  • 5
    @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
    Commented Feb 2, 2017 at 17:31

5 Answers 5

214
+100

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.

7
  • 12
    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.
    – Zelda
    Commented Aug 6, 2012 at 0:33
  • 12
    This needs to be printed and framed somewhere, or built into the Wikipedia entry on the subject
    – Pekka
    Commented Aug 6, 2012 at 6:52
  • 7
    @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. Commented Mar 23, 2015 at 14:56
  • 12
    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).
    – Pekka
    Commented Mar 25, 2015 at 23:02
  • 17
    @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
    Commented Apr 19, 2016 at 0:35
  • 7
    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
    Commented Oct 8, 2016 at 14:52
  • 1
    While I see your point, I am still not convinced that questions about best practices should be banned from StackOverflow..maybe they can be flagged in some way to indicate it's discussion character. One can argue that every question on SO is a best practice question since almost any problem can be solved in more then one way, and most of us are most of the time searching for that best practice answer. A contrary to your opinion, I think developers that ask best practice questions are those who are much less "lazy and unwilling too think" then the majority of their colleagues.
    – daneejela
    Commented Sep 5, 2019 at 12:51
20

"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
  • 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
    Commented Jan 22, 2019 at 22:40
12

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.

1
  • 3
    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.
    – user102937
    Commented Mar 17, 2015 at 22:34
1

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.

2
  • 6
    Programmers are religious.
    – user291305
    Commented Mar 18, 2016 at 15:44
  • 7
    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.) Commented Oct 27, 2016 at 20:35
-2

Maybe we just want not best practice but a better practice. For newbie sometimes we know some solution with defects and look for a better one, so the suggestions from the experienced users helpful and that is I usually look for.

1
  • 1
    In that case, an appropriate question on SO would either be to post your specific code and ask about fixing the defect(s), or just asking how to do something (assuming you can't already find existing examples online), rather than asking for it to be "better" than anything else.
    – ADyson
    Commented Feb 18, 2022 at 14:02

You must log in to answer this question.

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