As a programmer, I've always been a big fan of StackOverflow. I asked my first question there and also wrote my first answer in September 2008, which was the month the site launched, so I was pretty much there from the beginning. The site was a huge boon to programmers when it first came out, because the internet as a venue for asking questions and answers back then was a horrible fragmented landscape of small forums and mailing lists and sites like Experts Exchange, all of which were terribly designed. (StackOverflow founder Joel Spolsky talks about this a bit in a recent retrospective post.)
StackOverflow changed all that, providing a one-stop Q&A site where programmers were incentivized to contribute through gamification and achievements. It became my first port of call for asking technical questions. (My question history says I have asked 98 questions through the years -- going through them was a bit fun, it was kind of a fun reminder of stuff I used to work on through the years.) For the first few years, I was even reasonably active in answering questions -- 44 of the 52 questions in my answer history were from 2008-2011. I even got a few answers accepted! My usage tapered off after that, mostly restricted to asking new questions whenever I was studying some new technology. But still even now I'm told that I'm within the top 13% of the reputation score on the site. I'm far from being Jon Skeet or anything, but safe to say I'm an entrenched user.
So you can imagine that it piqued my interest when I came upon April Wensel's Twitter thread on the toxicity of StackOverlow and her subsequent blog post about it. At first I was skeptical, it felt like an overreaction. I mean sure, there's the occasional rude jerk who responds unpleasantly but that's not unheard of on either the internet or IRL. And as far as I recall, I had never personally encountered any toxicity during the time I was active there and I never felt unwelcome on the site. But as I read more details and examples and reddit threads and so on, I got a better sense of both StackOverflow's reputation and its problems. Issues that were difficult for me to see as someone who not only has a long history with the site but also as someone with a lot of experience in software development.
For one thing, it's easy to recognize that StackOverflow has a beginner problem. Beginners as in beginner devs, especially ones who haven't yet mastered the crucial skill of how to ask questions. Programmers have a reputation for wanting to get to the point Given the site's reputation, it can be intimidating for newbies to participate. The "Ask Question" screen isn't exactly super welcoming. More senior developers might find it easier to figure out what the rules and culture of the site are and behave accordingly, but for newbies or people who aren't super confident I can understand why it might be a harrowing experience.
It doesn't help that the community responds the way it does to poor questions: downvotes, rude comments, getting your question closed as a duplicate. And probably worst of all is the negative karma score. It can be pretty discouraging for people who aren't used to negative feedback or who have anxiety or lack self-confidence.
Possibly related: everyone I know who does have a StackOverflow account also happens to be a gamer person who at one point or another also indulged in online multiplayer games. I wonder if this points to a general correlation between gamers and people who don't mind the culture of StackOverflow. It kind of makes sense because gamers are used to responding to negative feedback and figuring out the rules of a system. And people who play online multiplayer games are likely used to even more toxicity than a simple internet forum.
During the week I had this blog post in my drafts folder, StackOverflow released their own take on the matter, outlining some initial steps to improve in this regard. The acknowledgement of the problem and the initial steps are great signs. Hopefully they can also look at improving downvotes (perhaps by requiring the downvoter to provide a reason for the downvote) and duplicate handling (perhaps by giving the original poster a time period to respond to suggested duplicates and indicate if and why he doesn't consider them duplicates.)
I don't 100% agree with everything April Wensel said. For one thing, I still understand and appreciate the purpose of StackOverflow as being a repository of knowledge that is supposed to benefit the community at large and not just the specific asker. And I don't mind that some prefer to trim away pleasantries from questions. StackOverflow optimizes for the future reader, not for the asker. This bears out in how useful StackOverflow is in Google search results. In this regard, I believe StackOverflow has mostly achieved its goals.
But in many ways mentality this makes it inappropriate for certain types of questions. It's not so good for newer devs that need to be walked through their code or don't have enough experience to even know how to ask the right questions. And as a developer starts working on more advanced topics and more specialized libraries, the usefulness of general-purpose sites like StackOverflow start to wane. Over the past few years I've found myself relying more on narrower forums like the Github issues list for a library I'm trying to use, or the vendor's official support channels.
Perhaps StackOverflow has held a monopoly on the developer Q&A space for too long, and while they're figuring out these things, there might be an opportunity for a new breed of Q&A sites with different kinds of focus to emerge.