Stack Overflow Culture

This blog post was most directly provoked by this tweet from my friend Rob Conery, explaining why he’s giving up contributing on Stack Overflow.

However, it’s been a long time coming. A while ago I started writing a similar post, but it got longer and longer without coming to any conclusion. I’m writing this one with a timebox of one hour, and then I’ll post whatever I’ve got. (I may then reformat it later.)

I’m aware of the mixed feelings many people have about Stack Overflow. Some consider it to be completely worthless, but I think more people view it as “a valuable resource, but a scary place to contribute due to potential hostility.” Others contribute on a regular basis, occasionally experiencing or witnessing hostility, but generally having a reasonable time.

This post talks about my experiences and my thoughts on where Stack Overflow has a problem, where I disagree with some of the perceived problems, and what can be done to improve the situation. This is a topic I wish I’d had time to talk about in more detail with the Stack Overflow team when I visited them in New York in February, but we were too busy discussing other important issues.

For a lot of this post I’ll talk about “askers” and “answerers”. This is a deliberate simplification for the sake of, well, simplicity. Many users are both askers and answerers, and a lot of the time I’ll write comments with a view to being an answerer, but without necessarily ending up writing an answer. Although any given user may take on different roles even in the course of an hour, for a single post each person usually has a single role. There are other roles of course “commenter on someone else’s answer” for example – I’m not trying to be exhaustive here.

Differences in goals and expectations

Like most things in life, Stack Overflow works best when everyone has the same goal. We can all take steps towards that goal together. Conversely, when people in a single situation have different goals, that’s when trouble often starts.

On Stack Overflow, the most common disconnect is between these two goals:

  • Asker: minimize the time before I’m unblocked on the problem I’m facing
  • Answerer: maximize the value to the site of any given post, treating the site as a long-lasting resource

In my case, I have often have a sub-goal of “try to help improve the diagnostic skill of software engineers so that they’re in a better position to solve their own problems.”

As an example, consider this question – invented, but not far-fetched:

Random keeps giving me the same numbers. Is it broken?

This is a low-quality question, in my view. (I’ll talk more about that later.) I know what the problem is likely to be, but to work towards my goal I want the asker to improve the question – I want to see their code, the results etc. If I’m right about the problem (creating multiple instances of System.Random in quick succession, which will also use the same system-time-based seed), I’d then almost certainly be able to close the question as a duplicate, and it could potentially be deleted. In its current form, it provides no benefit to the site. I don’t want to close the question as a duplicate without seeing that it really is a duplicate though.

Now from the asker’s perspective, none of that is important. If they know that I have an idea what the problem might be, their perspective is probably that I should just tell them so they can be unblocked. Why take another 10 minutes to reproduce the problem in a good question, if I can just give them the answer now? Worse, if they do take the time to do that and then I promptly close their question as a duplicate, it feels like wasted time.

Now if I ignored emotions, I’d argue that the time wasn’t wasted:

  • The asker learned that when they ask a clearer question, they get to their answer more quickly. (Assuming they follow the link to the duplicate and apply it.)
  • The asker learned that it’s worth searching for duplicate questions in their research phase, as that may mean they don’t need to ask the question at all.

But ignoring emotions is a really bad idea, because we’re all human. What may well happen in that situation – even if I’ve been polite throughout – is that the asker will decide that Stack Overflow is full of “traffic cop” moderators who only care about wielding power. I could certainly argue that that’s unfair – perhaps highlighting my actual goals – but that may not change anyone’s mind.

So that’s one problem. How does the Stack Overflow community agree what the goal of site is, and then make that clearer to users when they ask a question? It’s worth noting that the tour page (which curiously doesn’t seem to be linked from the front page of the site any more) does include this text:

With your help, we’re working together to build a library of detailed answers to every question about programming.

I tend to put it slightly differently:

The goal of Stack Overflow is to create a repository of high-quality questions, and high-quality answers to those questions.

Is that actually a shared vision? If askers were aware of it, would that help? I’d like to hope so, although I doubt that it would completely stop all problems. (I don’t think anything would. The world isn’t a perfect place.)

Let’s move onto another topic where I disagree with some people: low-quality questions.

Yes, there are low-quality questions

I assert that even if it can’t be measured in a totally objective manner, there are high-quality questions and low-quality questions (and lots in between).

I view a high-quality question in the context of Stack Overflow as one which:

  • Asks a question, and is clear in what it’s asking for. It should be reasonably obvious whether any given attempted answer does answer the question. (That’s separate to whether the answer is correct.)
  • Avoids irrelevancies. This can be hard, but I view it as part of due diligence: if you’re encountering a problem as part of writing a web-app, you should at least try to determine whether the context of a web-app is relevant to the problem.
  • Is potentially useful to other people. This is where avoiding irrelevant aspects is important. Lots of people need to parse strings as dates; relatively few will need to parse strings as dates using framework X version Y in conjunction with a client written in COBOL, over a custom and proprietary network protocol.
  • Explains what the asker has already tried or researched, and where they’ve become stuck.
  • Where appropriate (which is often the case) contains a minimal example demonstrating the problem.
  • Is formatted appropriately. No whole-page paragraphs, no code that’s not formatted as code, etc.

There are lots of questions which meet all those requirements, or at least most of them.

I think it’s reasonable to assert that such a question is of higher quality than a question which literally consists of a link to a photo of a homework assignment, and that’s it. Yes, I’ve seen questions like that. They’re not often quite that bad, but if we really can’t agree that that is a low-quality question, I don’t know what we can agree on.

Of course, there’s a huge spectrum in between – but I think it’s important to accept that there are such things as low-quality questions, or at least to debate it and find out where we disagree.

Experience helps write good questions, but isn’t absolutely required

I’ve seen a lot of Meta posts complaining that Stack Overflow is too hard on newcomers, who can’t be expected to write a good question.

