Author: Ho Yin Cheng
Created: March 30, 2018
It’s been just a bit over a year since I started answering questions on Stack Overflow. I stuck with answering
[react-native] questions almost exclusively because I wanted to hone my expertise in that niche. It worked, but it also opened my eyes to some larger problems with both the Stack Overflow and React Native communities.
Although I joined over 8 years ago, this was the first time I actively participated in the Stack Overflow community. Over that time, I accumulated almost 2000 points entirely through answering
[react-native] questions. My best and most memorable one being this one about the difference between
screen in the
I tried my best to put thought into my answers, help users learn to debug through comments, and generally try to be as nice as possible. By doing so, I like to think that I was able to help the community be better and improve the overall quality of users on the site. Along the way, I too became better. I learned how to ask the right guiding questions in comments and how to better explain my answers.
I also learned a lot about the core internals of React Native as I quickly discovered that the official documentation is actually quite poor when it comes to:
That’s not to say that the docs are bad. They are far better than a lot of other projects, and they greatly improved after the big revamp over the summer. However, it still pales in comparison to the official React documentation as you can see from a quick glance at the open issues on their offical documentation tracker.
So I did my best to help, but the influx of low quality questions was simply overwhelming.
There are a lot of low quality questions on Stack Overflow. On the
[react-native] tag, I’ve noticed that on any given day, 15-20 out of the top 50 newest questions will be “low quality”. What do I mean by “low quality”?
<insert picture of error>.
That’s 30-40% of questions every day that are just bad questions that do not belong on Stack Overflow. Not included in this list are two borderline types of questions that kept nagging at me:
Askers can solve this on their own with just a bit of legwork. Combined with the low quality question list, this would bump that percent up to 35-45%. Almost half of what I saw on a daily basis. These were the questions that flooded the tag and made me want to stop helping, yet why did my gut tell me to separate them?
I couldn’t quite put my finger on it until I read this post by Jon Skeet: Stack Overflow Culture.
Jon Skeet, yes that Jon Skeet, made a very poignant distinction about the the difference in goals between the askers and answerers. That helped me to finally figure out that why.
All the low quality questions are from askers who don’t know how to debug.
Jon Skeet tries to help these users through his sub-goal of teaching them diagnostics. However, one has to wonder if:
There was a recent discussion on Stack Overflow Meta that went over whether or not basic debugging was a required skill. My reading of the general consensus was that Stack Overflow isn’t a place for such users. Anyone who cannot debug or do basic diagnostics before posting doesn’t appear welcome. So the answer to #2 is probably a no.
However, there have been efforts to try to implement mentoring to help do exactly what Jon Skeet is doing. There has been some success but clearly not on a large enough scale for it to become a full fledged feature. I personally have had very mixed results as often askers are just looking for quick answers. So #1 is… a maybe?
This all leaves me wondering what the true purpose of Stack Overflow is now. Is it really a repository of high quality questions and answers? It’s starting to feel less and less like that and more like a “Google and solve this for me” service.
Stack Overflow: The Premier “Google and solve this for me” Service
That’s hyperbole. It certainly doesn’t reflect the state of the entire site as I only participate in the
[react-native] niche. However, it certainly feels like the niche I’m part of has turned into that. Why?
Compounding the issue of “askers” looking for quick answers is the trend for larger open source projects to tell users to submit all questions to Stack Overflow instead of on the issue tracker. So projects with significant churn and poor documentation end up flooding Stack Overflow with borderline questions and low quality questions. React Native and the community of projects surrounding it are especially egregious of this. Questions, even those that are about the lack of documentation, are directed to Stack Overflow. This has become the standard way of keeping issue trackers lean and ignore the need to work on documentation.
But outsourcing your forums or support to Stack Overflow alone is abusive and definitely frowned upon.
Even though the React Native docs encourage users to answer questions on Stack Overflow to learn, it’s a bit of a catch-22 when the documentation is so poor that the only users who can solve questions are those who are so skilled that they can read the source code to figure things out. Those are the exact users that don’t need to learn or skill up in React Native. There has been nothing organic about the way that React Native and other communities shifted questions to Stack Overflow.
Combined with Stack Overflow itself doing nothing to curb this behavior, and it’s starting to become the norm. If this spreads to other communities/tags, it will make the “improve the diagnostic skill” approach to “fixing” Stack Overflow impossible.
How do we fix this?
Honestly, I do not know. I’ve gotten a lot out of participating on Stack Overflow. It’s made me a better programmer, faster debugger, and a clearer writer. However, I’ve reached the point where I find it very tedious explaining these same concepts over and over:
,or misplaced a
state; don’t mutate
expowhen you need a native module
If you take the time to engage the asker and get them to post code (remember, very few have a MCVE), this will solve almost 50% of the questions in the new queue for
[react-native]. Most will be downvoted and closed, but you might be able to help someone before it happens. My time is precious though, and I cannot spend it coaxing information out of the asker to allow me to help them. That’s just not a good use of anyone’s time.
Instead, I’ve shifted my focus away from Stack Overflow. Perhaps this will become the eventual purpose of Stack Overflow: a training ground for users to gain expertise in a certain niche.
Copyright © 2011-2020 Ho Yin Cheng