Google any question you ever have about programming and the first results will probably be from Stack Overflow, with great answers from outstanding developers inside. Thousands if not millions of devs use it every day to get unstuck and fix that weird bug, which makes it an invaluable resource that most devs wouldn't even imagine how to live without.
But if you ever dare to ask or answer a question, you'll find yourself engaged in an unbelievably toxic environment wondering how such a monster could have ever grown so massive.
Here's my assessment of why this happens, what they could do to fix it, why I believe we shouldn't just go along with it, and what alternatives we could use instead.
It prioritizes search engines over user experience
It's fairly clear that the dominant position in Google's search results is a key to their success, which can be frustrating as you'd usually get old results that perpetuate bad or deprecated practices. But that's just a quality issue, the real problem is the behavioural ones they create in order to get there.
For instance, duplicate content was one of the big no-nos of early search engine optimization. Stack Overflow therefore puts a giant effort on avoiding duplicate questions, with a built-in search that suggest duplicates as soon as you start writing your question (which is great) and incentives their users to mark questions as duplicates (which is not).
At this point, any new user that dares to make a question bellow the level that'd make the language creator go "uh, guess we should spend the entire next month looking at that" will face a wave of duplicate question flags, low-quality marks, and downvotes, which will ironically get the account below the minimal score required for posting questions and result in it getting functionally blocked. Forever.
Let's think about that for a sec. You, as a newbie, ask a question that seems reasonable to you. Instead of getting answers, you get functionally blocked from using the website until you gain score, which you can only do by answering questions, which you don't have the knowledge to.
Doesn't that seem like a vicious circle?
Furthermore, if you are a stablished developer and decide to give back to the community by trying to answer some questions at SO, you won't fare any easier. Dare to answer what other considers a low-quality question and you'll get downvotes. Dare to answer a great-quality question with a great-quality answer and you'll... still get downvotes, because...
Its all about being the dominant elite
People with a bazillion points will gladly get a -1 from downvoting someone else's answer just to improve the chances of their own's from being marked as the accepted one. Really. There are people out there downvoting every other answer they deem as a threat to their dominant position in the ridiculous hierarchy of meaningless score.
They'll downvote, flag, name-call, and reply in the most condescending ways. They'll abuse you out in every possible way just to keep being in the top 1% overall, to gain reputation score for the next privilege (yup, that's their term) or to claim their next badge, many of which are awarded from being a toxic %#$&!
There are badges for reaching a number of raised flags (which results in people flagging everything), for reaching a number of edits (which results in people editing everything), for deleting your own post with negative score (and that's literally called peer pressure... seriously, I couldn't make this up) and for visiting the site without skipping a single day. Ever. Which leads me to...
It relies on addictive behaviour
The rewards system is incredibly fine tuned to keep users engaged, and seems designed by an evil psychologist or a master game designer (is there any difference between both? :p)
If you make it past the initial backlash of negativity and toxic behaviour, you'll find yourself bombarded by small dopamine rushes from raising scores and badges acquisition every time you answer a question or reach a milestone.
The issue is that it goes way too far, with each tag having three or four people literally addicted to it. I'm talking about well-intended, incredibly knowledgeable people that spend every waking hour overwatching a tag, racing to be the first to answer every new question and have their dose of +10s to survive the day.
They've developed strategies for it too: normally they'll answer the question in the shortest possible way to be the very first and get their question marked as accepted in case the author was watching, then immediately edit it for clarity in case that they were looking for a better one, and finally another edit formatting it to be the prettier and get attention whether is was the one marked as accepted or not.
These people are pretty much creating 99% of SO's content. They are working their souls off for the company, without receiving any real compensation, and spending so much of their time on the site that they probably can't even hold an actual job, despite being outstanding devs. And don't even get me started on how they treat their (also unpaid) moderators...
How could they fix it
I'm not one to make complaints without pitching a solution, so hear me out... the issues behind SO's toxicity shouldn't be too hard to be worked on.
Removing downvoting for good. Really, there's no benefit for it. If you think something shouldn't be on the site, flag it as such. But downvoting is hurtful. Our minds tend to weigh a negative feedback far heavier than a bunch of positive ones. Even if the downvote means -2 score and the upvote +10, most people will perceive an overall negative experience from getting one or two downs in a sea of ups. And that sucks.
Putting a limit on the number of daily answers per user. This will prevent addictive behaviour and give upcoming devs a chance to compete with the ones dominating a topic. And I mean compete in the most loose of meanings, as it will also lessen the hierarchical aspect.
Reworking the way questions from new users are handled. Seriously, it seems absurd that trying to ask a sincere question unequivocally results in your account being practically banned. Make a sandbox for new users, improve your duplicate question search system, separate the spam from the well intended newbies.
Remove policing incentives. Flagging a question should be a last resort, not an encouraged behaviour.
I've seen them speak a lot about trying to fix the toxicity in the recent years, with a new code of conduct every other month and positive articles everywhere, but no changes to the system itself.
Either they're unaware of their system being the issue, or knowingly taking advantage of it while putting down some nice words to wash their guilt away. Considering how masterful their psychological tricks are, I have a hard time believing it's the former. Therefore...
We shouldn't just go along with it
Yup, it's comfortable to pick the first result at Google, and that's usually Stack Overflow. But by doing so, we're enabling and contributing to this behaviour.
That's why I choose not to use Stack Overflow, and why I believe it would be better for everyone, even themselves, if more people did the same.
Not only have I stopped answering questions there, I do my best to avoid getting any trafic into the site. I deliberately avoid clicking in their search results (and I use DuckDuckGo that luckily doesn't seem to be so addicted to SO as Google to begin with), which usually makes for better solutions anyway, cause...
It's probably holding you back as a developer
Sure, there's a place and a time for simple questions / answers. SO-driven development is a term we like to joke about. It's a quick solution that will get you unstuck. But there are better alternatives that will rocket your carrer forward:
Ask in a more productive, welcoming online community such as DEV.to. The very nature of DEV's system incentives good behaviour, but they really make an effort to get it to the next level, and it shows. Everywhere I look, there's a little detail helping to build a positive community.
But there are all sorts of tools for questions out there. GitHub issues themselves can be a great place to learn (sure, some projects are not as welcoming as others, but GitHub at least has a guide to build a good CoC). Even Twitter has less toxicity than SO, and that's saying something.Try browsing through the documentation. It can be more troublesome or even frustrating at times, but it'll help you truly understand the language / tool. It will give you super powers.
Reach out to your local communities. They'll be glad to assist and will help you build the connections, which at the end of the day is the best way to get great job opportunities, participate in meetups, even start your path as a speaker or author.
As you can see, going with alternatives will not only help you fix that particular bug or guide you through a how-to process, it will do so in a much more positive vibe and help you boost your career with knowledge and connections you wouldn't get otherwise.
And if you're in a position to share knowledge and answer questions, please don't do it on SO. A personal blog, DEV, twitter, anything else is a better platform. Which reminds me, I regularly blog about web development, mostly CSS stuff, and share the links at my twitter, so you can follow me if those topics are of your interest ;)
Let’s build a better web together!
Top comments (67)
Hi.
Nice analysis :).
I think it's about the use-case. The purpose of SO is probably being "The" question&answer resource, with emphasis on correctness and efficiency. Which is different from being a touchy-feely, feel-good place (for which I imagine there are other places). That said, I also am not fan of a*-holes, d*cks, toxicity and faux elitists who mistake means with ends.
"Removing downvoting for good" - I understand Your concerns about downvoting, but I think there is a big use for it - preventing people from grabbing wrong/dangerous code from SO. I mean downvoting answers. Maybe a comment should be required for downvote.
"Putting a limit on the number of daily answers per user" - I don't see any value in this. Sounds like an unnecessary limit. I hear republicans screaming «Get the "government" out of my daily postings, you commies.»
Other stuff I find suboptimal in SO:
Elitism (within reason) has its benefits: more good stuff bubbles to the top, preventing us from having to wade through bad answers or risking to use wrong/bad/dangerous code.
WDYT?
Let's chat.
(Angular, JS, TS dev here)
You can still select the best answers with upvoting alone, letting the good ones rise to the top. That's the reason Twitter, Facebook, DEV and most other systems rely only in positive reinforcement. Everyone is susceptible to negative emotion in varying degrees (it's one of the big 5 personality traits), so it may not be a big deal for you, but it can be crushing for others. But it's not just about a sense of welcoming and feel good place: the lack of negative reinforcement also encourages to write a reply or an alternate answer if you disagree, which should result in constructive exchange of ideas.
Limiting the number of answers is to prevent addiction. Even casinos will kick you out if you spend the whole day in there (at least, in most countries). SO is not doing that, but the exact opposite. It has a reward system in place that very deliberately encourages addiction.
Without getting into names, I can guarantee that for each tag there are three guys there that will race to answer every single question in the fastest way possible. No matter at what time you post the question, they are literally 24/7 overwatching the tag and running the ridiculous editing cycle I described above, desperately trying to get their +20. That's not sane. And they've been hooked on it for years.
One thing is to spend some of your time helping the community, but when it becomes your full-time occupation with zero compensation and prevents you from getting an actual job, it becomes a dangerous addiction and even a form of modern slavery.
Simply putting a limit of answers per day (in a thankful, considerate message) will provide a safety net for those users, while letting others participate in the game. It will only benefit the quality of answers by broadening the actors.
But, if they are addicted, how it will prevent them to make fake accounts to continue in the game?
Hi! that's a very good point. I'd tend to believe that making a new account won't do it for them as it'd be hard to see that 10 initial reputation, but some may go with it anyway and even find joy in receiving the initial rush of badges too. Guess some effort could be put in preventing that as well.
Honestly I raised that point from my personal experience. I spent about 8 months being an active user on the website, and I was one of those overwatching a tag an racing to get the accepted mark. I got out after I realised it was affecting my personal and professional life. But some of the people I was competing with are still doing it, 2 years later. Their system is very fine tuned to generate addiction.
You aren't supposed to have conversations in the comments section or post code in them. They are to allow you to ask a quick clarifying question - if you want to chat use the chat rooms.
Maybe let's make some petitions and/or support/feature requests for each of those items (I suggest separating the concerns).
Most of them have been floated multiple times...some of them by me...and all of them were knocked down.
StackOverflow is toxic, and from meta conversations I've personally been party to, that's the way the elite like it. And the elite call the shots.
Would you mind linking to some of those threads? I'd like to hear the other side as well on this.
You, sir, have already demonstrated yourself to not be not worth the effort. If you really cared to understand the problems, you would have applied yourself to understand them instead of microparsing the concerns of people whose experiences don't match your desired outcomes.
So, although it's a foreign tongue to me, I'll explain it to you in StackOverflowese, which you might find easier to understand: LMGTFY.
Thanks for trying, but I haven't found anything on google that underlines your point. As I said, my experience with Stack Overflow is overwhelmingly positive, which is why I'm asking for specific examples in the first place. If that's more work than you're willing to invest, that's fine, but please don't expect me to change my opinion based on one persons accusations.
I stopped using StackOverflow just because of -ve votes on absolutely correct accepted answers.
One more point, as versions of the product change, past questions/answers are no longer exact duplicates but some people just close the question just because as per SEO it is exact duplicate of old question.
True. Furthermore, and combining both your points, if you have an accepted answer and it becomes outdated overtime, you'll start receiving downvotes from people that want to mark it as outdated...
The system should allow to mark an issue as outdated, reopen the question for new answers, and show a clearly marked section with the archived answers. But no, let's punish the author for not keeping their hundreds of answers up-to-date...
I had once down vote on confirmed bug, Question was regarding unexpected behavior in .Net Framework, I looked at source code, I reported the bug to MS team, they even acknowledge the bug !! And I wrote in answer specifying link of bug report, still down vote !! I lost interest in answering anything on Stack Overflow.
This has bee discussed on SO meta and the (I believe official) answer was along the lines of "not happening, because some people use old software and old answers might still be relevant to them".
Personally, I think adding version information to both questions and answers would help here.
Perhaps a solution would be a parent-child (tree or just 2-levels) relation for questions. E.g. general-case -> special-case refinement.
E.g. for older JS, modern JS, etc.
I agree toxic behavior does go on on stack overflow.
But...
It's not your questions on Stack, or your answer, it's our answer & our question.
It also belongs to the people making sure we do not have to peer over 20 similar questions to find our answer, like it used to be a decade ago.
And it belongs to the people that update the answers to make sense in todays context for that question that was asked 5 years ago where the answer changed.
That unfortunately means it belongs to the toxic people out there too.
I think the best recourse here is to help those suckers acting toxic, they clearly forgot about the fact that they are supposed to be there to help people at some point.
Update, what I mean to say, let's embrace toxic behavior with empathy to fix it rather than ignore/disable it.
Hi Sebastian,
Believe me, I've tried. But at this point I think it would be like shouting "be nice" right in the middle of The Hunger Games. It's the system what creates the bad behaviour, and no amount of well-intended words will change that.
In my experience toxic behavior most often rears it head unintentionally, bad language, and thoughtless argumentation feeds confrontation, the cure is knowledge, empathy, and patience.
If we prevent' toxic behavior it will find it's way back eventually.
If we call it out, they will become defensive and try to retaliate.
If we teach one toxic person to be a better person, he might rub off on another and so on tho.
That takes a lot of time & empathy tho.
I think if we judge toxic behavior, we also need to judge our selves.
We might unintentially' be feeding the toxic behavior, by trying to "be nice".
Well, you're entitled to your opinion. Just don't put more weight into it than that. I've too put in that work — and actually, I have the badges and reputation to prove I know "how to use StackOverflow". That doesn't make me a better person. I've just played the stupid game long enough to be good at it, and then learned it was a total waste of effort to stay in that club.
I also don't believe in blaming the victim in matters of online toxicity, which is what your statements (unintentionally, I believe) do.
For every happy person I've spoken to, I've encountered dozens who have given up on StackOverflow, and have ultimately found better community elsewhere. And they found it. I don't have statistics...I just have years and years of using the platform, including as a flag reviewer for an hour+ a day for over a year, and working as a community manager and mentor around the tech world.
If you want a number, look at the number of "top posters" on StackOverflow compared with the number of people who tried joining the community. It's disgustingly low. It was significant enough for StackOverflow's governance to revise the code of conduct TWICE! And no, you cannot just blame the users as being lazy, as is StackOverflow's favorite shutdown — a la "duplicate question, not enough effort, not interesting, not useful" — since many are successful joining less toxic communities like DEV, and even IRC. Yes, there are some lazy users, but many many more just don't know the secret handshakes.
What you have with StackOverflow is an exclusive club of people who have figured out the secret password past the armed gatekeepers. It's not a badge of honor.
P.S. StackOverflow isn't even that good for information. In writing my Python book, I lost count of the number of times that StackOverflow's highest voted and accepted answers were actually wrong. Not even just out of date. Actually wrong.
Hi grunk and derek,
There's certainly people raising bad questions without doing their research first. I realise my wording may make it seem that I'm complaining about how they treat people that ask objectively bad quality questions. That's an issue, but what I want to address is a way deeper, systemic abuse
This is not an angry reaction to a downvote from my first question. I participated in their game for about eight months, did everything I could to lead by example, answered 200 questions, asked 1 question that received good feedback, got into "the top 0.01%" and collected all those pretty badges and points. I understand how it works.
In all honesty, I got out when I realised it was affecting my professioanl and personal life . I thought I was being an icon of helpfulness. In reality, I was participating in the sick game of edits I described above.
The very first person to reply to my tweet was one of the devs I was competing with all the time. #1 contributor in the [css] tag, former moderator, and a great guy that always tried to lead by example. He stayed in the site for far longer, but ultimately reached the same conclusion: it's the system what generates the bad habits.
I find the platform rather toxic, I will still use it though, won't engage in it. Don't like to be spoon fed. Stackoverflow most definately has some kind of loop hole, where toxicity is exploited to the max. Remind me of "Internet Research Groups" from Russia. It's the same kind of vibe. I did have bad experience with it as a noobie and beginner, that's what is so unappealing about it to me. There are plenty of other forums that have more dignity for a lack of a better word. I'll use the general concensus of Stackoverflow, but I won't rely on it, I have never have. Stackoverflow almost doesn't allow noobies to be stupid and make mistakes, and ultimately learn the right way. Despite what they advocate. I think it may be a bit outdated as a web technonology. Starting to become flawed in its princeples. The days of IRC bullying and stupid trolling is lame. You have better effect on social media. In fact the engine Facebook uses is perfect for noobies to learn coding. It's far more interactive and sccunct in its cause. Also just make a Telegram bot to find you all sorts of content to help you learn to code. The forum environment is for dinosaur programmers. It will soon be redundant when today's noobies are using far more dynamical and more effective educational platforms. So yes I did use it wrong, but I didn't need to feel like a retard because I did. Because in my mind and from my experience Stackoverflow is pretty toxic, it's like being in debating room of theoritical physists. Everyone is right. The chances of your question getting answered (as a beginner) is very slim. So why would a noobie want to use something that makes him or her feel like shit, plus can't give them answers? I personally think the dinosaurs can keep the Stackoverflow just the way they like it. No problem, I use stackoverflow to pick the brains of the wise , and use as more of reference with Google search kinda thing. For me stackoverflow has done nothing.. Maybe the odd snippet of code here and there, otherwise I personally find it too impractical, because it is too broad. Me personally.. If stackoverflow helped you pass your exams, I dont see you as an imaginative programmer. Just a mundane worker. Working smart is always better than working hard. Always. Especially in fields of engineering. HaPPy HaCkiNg kids! 🤘🏻🔥
I use stack overflow alot, it's very useful for any developer. Tons of very helpful people on it. That said, everytime I wants to ask something there I always have to be extra careful to avoid triggering someone. On one hand, u think it's good because it encourages users to do more proper research before asking. On another hand though, it's like your parent or teachers yell at you because you ask "stupid" questions. It discourages people in their search for knowledge.
I don't really know how to fix it, but I think with the advance of AI it should be possible for some kind of pre filter, pre tag questions? Humans are emotional and judgmental. We should not trust ourselves to judge people. Let the machines do that.
It took me 3 tries to get into rust (I am a big fan of it now). Whatever I tried to do was not exactly abundant on SO, so I have eventually went back to the docs and understood it properly. I never overlook the docs.
Occasionally, doing proper research on a topic I need help with, just to create a detailed question on SO has solved my problem before receiving any answers. So I think it's good, that you can't just write
I don't understand xy
but do some research and try to describe the code / problem / goals in detail.But I also like people to post questions here on DEV to be in a caring, supportive community! 👍
SO and DEV seem to have different goals and communities, so that makes perfect sense. Personally, I prefer stack-overflow for specific questions, which is what I tend to deal with, but it's also nice to see that there's DEV as a place to post more open-ended questions that can lead to discussions. SO pretty clearly doesn't want to become that kind of platform and I think the important thing is to just accept that. It's not for everyone, but if it was just like DEV, we'd just end up with two platforms filling the same niche and splitting the community.
I use stackoverflow regularly, but I don't see any problems in it as I am not registered there. Any question or bug I am googling, I check all possible answers finding the best one, and sometimes it's not stackoverflow. I see no point in asking questions as, either the question has already been answered (99.99% of the time) or the question is around some new technology, so I either search through it's docs, it's source code, it's related communities or just try to figure it out myself.
So I like stackoverflow a lot as the biggest ever knowledgebase, but not as a community to ask a question.
Get stuck on an issue long enough when using some proprietary software/service that you do not have the code to, or cost big bucks, and you will take a peek at CRACK-Overflow.. Meant STACK-Overflow... Really the best thing out there so far? Plans? Plans?
:)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.