Hacker News new | past | comments | ask | show | jobs | submit login
Evidence-Based Guidelines for Writing Questions on Stack Overflow (arxiv.org)
75 points by lainon on Dec 28, 2017 | hide | past | favorite | 57 comments



My main encounters with SO are top google results that point to questions they closed or complained about as somehow inadequate.

I love that the questions are not "good enough" for the community, but still good enough to milk for search placement.

It's a useful place, but I have to wonder if its main purpose was to suck up all the available SEO oxygen and concentrate it. I think they even still nofollow the highly relevant links to other sites, because not doing so would dilute their position as the relevant result for virtually any programming query.

EDIT: After a few seconds of googling, it looks like there has been effort on the nofollow front since I last checked. That's cool. I can see that it's nuanced. Still, my current experience with arriving at a "bad" question with great SEO is super frequent


Or google results that point to unanswered questions or questions with answers that are years out of date. I think of it as Answer Roulette.


And the unanswered question is either locked or I can't post an answer because I don't have enough points.

Stack Overflow is aging pretty poorly.


I've seen my share of downvoted and closed questions from others, and often it comes down to users expecting the site to adapt to their needs rather than realizing they are a guest on someone else's site. SO doesn't exist to be your personal support site where others are obligated to help you on your terms.

When you're a guest, you follow their rules. And their rules are fairly simple:

- Stay on topic

- Don't duplicate existing questions (look before you ask)

- Ask a specific question ("how do I fix it?" is not a specific question)

- Be polite (no one is getting paid to answer your question)

- Don't be a spammer (and avoid looking like a spammer)

With coding questions, it really helps to:

- Reduce the problem to a specific detail and be concise, if I haven't finished reading the question and have an idea of the answer in 30 seconds, I move on.

- Provide enough detail that someone else could reproduce your issue. So many people assume I have remote access to their laptop, not to mention what they are thinking inside their head.

- Write it in English, with punctuation, and capitalization. If there's a 10 line block of text without a single capital letter or period, I move on. Same goes for anyone with their capslock key stuck in the on position. I try my best to understand non-native English speakers, because I sure can't talk in their language, but sadly when there's a language barrier, I move on fairly quickly.


I understand that SO's rules prohibit "what is the best tool for this job?" type questions.

Yet, a closed SO question is almost always the first Google result.

What is the correct place to find this type of info?


I would really like to know this information. Stack overflow at one point was the most useful software site on the planet. I stopped using Google back in 2011 because everything I ever wanted was there.

But since they decided to nix 95% of the useful questions I rarely go there anymore.


I agree it is stupid. There are other stack exchange sites but it takes about 5 minutes to read through their FAQs to work out where to go - Software Enginering? Superuser? Nope you need Software Recommendations. Obviously. A tiny meta-site where nobody will ever see your question.

Why do they need to separate clearly popular and related questions onto a graveyard site? Sure they might go stale quicker, but I have a load of questions and answers from Android 2ish that are totally irrelevant now and they are allowed to stay apparently.

Stack overflow doesn't have any solution for any answers going stale so I don't think they should use that as a reason to pick on questions that pretty much everyone except the pedantic editors think are fine.


Thank you IshKebab, https://softwarerecs.stackexchange.com/ is the answer I was looking for.


My understanding is that those questions are disallowed for two reasons: one, they devolve into a kind of popularity contest, and two, the answers get stale faster than most others. But I'm with you, they can be incredibly informative and helpful. It took a while for those types of questions to fall out of favor, so the ones you find through Google invariably date back to when the site was fresh.


One option might be to set closed questions to no-index.


There was a time in my life, and that time is still persistent even now, when every question that I asked on SO was flagged, and I was banned for 7 days with a message which said something like this - "It seems your basic concepts are unclear. Kindly revise then and get back to us"

I swear to God I was so pissed off. Here I am , genuinely asking for help, and then these tech oligarch's were blocking me sitting in their ivory towers.

Hope this paper helps me out!


Wow, I'd used SO quite a bit but I've not heard of banning users asking legit questions. Then again, it might make some sense if you can skew your mind into fitting SO's goals (which don't quite align with many question-asker's goals).

SO wants curation and objective answers to objective questions. Vague or poorly-scoped questions? Toss em in the bin. Questions about "best way" "best library" or "best tool for"? Subjective or not-software -- in the bin.