I would suggest that a newcomer who accepts the premise of the site and is willing to put in effort is likely to be able to come up with at least a reasonable question. It may take them longer to perform the research and write the question, and the question may well not be as crisp as one written by a more experienced developer in the same situation, but I believe that on the whole, newcomers are capable of writing questions of sufficient quality for Stack Overflow. They may not be aware of what they need to do or why, but that’s a problem with a different solution than just “we should answer awful questions which show no effort because the asker may be new to tech”.

One slightly separate issue is whether people have the diagnostic skills required to write genuinely good questions. This is a topic dear to my heart, and I really wish I had a good solution, but I don’t. I firmly believe that if we can help programmers become better at diagnostics, then that will be of huge benefit to them well beyond asking better Stack Overflow questions.

Some regular users behave like jerks on Stack Overflow, but most don’t

I’m certainly not going to claim that the Stack Overflow community is perfect. I have seen people being rude to people asking bad questions – and I’m not going to excuse that. If you catch me being rude, call me out on it. I don’t believe that requesting improvements to a question is rude in and of itself though. It can be done nicely, or it can be done meanly. I’m all for raising the level of civility on Stack Overflow, but I don’t think that has to be done at the expense of site quality.

I’d also say that I’ve experienced plenty of askers who react very rudely to being asked for more information. It’s far from one way traffic. I think I’ve probably seen more rudeness in this direction than from answerers, in fact – although the questions usually end up being closed and deleted, so anyone just browsing the site casually is unlikely to see that.

My timebox is rapidly diminishing, so let me get to the most important point. We need to be nicer to each other.

Jon’s Stack Overflow Covenant

I’ve deliberately called this my covenant, because it’s not my place to try to impose it on anyone else. If you think it’s something you could get behind (maybe with modifications), that’s great. If Stack Overflow decides to adopt it somewhere in the site guidelines, they’re very welcome to take it and change it however they see fit.

Essentially, I see many questions as a sort of transaction between askers and answerers. As such, it makes sense to have a kind of contract – but that sounds more like business, so I’d prefer to think of a covenant of good faith.

As an answerer, I will…

  • Not be a jerk.
  • Remember that the person I’m responding to is a human being, with feelings.
  • Assume that the person I’m responding to is acting in good faith and wants to be helped.
  • Be clear that a comment on the quality of a question is not a value judgement on the person asking it.
  • Remember that sometimes, the person I’m responding to may feel they’re being judged, even if I don’t think I’m doing that.
  • Be clear in my comments about how a question can be improved, giving concrete suggestions for positive changes rather than emphasizing the negative aspects of the current state.
  • Be clear in my answers, remembering that not everyone has the same technical context that I do (so some terms may need links etc).
  • Take the time to present my answer well, formatting it as readably as I can.

As an asker, I will…

  • Not be a jerk.
  • Remember that anyone who responds to me is a human being, with feelings.
  • Assume that any person who responds to me is acting in good faith and trying to help me.
  • Remember that I’m asking people to give up their time, for free, to help me with a problem.
  • Respect the time of others by researching my question before asking, narrowing it down as far as I can, and then presenting as much information as I think may be relevant.
  • Take the time to present my question well, formatting it as readably as I can.

I hope that most of the time, I’ve already been following that. Sometimes I suspect I’ve fallen down. Hopefully by writing it out explicitly, and then reading it, I’ll become a better community member.

I think if everyone fully took something like this on board before posting anything on Stack Overflow, we’d be in a better place.

