I recently made a post on Twitter regarding how I am finding myself using StackOverflow a lot less, with things like GitHub issues and good documentation replacing it.
With this overwhelming response, I thought I would look into why so many people have a similar point of view.
So what did I learn?
- Getting better as a developer means you stop using StackOverflow
- New technologies are not covered as much on StackOverflow
- Lots of libraries exist on GitHub now with direct answers from the developers
- Better answers are provided on other forums like GitHub issues and Reddit
- People have more confidence an answer will be provided on GitHub
- Good documentation means less need for StackOverflow
- The community is no longer that positive on StackOverflow
- A lot of questions get closed without an answer on StackOverflow
- CEO of StackOverflow promised an overhaul of the website but it never happened.
- StackOverflow answer date isn't very easily seen. It could be very old or new
- Not many people vote on StackOverflow anymore, making it less useful.
Here are some tweets responses I found that related to these topics.
Top comments (24)
I don't think this is true. StackOverflow is still a valuable source of information.
I tend to skim answers to see if I can find what I'm looking for. I rarely even read the question in full.
I saw that it depends on which language or framework you use. There is more information on Android and say PHP on StackOverflow, while newer stuff like React Native isn't represented as much on there.
That's actually a good point! I usually do find myself referencing the official docs for React.
Yes, I strongly disagree with this first conclusion.
I still find useful answers on Stack Overflow, but my experience of posting my own questions there goes something like:
That's really unfortunate, I have heard this echoed a lot on twitter too!
I still find most of my answers on StackOverflow but I just go where Google leads me, so sometimes it's SO, sometimes GitHub or the Microsoft forums (for .NET stuff). I've found that GitHub questions are often closed without an answer (or a good answer...) Varies a lot.
Gotta be very careful with dates on StackOverflow. I was looking for help on EF Core and found solutions that looked kind of awkward (but worked) and then I found another question that pointed at a better solution based on something new introduced in EF Core 3.0. Same goes for JavaScript. You may find an answer that made sense in 2009 but there are better solutions now because JavaScript has changed quite a bit in the past few years. Basically, don't jump on the first answer you find. But you guys all know that. :)
Yeah, the date was a common thing that came up on twitter too. Having a good version and dates means people can get better solutions.
I think it's a side effect of the toxic community that SO's staff have consistently refused to address. The site is not welcoming to beginners, the moderators are way too serious and their actions sometimes border on censorship, and for every great question there are ten terrible ones. I spend my time here now, and sometimes on Reddit.
Hi Adrian 👋🏻
My name is Jason Punyon and I'm a Principal Developer at Stack Overflow. I've been here for about 10 years. I work on our Data Science Team. I wanted to thank you for your video. I appreciate it when any of our users (even if they're using us less now) take the time to tell us how they feel, especially in a public artifact like this. But...(I'm sure you saw that coming 😁) I'm going to take some issue with a few of the points you bring up, and try and bring some data to bear. I'm not here to argue your personal experience. Your experience is valid. You say Stack Overflow is less useful to you, and I take your word for it.
People with more experience find Stack Overflow less useful
So there are tons of questions that people need the answers to when they're new at something. But that doesn't mean folks who've been around the block don't find us useful.
On the 2019 Stack Overflow Developer Survey about 40% of respondents said they've been coding professionally for less than 5 years. Which means 60% have more than 5 years experience. The definition of Junior/Intermediate/Senior is complicated and comes with an element of caprice. In a lot of cases it can have nothing to do with how many years you've been doing the job. We definitely skew less tenured (some of that is how the demographics of software developers are changing), but I don't think it follows that we aren't useful to the experienced dev.
New Technologies: React Native
You bring up React Native as an example of a technology that's underrepresented on Stack Overflow. There have been 73,435 questions asked on Stack Overflow tagged react-native. It's the 88th most used tag ever. 31,141 (42.4%) questions have an answer. 26,432 questions (35.9%) of those questions have an answer that was accepted by the asker. 1.2% of them have been closed, and 0.7% have been closed as duplicates. This is a pretty well behaved tag, the answer rate is a little on the low side as you can see from this graph of the top 100 tags.
But don't let the low rate relative to other tags fool you. Stack Overflow has more accepted answers (26,432) in the react-native tag than there are issues in the react-native repo (19,259). I did not dig into the discord, I'm sure there's questions getting answered there, but a chat log doesn't really lend itself to analysis.
I'll give you gatsby and next.js, those are pretty small tags on Stack Overflow. There's still thousands of usages, but they're an order-and-a-half of magnitude smaller than react-native.
Confidence that developers are there to answer your questions on Github Issues
I went to github to see what the issues looked like on a few of the projects you mentioned. I happened on this issue on react native where a developer does reply, then closes the issue pointing the user to Stack Overflow or Discord. That appears to be how they handle questions on that repo.
Gatsby does appear to have an extremely attentive set of developers in the issues and they answer a lot of questions, and they also point people to Stack Overflow via their communities page (which they link in every well answered question they close).
Old Stuff
This is a really great criticism and it might not surprise you that we've been thinking about it for a long time and haven't come up with a great answer. Answers age, libraries change, versions get bumped...and we don't have a great way of dealing with it.
Negative Community
You bring up negative community and rightfully so. We have had problems for years ensuring our community is safe and effective for everyone who codes. Jay (not our CEO) wrote Stack Overflow Isn't Very Welcoming. It's Time for That to Change in April 2018. In the intervening two years my team worked to assess the scale of the problem and figure out what we could do about it from the algorithmic perspective.
We went and looked at comments ourselves finding that a much too large percentage of them were unfriendly. We then invited the community to do the same and they found the same thing. We enacted our code of conduct in mid 2018 and improved our flagging system. Ultimately we came to the conclusion that Stack Overflow is underflagged. People are too busy looking for their answers or trying to help other people to do a lot of flagging. We turned to machine learning and built The Unfriendly Robot to help identify unwelcoming and unfriendly comments and bring them to the attention to our moderators and that project appears to be having some success. Time will tell.
We're working on it. Jay's post wasn't just talk.
🙏🏻 Thanks again! 🙏🏻 Really appreciate the time you took here.
Jason thank you kindly for the reply which you took the time to not only address the points I raised but also show examples of it.
It's great to see people behind the site, and sometimes we don't see the other side of the fence with people doing their best.
It's the fact that more and more projects have their documentation and issues in a place you're already familiar with.
It's not that SO is less useful, it's that you're using more projects which have their base on GitHub. Any source repository that got popular would see this effect. Before this, people would have to search for the package they were having trouble with and then look on its website to see what VCS or issue tracker it might use, and in many cases, learn how to use it. Now lots and lots of people use git, and - for better or worse - lots of these projects have their home on GitHub.
People have the same problems they did before. It's not that you're "getting better as a developer". I mean, that might be true but it has nothing to do with the migration to GitHub.
Most developers will have a GitHub account and be familiar with the basics of how to search for an issue.
Problems which are purely programming related or which might involve a different package than the one you thought you needed - these are questions for SO. Asking how to do something that's slightly off-topic on a project on GitHub will usually get you shut down with a "not our problem" response.
I'd hate to imagine a web without both those resources. Stack Overflow is based on the idea of finding wisdom in crowds, and GitHub (or Gitlab, etc.) is based on the idea of going directly to the source for answers. I like a both/and approach to figuring things out, and getting by with a little help from my friends.
My problem with StackOverflow is that I've never ended up with a question to ask, which hasn't already been asked... So I can't contribute! I've also found the editor to create content harder to use than expected and a bit of a barrier to quickly getting content added.
Yeah in the last 5 years I’ve never actually submitted a question.
StackOverflow isn't structured to give design advice. Those questions get closed by a rather rigid moderator community. (Disclaimer, I might be one of those folks). S.O. is better suited for specific questions about programming languages and framework behaviors where there's a single answer. Basically, a half-duplex stop and wait protocol. You ask. You wait for answers. End of discussion.
And I've always felt like that cultivating a better discussion community for debate and design has been a missed opportunity for Stack Overflow. Unfortunately, they've never attempted to try to build a feature that augments the one time reply/response protocol of asking questions.
More disappointing, is that S.O. has even failed at building a community around discussions of improving their own site. If you think S.O. is unfriendly, try making these types of suggestions on meta.stackoverflow.com. That's where good suggestions go to get voted down and pooped on by people who don't even work for StackExchange.
With that in mind, StackOverflow can be a valuable resource for all experience levels of developer, provided your topic is properly represented with those that have the experience to give sufficient answers. I don't think it is correct to say getting off SO will make you a better developer. Rather, a more experienced developer will leverage multiple support sites and support communities for the tools, frameworks, and languages he uses.
And one final point about StackOverflow. Beginner or expert - if you just browse the daily questions on StackOverflow for any particular topic, you're bound to learn something or see trends in programming that you might want to read up on later.
But I do agree - newer frameworks aren't as well represented on S.O. for many of the reasons you give in your video. Often just contacting the author directly or posting on the issues page for their Github repo generates a more open response.
I think is because StackOverflow has not been able to keep up with new developers.
Most of the StackOverflow rules are to strict for new developers, by example, you can't ask "how to do something". It has to be 1 question, include your attempt, the problem and what you want.
For one hand, new developer should learn to ask questions properly.
For other, if new developer dont develop thar skill on their own, there should be away to help them.
StackOverflow add a wizard for your first question, is failling for some reason, so is either lack of asking questions skills or bad product it doesnt matter, something has to be done.
I try to answer questions there but in a good week end up answering 1 or 2, have yo vote to close all the others, is sad.