As a question-answerer, a frustrating question would be one that tries to articulate a bug/problem but never cites any code, compiler error or runtime error. When posed by anyone who is not already an expert these questions very often cannot be addressed without a roundtrip involving "ok, please share the code so we can reproduce the problem".

No joke -- that tip about the MCVE or SSCCE was super valuable. Unfortunately I'd bet that just the act of making this example would probably yield an answer to the person's question most of the time, without even needing SO. Novice question-askers lacked the expertise/experience to know to do this or just the patience required. I'm not faulting them, I remember what it was like to be a novice. It's a reasonable expectation to turn to a mentor and show them the code and ask them what you're doing wrong.

> Hope this paper helps me out!

> > Results: We found that regardless of user reputation, successful questions are short, contain code snippets, and do not abuse with uppercase characters. As regards affect, successful questions adopt a neutral emotional style.

This matches my experience. But I'd love to hear how the results might change if they filtered on low reputation question askers.

When HN bashes SO, I feel conflicted. I totally understand why so many folks are disappointed. But I also think that it's good for what it wants to be.


The people who are dissatisfied invariably ask opinion based questions. That is not what Stack Overflow is for. Sure, there is always more than one way to do it, and any good SO question often has three solid viable answers — but if there are dozens? hundreds? .. it’s no longer a question, but a bikeshed type discussion.


>>> any good SO question often has three solid viable answers

the first viable answer is giving you the solution, except it doesn't work because the API has changed many years ago.

the second viable answer is telling you that you don't want to do that and it's certainly wrong to try.