96 thoughts on “Stack Overflow Culture”

  1. Some of the lowest-rated/scored posts have proven to be exactly what I needed to resolve problems. So, the whole the-post-with-the-highest-this-or-that-rating-wins mentality, for me anyway, has no real substantive value or basis in “reality,” other than they are mere ratings based on opinions that are per se possibly flawed. Making SO a competitive environment, IMO, is the wrong approach. A more teamwork-like environment would prove and produce a much more productive, respectful, fruitful environment.

    Liked by 6 people

    1. You raise an interesting point about the competitive nature of the site for answerers.

      I wonder if the site had an option to let answerers opt-in to “merge” answers (and the answerers shared the rep) if that might help. I get that an answerer doesn’t want to “give up” any rep gained and bow out after putting in effort… but keeping multiple “almost the same” answers isn’t the best either.

      That all said I love helping others on the site… however I’m guilty of wanting that rep. It does feel very good to gain it… and thus there is a risk that it will negatively affect my behaviour.

      Liked by 1 person

      1. Actually, I suspect that the competitive nature of the site is a greater problem for askers than for answerers. It would often be easy to help edit a question to improve its quality, both in terms of formatting, clarity and any number of other metrics, but since no reputation is gained for it, there’s little incentive to do so.

        Like

    2. “Some of the lowest-rated/scored posts have proven to be exactly what I needed to resolve problems.”

      Sure, some. But let’s be intellectually honest … low scores are not positively correlated with good answers.

      “So, the whole the-post-with-the-highest-this-or-that-rating-wins mentality, for me anyway, has no real substantive value or basis in “reality,””

      Logic failure … does not follow. Higher scored answers tend to be better / more useful.

      “other than they are mere ratings based on opinions that are per se possibly flawed.”

      So much black-and-white thinking. Sure, all opinions are “possibly flawed” … including yours above. “merely” is a weasel word that is frequently a marker for intellectual dishonesty. The opinions that result in people voting answers up or down are not random or arbitrary, the reflect to some degree the quality of the answer, its usefulness to the voter, its accuracy, its success in solving a problem, etc.

      Like

    3. Would you be interested in trying out an alternative to StackOverflow that aims to solve exactly these issues?

      Like

  2. Yes! Thank you. This vocalizes(erm what is the equivalent for writing?) thoughts that have been meandering around my head for quite a while. This kind of attitude towards people is, I suspect another reason why you’re held in such high regard on SO

    Like

  3. I don’t think the negatives to which people refer are Stack Overflow issues. They are internet issues, particularly with developers. The issues, as I see them are, in no particular order:
    1 – Developers, especially good ones, tend to think in binary: Right way-wrong way, black-white, etc…
    2 – International cultural differences. e.g. European bluntness is perceived as rudeness in the USA
    3 – Anonymity provides a shield – Angry people with many personal problems can vent that anger in the form of internet comments.

    There are more, but these are the primary issues that come immediately to mind. These are by no means SO issues, but are well-know, age-old internet problems, especially in programming forums. This isn’t to say that SO shouldn’t attempt to moderate the problems, but all of us should give them a break. I do not believe that I have ever participated in a web or email programming forum that did not have these problems.

    Like

  4. Most people feel they can be rude because they don’t fear consequences on StackOverflow (as in any other only Q&A/forum). In real life only a tiny percentage of those virtual personality would have the courage of being so poorly polite; Insulting (not necessarily explicitly) someone behind a keyboard, in my opinion, is just an expression of low self esteem and frustration in real life. If a question is a bad question, people could easily suggest kindly to change it, but most of the time, on the platform it ends up being ridiculed. I appreciate there may be other bad consequences to removing the downvote, but I think the downvote and the poor moderator intervention (most of the time the moderators themselves are virtual bullies) causes big issues for medium users. Personally I have a decent reputation of question and answers, but I still avoid writing questions just because I don’t want to end up arguing about the question itself.

    Like

  5. I have ‘mostly’ stop contributing because of two reasons:
    1 – Askers normally too lazy to do their own research, their questions are either too trivial or just a copy paste of homework.
    2 – Askers dont bother to accept/upvote answers. They treat SO like a disposable QA site, where they get an answer quick and leave… and I am left wondering… did I answered him or not? No comment… nothing…

    I do sometimes ‘contribute’ by answering my own problem… or by answering very old questions that happens to be easily solvable by new framework/language feature.

    Like

  6. Thanks Jon. I too, have given up on Stack Overflow, for much the same reasons your friend has. The bottom line for me is that it can be a huge time sink, and I too often find myself feeling like I’m swimming upstream against a flood of useless, lazy questions.

    This is made worse by poor community moderation, in which some of the worst questions, either in terms of presentation or research, get the most up-votes. Ironically, these are most often the questions that the Fastest Gun in the West folks jump on (they are bad questions because they’ve already been answered dozens of times, but they’ve been answered so often because they’re easy to answer). The high number of quick answers means that the question can’t be closed; the people posting answers up-vote the question, and of course the asker up-votes some or all of the answers, producing a false signal of high quality.

    Add to that the decidedly non-productive reaction askers and answerers have when they are critiqued. Rude comments (often profane), personal attacks, and of course revenge down-votes all serve to dissuade a person from providing any feedback as to why they voted a particular way. It often seems like one has to choose between educating users and moderating the site, when in fact those two activities should go hand in hand.

    I do believe that the bottom line is as you state: when different members of the community have different goals, it is difficult if not impossible to have a conflict-free experience. Unfortunately, while there are positive aspects to the Stack Overflow model, it suffers from this fundamental truth about human behavior.

    One last note, on this part of your post: ” I don’t want to close the question as a duplicate without seeing that it really is a duplicate though.” I approach that situation (and in fact, that exact example…that question is asked far too often) much differently from you. I believe that questions that don’t meet the bar should be closed as quickly as possible. And as you even point out, askers typically aren’t appreciative of attempts to educate them. They just want someone to fix their problem now. You can be nearly certain, in that particular example and many others like it, that the question is in fact a duplicate. The right thing to do is to close the question as a duplicate.

    In the vast majority of the cases, this will solve the immediate concerns of both asker and answerer. The asker gets the help they need, the answerer spends a minimum of time on that particular question. Win-win. In the rare, almost inconceivable, case where the question isn’t a duplicate, closing is still the correct thing to do. It locks down the question, preventing spurious answers, and giving the community some breathing room in which to help the asker improve their question. If the asker is open to constructive criticism and is willing to make more effort, then they will find that they can in fact improve the question suitably, get it re-opened, and get a good answer. And since the question is now proven not to be a duplicate, we get a high quality question with a high quality answer.

    If the asker is unwilling, then we avoid wasting any significant time on a question that no one really understands, which won’t be helpful to future users, and which can’t be given a high quality answer. In that scenario, the asker loses, but only because they made that choice. Stack Overflow is just not the right place to try to save people from themselves. They have to be wiling participants in that process, and I don’t lose any sleep over users who aren’t.

    Liked by 2 people

  7. For those who might find this interesting I have started something similar but different in concept, mainly on SO you come with the question, on my you come with the solution.

    Like

  8. As someone with a modest 9.5k points as equal answerer and asker, the only issues I’ve ever had with the site are the duplicate police being a little too quick to mark a question as duplicate. Once this happens I’ve found that it’s impossible to salvage the question.
    Often, I’ve already read the question that I’ve supposedly duplicated and found it inadequate. The question could be similar but different or the answers are old as tech moves on so fast.

    Liked by 5 people

  9. I have found that many times the anti-duplication engine that you get when writing a question works quite well. So well, in fact, that I’ll skip searching for a question, and go straight to writing it, and let the engine do the searching. At least a third of the time, the answer to me question is already of there.

    Liked by 2 people

  10. As for the low quality of the question, how about opening up a “small scratchpad” kinda thing on the right? It would be just like comments, but the underlying aim would be different – guessing what might be wrong. Weird I agree, but maybe one way to keep things humane. Like in the random number example you gave, what if you (or someone else) just posted in this scratchpad that, “You might be generating random numbers too quickly!” This will provide a quick fix for the asker (I agree he’s at fault, but at least he won’t turn rude on being asked to edit). Once he confirms that the issue is resolved, we could then just delete the question altogether. We could of course do that in comments as well, but then this “guessing” would interfere with the actual clarifications that others prospective answers might seek from the asker.

    I agree this is not the best solution, but it was just a small suggestion to help everyone!

    Liked by 1 person

  11. I wouldn’t worry too much about users being offended by you helping them grow instead of just immediately answering their questions. When I first started asking on StackOverflow and other forums like it, I posted questions that weren’t very high quality and I as informed of duplicate questions etc. At first I was annoyed, but I came to appreciate that. It was “tough love” and it helped me become more independent.

    Nowadays, I hear from almost all of my colleagues that StackOverflow is a great resource. High-ranked answers often have the solution they need, or got them re-oriented as they debugged their problems. I would bet that it got to that state because of this attention to question quality.

    Like

  12. IMO they should just remove the ability to close questions, or be much more relaxed about what constitutes a valid question for SO. Lots of technical questions have opinionated answers, that may still be valid and useful to an asker. This alone makes the site incredibly asker-unfriendly, for no apparent reason other than to keep questions strictly fact-based.

    Liked by 1 person

  13. This is a great post. In my community, some people have a habit of linking http://www.catb.org/esr/faqs/smart-questions.html in response to below-par questions. I’d like to refer them to this post as a replacement, and in particular, the covenant — you’ve been kind enough to provide a #covenant anchor, but it points right under the subtitle for the covenant. Could you fix that?

    Either way, thanks for this post!

    Like

    1. Are you suggesting moving the anchor up very slightly or down to the covenant text itself? My main issue with the anchor is the way that the CSS obscures where it actually leads. You may want to just copy the bit you like most onto a dedicated page, but if you want to keep it to this page, I’ll see what I can do…

      Like

      1. Oh, sorry for not repsonding earlier; I meant to put the anchor at the header (either place the A tag in the H2 tag or around it) — AFAIK that should make the header show at the top when the link to the anchor is followed.

        Like

        1. I’ve moved it to inside the h2 (it’s written in Markdown, which makes this sort of thing slightly trickier) – but it doesn’t do exactly what we’d want. Due to the CSS (which is hairy WordPress stuff, and I don’t want to fiddle) it puts the header at the top of the browser window when the anchor is followed – not at the top of the readable text :(

          Like

  14. I feel like some of the question quality issues could be addressed in code through adaptive instruction paired with activity level and self-reported tag-level expertise information. I agree with the points about page-long paragraphs & unformatted code. I think you could detect issues, keyword, {}’s, tag count/specificity, etc.and educate the asker a little bit before accepting the submission. Coach them away from submitting a question that will end up getting rejected. Seems like a cool ML project.

    Sort the queue by estimated quality. Let answerers filter based on experience level. Give answerers some points for constructively explaining the issues with the question (what search query yields the answer they were looking for, examples of high quality questions, etc.).

    Like

  15. … the tour page (which curiously doesn’t seem to be linked from the front page of the site any more) does include this text

    Jon, I would argue that this is not a coincidence. SO has made a deliberate decision not to clarify its policies and set user expectations from the very beginning, because its lifeblood is just the same as of any other modern website: user growth and pageviews.

    If it so chose, SO could explain all this very clearly. Instead, it has the following verbiage:

    On the front page: ‘… developers come to Stack Overflow to learn, share their knowledge, and build their careers. … Join the world’s largest developer community.’
    On the signup page: ‘Create your Stack Overflow account. It’s free and only takes a minute.’
    On the TOS page: ‘A Note from the Team … The Stack Exchange Network is the easiest way to get expert answers to your questions.’
    The tour is nowhere to be seen even on the front page footer where you’d expect to find important site links

    I would ask: is all of this content consistent with the way you and other expert users view SO? If not, why not, and whose responsibility is it do something about it?

    Like

  16. Educating people in how to solve their problem themselves is the most important thing, this will ultimately make the internet a better place. SO, was never my game I always preferred SF where, most of the asking players are from SO.

    I cannot count the number of times that someone has posted a poor question, been asked in comments to show their config and logs (which may or may not require more hand holding), and then, they failed to actually read them, themselves. The answer is staring them in the face (or perhaps a quick search away).

    I have tried to write informative posts based upon teaching scientific method, that show how to go about solving a problem. They are a largely, poorly received. Often an answer which says just ‘do ‘ wins.

    This ultimately is the problem with SO and SE in general. It does not encourage the people who need to most, to think for themselves. Instead it encourages them to have someone else think for them.

    No one who needs to ever reads anything.

    I no longer play the SF game.

    Like

  17. Something that could be added as it seems to happen way too often.
    as an asker I will take the time to check/evaluate given answers and accept them if they helped me solve my problem (or I will ask for additional details)

    Like

  18. Recently I asked in StackOverflow something about what proper tools could I use to analyze static code in .NET, because I saw that FxCop was moved to Code Analysis in Visual Studio but it not seems to be integrated as a stand-alone, executable, automatable tool. Well, the question doesn’t matter, the point is that I started to be “banned” with negative votes all of a sudden and I didn’t know why! Eventually someone asked me (not quite politely but I thanked him because he at least helped me to understand what was going on, somehow), that there’s another stackexchange site more appropriate for such a kind of issues.

    Okay, so I agreed, moved the question to that site and deleted the question in StackOverflow (mainly to avoid more negative votes!).

    I didn’t pay much attention to that, but now that you mention this “rudeness” in StackOverflow sometimes… I agree. It’s important not to be rude. We (including me) find some pleasure in being in a “cop” or power position, to have the right to vote negative someone just because he / she didn’t do something right, overseeing the reasons!

    We should think a little bit about it. The point is, as you said: create a website with good questions and good answers. Contribute. Help. Teach. Learn. Whichever else is not welcome here…

    Like

  19. One thing I’d maybe add to the answerer covenant is to recognize that the asker may be under some stress or pressure. That doesn’t forgive a bad question, but it is good to keep in mind.

    I also second another comment here that my butt has been saved by many a closed question.

    Like

  20. I stopped asking questions on SE sites a few years ago when I received a notice that I was only a little ways away from being banned. It’s been long enough that I don’t remember the details, but it was something to do with my questions supposedly being “low-quality.” This was after spending hours on my questions to make sure I was asking something that didn’t have an answer elsewhere already. Now, the notification was clearly automated. Not triggered by a mod. And that is what showed that SE has a built in problem, and it wasn’t worth the effort to ask questions there anymore.

    If you’re curious about my questions, here’s my profile: https://stackexchange.com/users/155671/david-r

    The point of my anecdote is that I ask decent questions (maybe not perfect, but I put the effort in), but I no longer do so. Thus, SO is missing out on the content I could add. If enough people like me feel the same, that then leaves the “poor quality” posters in the majority.

    I think a lot of the problem has to do with the karma system. Up votes, down votes, and limiting peoples features based on their score, creates an environment that can go toxic very quickly. Since my SO score is so low, asking questions is a very large risk. A few people who don’t like that I had slightly bad grammar down voting me could have very large effects on my ability to use the site. Plus, there’s the emotional aspect of getting down voted. I can tell myself that it’s just fake internet points all I want, but emotions don’t always listen to reason.

    I think SE sites would benefit greatly from making down voting something that is hard to do. Harder than just needing enough karma to get the down vote ability.

    For SE sites, I’d suggest studying why people are posting low quality questions in the first place. Then address those issues via a less hostile system than karma.

    SE could also implement better UI for asking questions. Improve the similar questions results. Add in search engine suggestions. Add question templates that give users a decent guide to asking a good question. Etc.

    I’ll close with a few questions I think it would be good for those who have succeeded on SE sites to consider.

    Is it possible that the karma system creates a bias in users who succeed in gaining large amounts of points? Do the answerer’s and mod’s who have lots of karma become biased against those who do not? Do they see the karma system working for them, and automatically assume that if someone can’t make it work, then that someone is “low-quality”? Does it make it easy for those with high karma to ignore the emotional impact of their actions on those who don’t have high karma?

    Like

  21. I am in Linux&Unix that while has pretty much the same problem, seems to attract less attention than SO.

    I also find pretty frustrating the weak questions of people that just want a quick gratification, and does not want invest time into working more on it, or even using Googling or using their grey matter before asking.

    However, what I do nowadays is pretty much ignoring the lower-quality answers, and answer questions where the OP seems to be invested, and/or questions of areas that interest myself.

    One other thing that often we lose sight is besides low skilled users (Kali, I am looking at you), is also the age gap of the OPs. When I have closed a few bad questions about hacking, minor from Indonesia and Latin America have tried to befriend me on facebook. (I do not accept strangers in facebook)

    And yes, it an huge time sink.

    Like

  22. We have similar problems with our internal users raising support cases and getting help from our internal subject matter experts. It has surfaced a few times now. Everyone has the best intentions, even if it isn’t clear from their post. But it seems if we don’t remind people regularly of this, frustration can start to creep in and the quality of interaction dives.
    Thanks for sharing your “convenant”. It is really helpful in our situation as well.

    Like

  23. It is definitely true that the environment on Stack overflow is toxic and sometimes hostile, however at the same time we must realize it is one of the rare sources of quality content. we must lean how to decrease toxicity and not let quality decrease.

    Liked by 1 person

  24. Some regular users behave like jerks on Stack Overflow, but most don’t

    This is true.

    The age-old principle of “one bad apple spoils the whole barrel” is also true. It takes a surprisingly small number of jerks in positions of social power to eventually screw up an entire community if left unchecked, and I think that’s the biggest problem on StackOverflow: it does nothing to rein in such people.

    Like

  25. Some regular users behave like jerks on Stack Overflow, but most don’t

    This is true.

    The age-old principle of “one bad apple spoils the whole barrel” is also true. It takes a surprisingly small number of jerks in positions of social power to eventually screw up an entire community if left unchecked, and I think that’s the biggest problem on StackOverflow: it does nothing to rein in such people.

    Like

  26. Thank you Jon,
    I joined Stack Overflow early on and replied a bit in my time (I had lots of spare time back then…) . I felt excited by the goal of the founders and saw it grow into something amazing. I had all this knowledge at my fingertips and felt the need to disseminate it and help people. The rep system was just a metric to reflect how much I was helping.

    I always looked up to your answers as they were
    – Carefully worded
    – Documented
    – went beyond the simple “just do that” to guide people towards the “why” instead of the “how”

    I tried to apply this myself, as I found this type of high quality answers to be much more helpful in the long run, hen I stumbled on one while looking for an answer of my own.
    I also totally understand your view towards “high quality questions” as I always felt it was much more enjoyable to answer such questions, and it served the goal of “repository of questions and answers” that stack overflow has. I also highly appreciate your effort to help grow the skills of the askers by making them be more precise in the specifics of their problem. It helps them be better at their job/hobby and it can in turn allow them to become skilled answerers.

    Now, as you said, it is easy to turn this defense of the site’s goals into a harsh environment for peolple under pressuring deadlines looking for answers. But in the end, your deadline is not mine and, as you mentionned, if I answer a question I am giving up my time for your convenience and I expect my time to spent not only answering your question but also to serve the need of future people looking for answers. It is a delicate balance…
    On top of that, the rep system served a useful purpose but it can trigger counter-productive behaviors if that is all people are interested in.

    Last, but not least, it is very important for everyone user to remember that writing on a forum is a very difficult job indeed. Your tone, your frame of mind is completely hidden to your reader. It is easy to be misinterpeted. Not to mention people who feel empowered to become jerks because they are only using a nickname. But that is another discussion that geos well beyond the scope of SO. In theory, good moderation should take care of this kind of toxic behavior.

    TL;DR: I like your covenant, it makes sense and, if followed by most people, might make it more enjoyable and useful to ask/answer.

    Like

  27. I really like this post, also I do believe that the principles that can help SO as a community can be applied to pull requests whether it is on open source or professional projects.

    Like

  28. I just did a video on how to ask a good question on Stack Overflow (https://youtu.be/OWQx4HSd14A) and I used a lot of these points (didn’t see your article until just a few minutes ago). I’ve had a bunch of my viewers complain about not getting good help online (in general) and the issue usually came down to asking poor questions and trying to get help without giving anything back first. I first encouraged my viewers to give back before they need help, then I walked them through the process of asking a good question and ensuring that they did the legwork first of trying to resolve the question on their own (and sharing that work). The Internet is full of great people that truly want to help. They just get beat up by people who appear to just want free work done for them.

    Like

  29. Stackoverflow just works. But there are really two phases to SO :-

    there is the churn, where questions get asked and closed, this is where people get frustrated with bad questions, bad answers, mean comments, downvotes, etc. But that’s the human factor. There may be more tools to help out, but fundamentally SO is open to a HUGE amount of people from all kinds of backgrounds and countries and it represents people and how they choose to react to other people, some are nice, some are not, some are still learning their online social graces, some are super pedantic, some want to enforce rules to the letter, there is all kind of people. But the end result is mostly crappy questions get filtered out. Sometimes good questions are filtered out too, and ideally we want to minimize that, but I think it’s better to filter too much than too little.

    Then there is the next, and most useful phase, good questions with good answers become googleable references that get used over and over again. For many people accessing SO the churn is not visible, some people never even signup to SO and never see the content creation process.

    Like

  30. I can’t get past the fact that the guy whining about SO on twitter deleted an answer that got 29 upvotes. Some people need to grow up.

    Like

  31. Hi Jon,
    As a newcomer to SO and not being a professional programmer, I found it a bit off-putting when my very first question was declared to be in the wrong forum and then closed for being off topic when I moved it to the suggested “correct” forum.
    Before that happened, some nice person took the time to give me a very complete and appropriate answer which I ended up implementing.

    I’d be interested to see what others think about this question in the context of your article.

    https://codereview.stackexchange.com/questions/180483/collection-with-generic-index

    Like

    1. Hi Carlos, I happen to be a moderator on CR (for a few more weeks anyway) – you need to understand that Stack Overflow has its set of rules, and Code Review has its own as well – e.g. we don’t review code that doesn’t work as intended, for that would just make us a dumping ground for SO’s “too broad” questions. We don’t review hypothetical/example code either – reviewing code takes a significant amount of time, and the single most infuriating thing that can happen is the OP commenting “thanks, but I can’t do that because my real code actually does xyz” – not putting up your real actual code in the first place boils down to disrespecting the people that spend an hour of their time to help you improve your code. So MCVE’s are great for SO, but terrible for CR.
      There’s a comprehensive guide on the meta site, written specifically for SO users coming to CR and explaining the differences between the two sites: https://codereview.meta.stackexchange.com/q/5777/23788
      TL;DR: all forums have posting rules, that’s just part of the game. Stack Exchange’s stiffness about enforcing its rules is exactly what made it successful, despite the frustration that arises in newcomers that don’t even know where to begin looking for the information about what these rules are. Protip: if your question was closed, you have been provided with one or more links. Be sure to review them all before posting the next one. Good luck!

      Like

      1. That said looking at the question now, I have to say I disagree with its closure. It was deemed “example code” apparently only because of the usage example. This is indeed annoyingly pedantic behavior and I will personally look into trying to fix that on CR.
        Cheers!

        Like

      2. Hi Rubberduck,
        I appreciate your response and understand the necessary discipline to keep a space like a site like SO properly organised.
        I think my main mistake, not being a professional programmer, is that I’m ignorant of the minimum etiquette to ask questions in SO. I thought I had asked properly, but obviously not, anyway, I’ll try to learn from this one.
        I didn’t know about the meta site with instructions and rules. For sure I’ll give it a good read before asking something again.
        Best regards,
        Carlos

        Like

    2. Your question doesn’t belong at codereview.stackexchange and was closed because it doesn’t fit the intent or the rules of that exchange. Finding that “off-putting” is rather self-centered. And since you did not state which “forum” (that’s your first problem — they aren’t forums) you originally posted your question to and which one was suggested (codereview might be either of those), it isn’t possible to determine whether the “declaration” was wrong or whether the suggestion was wrong — this is an example of not providing the information needed by the people whose time you’re asking for.

      Some people are nice and give answers even to inappropriate or misplaced questions — but that isn’t necessarily a good thing; there are people who downvote such answers. There are lengthy discussions in meta about this sort of thing.

      You have to understand that these aren’t open forums like Facebook, they are structured exchanges with large communities that have put a lot of time and effort into them. If you started editing Wikipedia pages without paying any attention to the policies and guidelines there, would you be put off if your changes were reverted and you were given cautions on your talk page? Some people are, but they’re in the wrong.

      Like

      1. Hi Marcel,

        Thanks for your response. One thing that might not help is that English being my second language, sometimes I don’t apply the correct adjectives. I’m not sure if “off-putting” came across with the meaning I intended. What I meant is that it didn’t seem friendly or welcoming as a first interaction. As you point out, this was my mistake.

        I posted the question first in SO and that’s when I was told I was wrong. Nothing else (links or anything). After I apologised and asked how to “move” the question, someone said “just close this one and ask again in CR”, which I did. And as I’ve learned now, that question wasn’t properly structured either.
        I called it “forums” as a way to refer to different “spaces” or “areas”. Again, not being a professional developer and coming from a different engineering field, I’m obviously quite ignorant of the local “lingo”.
        Anyhow, in the future, I’ll endeavour to be more disciplined and rigorous about where and how I ask the questions.

        Thanks again for taking the time to comment.

        Best regards,
        Carlos

        Like

        1. Hey Carlos,

          I, personally, don’t think you were wrong to find the way they closed your question unfriendly. It was unfriendly. SE’s platform is built in a way that is designed to close questions as quickly as possible, not in a way that is designed to help questioners find the proper place for their question. (At least, that’s my opinion.)

          What they should have done is commented and said something like: “Hey, your question doesn’t fit in here, please check the ‘How to ask’ block on the new question page, and the help section at this link: . Perhaps you should check this SE site over to see if it would be a better place for your question?”

          SE could also help things out if they allowed questions to be moved to an appropriate site.

          Like

        2. Whoever told you to post it in CR rather than SO was wrong. But that’s the thing … these sites have many contributors and some are more competent than others and everyone makes mistakes … you can’t judge the quality of the site by an experience like this, and the people who complain about how unfriendly SO is don’t offer an alternative, because there really isn’t one. You should spend some time in meta.stackoverflow is to see how diligent the site and the community are in trying to get things right and to improve the site’s usefulness … and to see that there’s a range of opinions and attitudes, and no magic wand to come up with a perfect solution because there isn’t one. Smart folks recognize that this is a very valuable resource and try to make the best of it.

          Like

        3. Someday I’m going to create a beginner friendly coding Q&A website/forum. Or someone else will. My supervisor is an accomplished portfolio manager and you never heard him saying “that’s a stupid question”. Stack overflow is a bunch of die hard core programmers that obsessve over rules more than they’re willing to actually answer a question. They’re just like big time D&D players that fight over if they should play with 2nd generation rule or 3rd generation rule or I don’t know, I’m never big on board games. When Bill Gates created Microsoft, he wasn’t thinking to dominate the market of super computers but rather to put a microsoft OS on each and every single of the desks around the world because he knew PC would make the majority of the computer market. People are stupid but to make them grow wiser you want to be patient. Morever, people hopefully will grow courage and eventually ditch this place and move to somewhere where it’s easier to cultivate their skills of programming. Stack overflow won’t die for a while as long as the ones who established it and those who’ve grown into the system by spending hundreds of hours commmenting are around. But that’s about it. It can’t be the way of the future, and it won’t be.

          Like

    3. Happens all the time. Many of my questions are on fringe problems/topics, often thought to be duplicate and quickly closed. Usually some bright folks manage to answer it in time before the click happy moderators can close it.

      Like

  32. For me, the site has never really worked as an “ask a question” site. Your question either gets ignored, closed, or not really answered well. Most of the time I find that if a question is actually worth asking (from my perspective) then it means no one can answer it, (or the simplest answer is “no”.)

    So, instead I try to use the site as a sort of “public documentation” site. If I have a question that I can’t find the answer to, I don’t ask it, since that is almost never productive. Instead I spend a week solving it myself, and then either post and answer my own question (which will be mostly ignored), or find the closest already existing question and post my solution as an answer. (I have 10+ Necromancer badges from doing this.)

    The problem with the rep game is the same problem that the internet in general has: things are voted on when they’re viral and sort of good; things are ignored when they’re not viral no matter how good they are. What “rises to the top” is what’s popular, not necessarily what’s good.

    Like

    1. ” Most of the time I find that if a question is actually worth asking (from my perspective) then it means no one can answer it, (or the simplest answer is “no”.)”

      And yet there are thousands upon thousands of questions worth asking that have received excellent and useful answers, and a large number of people who have profited from asking questions there.

      Like

      1. I didn’t mean it as a criticism of the site necessarily, I was only describing my personal experience. It’s hard for me to have a question that fits in the “sweet spot” between something that I could trivially research, or something that is just borderline unanswerable. What you need is a question that you can’t answer that someone else can. A lot of people miss the “that you can’t answer” part and ask questions that they should have been able to answer. But at the same time you have to ask something that someone else could actually answer.

        Like

  33. Answerer: maximize the value to the site

    I do not think this is an adequate model. The more adequate motivation when answering a question on SO is to 1) show how smart you are, and 2) earn score. From this point of view, good questions are those that allow a single answer that can be quickly recalled or googled i.e., that minimize time needed to produce an answer and get the reward. This works well when the answer needs some rare specialized knowledge, e.g., if the question is about a specific library and the developers of that library can answer. But then you want to disallow even that and say that a good question should describe a simple problem, like incorrect use of System.Random, so that anyone can google an answer and copy it over to SO. It is not a bad goal, but it answers why some people don’t feel welcome on SO: they can google their questions themselves and they have other ways to reward themselves than googling for other people.

    Like

    1. I’m not sure what you mean by “adequate motivation”. I think a lot of people contribute in SO for altruistic reasons, not to either look smart or gain points.

      I wish some people would spend more time researching before asking questions though – there are lots of questions which can be answered with a single search.

      Like

    2. “I do not think this is an adequate model.”

      It’s not a “model”, it’s a guideline for how to be a good person.

      ” The more adequate motivation when answering a question on SO is to 1) show how smart you are, and 2) earn score.”

      Maybe that’s your motivation, but it’s not the motivation of most of the people who answer questions at SO.

      Like

      1. “it’s not the motivation of most of the people who answer questions at SO.”

        I’m not sure that’s entirely correct.

        I think it is true that the higher-profile/higher-reputation people at SO are mostly motivated by altruism or similar. Frankly, it’s hard to stick with the site long enough to gain that kind of status without having a motivation beyond the raw Internet points one gets.

        But there are a relatively few number of those people. There’s a long tail of people who come and go, polluting the site during their brief stay, by posting answers to questions that should never have been answered. The question is either unclear, resulting in a half-dozen or more disparate answers, none of which actually address the question, or it’s a duplicate of one or more questions, but is easy enough that these people post the quickly-Googled answer before enough close-votes can come in.

        Each of these individuals does little harm by themselves. But they make up a much larger proportion of the users who visit the site, and so do have a negative impact.

        (And for what it’s worth, the high-rep people who answer questions that should’ve been closed are sometimes the worst. They provide actual answers, usually to something that’s a duplicate, their answers are high quality, and they are motivated by a genuine desire to help. This is great on a personal level, but it contributes to the problems, often in the worst way, because their behavior is held up as an example to others.)

        Like

        1. “I’m not sure that’s entirely correct.”

          As I worded it (with the word “most”), it’s either correct or it’s not.

          “But there are a relatively few number of those people.”

          Prove it.

          Like

          1. P.S.

            “There’s a long tail of people who come and go, polluting the site during their brief stay, by posting answers to questions that should never have been answered. The question is either unclear, resulting in a half-dozen or more disparate answers, none of which actually address the question, or it’s a duplicate of one or more questions, but is easy enough that these people post the quickly-Googled answer before enough close-votes can come in.”

            Even if this is true, it doesn’t support the claim that most people answering questions at SO are motivated by “1) show how smart you are, and 2) earn score” … notably, people “who come and go” and have a “brief stay” are not in the business of earning score.

            I won’t waste any more of my time debating this with folks who display lots of cynicism but little intellectual honesty.

            Like

            1. “people “who come and go” and have a “brief stay” are not in the business of earning score”

              Of course they are. They don’t show up planning to leave immediately. While they are there, their primary goal, if they bother to answer at all, is to score points.

              “I won’t waste any more of my time debating this with folks who display lots of cynicism but little intellectual honesty”

              Ad hominem much? Anyway, thanks for letting us “intellectually dishonest” folks have the last word. Very big of you.

              Like

    1. ” It is like saying that employees of a company want to maximize the value to the shareholders.”

      No, that’s an intellectually inept analogy.

      Like

  34. Thanks for sharing. I ended stopping contributing after a short time because people were rather particular in what they looked for and down voted my early posts to the point were my ‘reputation’ was such that I could not contribute again. I can see their points about guidelines but for new folks it’s a bit unwelcoming / harsh. I’ll just use my own blog instead for helping others… Cheers.

    Like

  35. I have a bunch of answers and questions on SO. However the place where these issues really shone through were the spin-off sites: There was so much elitism going on on some of them that they became unusable. I was asking questions on Japanese.stackexchange, and they got removed because “they were about translating” – A rule which had been written to avoid people asking for homework, but got mangled to the point where only professional linguists could use the site.

    I see that the worst two offenders got removed from the site, but I’ve never returned, because the mental stress of having to be insulted when trying to make an effort (and I wrote some of the highest rated texts on the whole page of all time) was just not worth it.

    Like

  36. I had my Stackoverflow all of 10 minutes before deleting it due to hateful comments. I was one of those users that had a question about my homework. I posted the code only after exhausting all of my resources (googling to try to find out my error, asking coder friends to take a look and rewatching a 25 minute lecture twice to see what I had missed). Immediately people were calling me names and even making fun of the subject matter of my code.

    The only helpful comment was immediately downvoted by the drove of bullies and deleted.
    I am NEVER using that site again, which is unfortunate. Coding is already stressful enough for beginners and it’s a shame they’re not doing more to get rid of the toxic environment that site has cultivated.

    Like

  37. It’ll be interesting to see if SO changes after they recognize a problem exists. I didn’t see any concrete steps outlined. What people should realize, if they don’t already, is their whole business model is based upon crowd sourced questions and answers. Also, people don’t need them. Anyway, I hope that they choose to change but time will tell…

    Like

  38. That is a fair and productive insight of the community culture that one can’t but respect.

    One “rude” behavior you haven’t discussed though is that often elite members such as yourself (not you personally) simply don’t like a question for the mere reason of, well I don’t know why. And then they shower the question with downvotes.
    One example I’ve personally experienced is a question that looks like one of those one-liners that usually get 100+ upvotes due to their straightforwardness, relevance, and uniqueness. It instead gathered 5 downvotes and a few delete requests. The question is the first result on Google when searching for “What’s the complexity of StringBuilder.ToString”
    I can probably hear you saying that I’m being obsessed with upvotes and that reputations are overrated. For me they are, but not for everyone, and especially not for newbies.
    Cheers,

    Like

    1. You’re Damn right bro! Same thing happens to me! But i don’t even care. My reputation score is 1 hahaha and i’m a member since 2011. I’m answering questions only. I’ve only placed 2 questions in my entire life. And when someone gets pissed off with you and your attitude they visit your profile and start down-voting whatever answers you ‘ve given till that time. They have down-vote one of my answers (that was 4 years old..lol) after an argument that i had with one dickhead lol..THEY ARE PSYCHOLOGICALLY IMPAIRED 1000% !

      Like

  39. Most of the people in StackOverFlow are jerks..even if they don’t seem to be. I’m a member since 2011 and my reputation score is 1 hahaha!
    Let me tell you some of my experiences:
    I’m a professional Software Architect with 13 years of experience in Linux, Java, C, Perl, Networking etc etc…
    I’ve tried many times to answer questions and my answers almost were removed or edited…lol hahaha!
    One of my latest experience was when i asked for a help for a problem when i was debugging using valgrind. Any answer i was getting was useless..they were asking me to show them the complete code..although the question WAS 10000% concise nothing more nothing less.
    And someone posted THE RIGHT ANSWER…his experience on the topic WAS OBVIOUS..and i started to chat with him and stopped talking to the others. The others get pissed off because i let them down with my behavior..because IT WAS OBVIOUS THAT they were going to waste my time!!! 1000% for sure. Then they got into my profile and vote each of my answers in other topics negatively.
    People in stackoverflow HAVE PSYCHOLOGICAL ISSUES..problems with self esteem and they are feeling 10000% sure that they got the answer for you ONLY IF you do what they tell you to do.. (for example to show them the complete code..hahaha!)
    My user name if “javase” go get into my profile and see what i mean.
    Another one bad thing with staoverflow is that everyone thinks that it is the pill to the knowledge..Without doing any research on your own (at first) in order to try to solve your problem.
    I have only used the stackoverflow 2 times to solve a problem that i had.
    I’ve read a HUGE NUMBER OF BOOKS …my knowledge is extremelly good..and if i sometimes seem to rant when i’m answering a question is BECAUSE I DON’T LIKE people who think that stackoverflow is the solution to reach someone’s else experience without move you damn ass and educate yourself before making a damn question. FOR EXAMPLE, last time i gave an answer to someone who asked for the meaning of “this” keyword in C++ and HE ALSO MENTIONED IN HIS QUESTION THAT “C++ is not a well designed language” LOOOL THAT PISSED ME OFF…i gave him the right answer…And instantly 1-2 bodyguards come against me lol hahaha by accusing me of being a rant! LOL…
    People are sick in that damn portal! For sure!

    Like

Leave a reply to pete.d Cancel reply