the third viable answer is a guy advertising to use another library for just that. (Just because you use C++ doesn't mean you have boost or Qt available but fair enough).

The fourth viable answer is a guy advertising for his own library to solve that same problem. It may or may not be shameless advertising. The github link is dead half the time.

The topic is closed. It will never be possible to post the right valid answer to that problem.

Answers cannot be edited. They will rot forever and mislead an entire new generation.


What do you mean by "answers cannot be edited"? They definitely can be, and not just by the person who posted it. I've updated an older answer or two.


Completely incorrect. You can edit answers as an anonymous user and have been able to since.. 2010-ish?


What is the correct place for opinion based questions, when you want a technical opinion to help you solve a specific technical problem?


Anywhere but Stack Overflow. It is a great big Internet!


The people who are dissatisfied invariably ask opinion based questions.

I never ask questions in SO. To be honest, I'm not dissatisfied either, I just gave up. When I saw a question for which I knew the exact answer, I was unable to answer because... I don't know. I wasn't reputable enough to answer and I couldn't get a reputation because I couldn't answer. Or something like that, I don't remember or I don't care. I just google for answers.

So I would reconsider the "invariably". But that's just my two cents.


Completely incorrect, you can answer any question as a brand new user. As another commenter pointed out, maybe you meant commenting? Which isn’t answering the question, but leaving a post-it note on an existing answer or question.


you need rep to comment, so maybe the question you have in mind was in a comment.


Personally I get dissatisfied when over zealous mods fail to follow stack overflow's own guidelines on subjective questions. It would be a better site if, before closing a question as subjective, a user had to scroll down this and click "agree": https://stackoverflow.blog/2010/09/29/good-subjective-bad-su...


Well, sort of, but it is a complex, slippery slope and easiest to just avoid the realm of opinion altogether.


Flagged as duplicate.

Hasn’t happened to me, but nothing is more frustrating that having someone else ask my exact question then it gets flagged.


I often reach assumed duplicates via Google but still get very insightful answers. If I click on the link pointing towards the assumed original, it's sometimes completely deserted with a single two-line answer that's been outdated for three years.


And they're happy to leave the duplicate up for the inbound google benefits it provides.


And then the duplicate doesn't even have the answers you need.


The best part is when the duplicate is related to your question, but the duplicate question is structured differently so you don't know how to apply its answers to your question. Sure, if you already knew the answer the duplicate answers make sense, but without that knowledge (hence why you asked in the first place) they are completely unhelpful.


If the duplicate doesn't answer your question, you're supposed to edit your own question to indicate why the linked question wasn't helpful. At that point you're supposed to magically attract enough attention to get the question reopened. Unfortunately it rarely works out that way.


Can you give an example of a question you asked?


A closed question that has a negative score will eventually get deleted. They call it the Roomba.


That makes it sound like your questions were so basic, they indicated you weren't familiar with the technology you were asking about at all.


a mod can close find support in the SO guidelines to close any question they wish.

a tightly defined, clearly written question with a single correct anwswer?

Rejected: RTFM

a question with more than one correct answer (but which almost certainly has a "best answer" which a community like SO is in the obvious best position to judge)?

Rejected: subjective; opinion-based

no axe to grind here--i used to participate in SO (50K rep, and one of the highest rep-to-post ratios)--i honestly just find it too difficult to navigate that narrow straight


I find SO is a great place to find answers, a really bad place to ask questions.

there are people (such as the comments above) get judgmental just because a post didn't use capitalization. sure, nobody is getting paid to answer them (well SO kinda is), but there is no reason to berate people for asking questions and missing minor details. just move on.


Also, a really bad place to write answers.


why is that?


Because the question is closed. Or it's open but you don't have enough reputation to answer to something that already has an answer.

Or you replied and your answer got deleted for being a duplicate. It was not a duplicate, it was the solution in python3 while the existing solution is python2.

edit: Just remember another one. That horrible time when I couldn't post the reply the OP was looking for, because the answer had to be at least 100 or 200 characters and the solution wasn't that long.


SO moderation is often finicky and sometimes absurd. Somewhat recently, there was a Q which was closed as unclear _after_ I posted a reply & the OP marked it as accepted. The Q had enough context for someone who knew the app concerned (ffmpeg).

But yeah, in the tags I stick to, many Qs are incomplete. A bespoke template or "wizard" triggered by the selection of a tag would go a long way.

But neither this nor the tips in the paper solve the issue of how to draw attention (and answers) to a Q with high-volume tags.


When a question is closed only a single reason is given, even though each vote may have used a different reason. It's not always informative.


I assume that the displayed reason is of either the latest vote or a plurality of them. Absurd either way.


The problem with SO isn't overly zealous moderation, it's that the self-moderation aspect is so poor. I've often wondered if the former is an indirect product of the latter.

If you don't know the answer to a question then anything that works is great, regardless of how good it actually is (or how relevant it is X years later).

I'm also convinced a huge number of ARBITRARY_PROGRAMMING_LANGUAGE SO contributors are just random students googling the answers for sweet, sweet internet points (if I was being generous, to build themselves a 'profile' for job hunting or something) but that is another thing entirely.


I've gone to Google for answers quite a few times, but only because I'm truly interested in the question and/or answer. Internet points don't motivate me, being helpful does.


Meanwhile... trying to fix a typo in a popular answer.

Can't submit because an edit has to be at least n character changes.


There are a lot of arbitrary rules baked into the code to theoretically improve the quality, as the original designers (particularly Jeff Atwood) believed that overall site quality was crucial to the long-term viability of the site. Unfortunately there's a lot of collateral damage.


It seems to me that most rules will stop applying after some amounts of points. The founders and early users are never subjected to them, while it's a major hassle for everyone else.


Not always true, I have every privilege available on the site and I still ran into the minimum number of changes for an edit. I spent far too much time looking for innocuous changes just so I could push an essential edit through. I don't deny that some rules are like that though.


Another example on edits then, you must be familiar with the "edit queue is full" bug? You can clean the edit queue if you have enough points.


If you have enough points your edits don't even enter the queue, they're applied immediately.


Wow. Privileges in action.


To be brutally honest this is absolutely pointless.

It is basically confirming simple online etiquette produces best results.


Even common sense needs to be studied; some of it occasionally turns out to be wrong.


If this paper had implied that common sense was wrong here, would you have trusted it?


I don't particularly trust this study; I haven't even read it. I'm just saying that you can't skip studying something just because it seems like common sense.


In the absence of any other study, only if it is safe.

But a non common sense result would lead to more studies, that would either confirm or disprove it. That larger body of studies would very likely be trustworthy.


Sure. A possible outcome could have been: Upper case questions are better

Possible rationale: They get more attention

We need to study such things objectively. Also results may change over time as internet users get used to things


I don't think it's pointless at all... This would have been extremely helpful to me once upon a time.


TLDR: Be concise & unemotional.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: