Stack Overflow is a really great source for programming knowledge and troubleshooting best practices for a variety of software issues. It used to be a great tool for generating it, too. I’ve been using it since the Fall of ’08, and started contributing a few months after. I got out of practice in participating with the website directly, and mostly end up on it at this point based on Google searches. I wouldn’t be surprised if many of its one-time daily users now interact with the site this way. I think the amount of growth it can achieve has hit a plateau, and its user interaction may begin to take a hit as a result.
I’ll have to preface what I’m about to say with, of course, the disclaimer that this is pure and unabashed opinion, based entirely on my anecdotal experience as a user of the site. That being said, let me outline the major reasons why I think Stack Overflow has moved on from an early phase. At one point, it was rapidly growing, and a truly exciting community to participate in. Now it’s just a useful resource where most of the important problems and questions have already been addressed.
Scarcity of Important Questions
When Stack Overflow began, there was a lot of room for participation from its users. There was a low chance of creating a duplicate question, and a low chance of a correct or accepted answer already being provided. Part of this had to do with a growing user base, and part of this had to do with where Stack Overflow was as an application — it was incipient, and still growing, externally bootstrapping knowledge from its users. Users had an incentive to be the first to answer, and give a thoughtful answer at that — growing your reputation amongst a community of peers. Reputation is tallied by points generated by up-voting questions or answers, or having your answer accepted by the question-asker.
There has been plenty of time since SO’s beginning, and most of these questions have been either answered authoritatively or debated to the point of stalemate. If you are looking for appropriate design patterns for web development, or the best way to parse a URL in X language, or a regular expression that solves a popular problem, the answer is already there. It’s not worth fielding a question, and if you do, your submission will often be closed as a duplicate by an administrator, with a link to a very well-addressed question worded nearly the same.
A Community of Specialists
As more developers find themselves unable to contribute to already solved or discussed problems, they must rely on their more specific skills for any opportunity to answer questions. In certain communities, (*ahem* .NET *ahem*) this is totally fine, and there are enough entrenched specialists to create a sort of ‘feedback loop’ — any esoteric questions they may have, someone else may have the answer for, and vice versa.
If these niche communities don’t have a critical mass of users asking interesting or useful questions, you get the opposite effect: a sort of ghost town of sparse activity. In these neglected pockets, questions usually can be classified into a few fairly useless categories. You have the “what is this bug idiosyncratic to my machine setup” questions, which don’t really do much for the actual software development side. You have the person asking obvious questions that could be answered by a quick check of an online manual. You also have the person asking you to basically do a specific implementation of something for them. These are time-intensive questions, but they are often the only ones that won’t get poached by someone else while you’re writing your answer, and are the best chance to actually improve your reputation. Or how about the “how do I implement this one jQuery plug-in that maybe 30 developers have ever used on my site” people? And then you have all the people getting their questions closed because they were already addressed. These are often in combination with each other, with optionally indecipherable Babelfish English. The worst, though, is probably the users who have a question about a bug that’s really only a code smell. They’re not willing to accept that they’re approaching the problem the wrong way, and refuse to accept a thoughtful answer and helpful recommendation if it involves too much work or isn’t what they want to hear. This isn’t usually a problem in the higher-traffic communities, because the amount of users reading questions and voting on answers is high enough that the opinion of the question-asker doesn’t really come into play. Less trafficked disciplines become too dependent on answer acceptance.
So that’s too bad. Every month or so I’ll look up questions about natural language processing, the Zend Framework, or other things I’m interested in, only to find myself in a desert of less than useful questions — not useful for me to answer, not useful for me to read. And all the stuff on the front page, of course, is for framework- or implementation-specific Java and .NET, and getting a lot of action. Of course this is to be expected, right? But it didn’t always used to be that way — I swear. So how did it get that way?
The Fatigue
Stack Overflow uses ‘reputation’ points and an achievement system to promote high activity among its users. I think that as the opportunity to increase your reputation and your number of achievements dwindled, so did a lot of user activity. There’s a plateau you hit there where you either have to devote way too much time to help other people do their work, or you just fall out of it. When you do, you don’t have a lot of incentive to get back into the game.
Early in Stack Overflow’s history, a need for knowledge engineering and a community with growing rules skewed the amount of reputation points towards early adopters. Games of code golf, “what’s your favorite programming comic strip” threads, and “What language should I start learning now” threads made it way too easy to attain points without actually demonstrating real knowledge or expertise. Obviously, there are users with tens of thousands or hundreds of thousands of reputation points who actually earned most of them by demonstrating expertise. But how do I tell them apart from the people who had the funniest joke about Ruby programmers, posted a few Dilbert comic strips, and then went after a series of low-hanging fruit with well-formatted responses?
So I think it’s likely that the amount of repeat users on Stack Overflow will start dwindling soon, if it hasn’t already. I don’t have any numbers, but as a former heavy user, it’s just a hunch I have. It’s a well-developed resource which in some way baited its users to expend their time much in the same way popular video games do — with scores and achievements that don’t really amount to very much. It’s all fun to get them, until the amount of effort you have to expend doesn’t merit the sense of reward.
How could SO combat this? There are maybe a few things. They could revise their tagging system to associate reputation with tags, allowing people to be “JavaScript Expert” or “Ruby Guru” based on the amount of points they amassed on questions with those tags. That might help to revive participation in certain sub-fields of software development. They could retroactively subtract points from questions deemed to have no educational value. They could create alerts that would let people interested in certain aspects of programming know that there is a brand new question in their field that pertains to their know-how, exhorting users t
o lend their expertise, instead of hoping they’re browsing unanswered questions of a certain tag at the right time.
But ultimately, I think Stack Overflow has sealed its fate. It has successfully replaced Experts Exchange, and it’s got great search engine rankings. People aren’t going to go to Stack Overflow anymore; they’re just going to go to Google. I think that’s a community killer in and of itself that may be worth putting some thought into.
EDIT: One commenter points out that Stack Overflow already does have ‘tag’ badges for specific areas of expertise. It’s weird that I’ve never noticed these before, and I’m wondering when they were implemented, and how many of its casual users are aware that they exist. Of course, that doesn’t alleviate the fact that questions are rarely tagged completely. Does a question that involves how to implement something in Spring count as a Java question? Should a person be considered a Java expert if they’ve got Spring questions in the bag, but maybe not so much with other packages? And what about vice versa, where a question is really a Java question, but is only tagged as having to do with Spring? Just some observations I thought I’d throw out.
"they're just going to go to Google."
Joel wrote that he considered Google to be the main UI to stack overflow from the day one.
"They could revise their tagging system to associate reputation with tags"
They already do. However, to get such a badge, you need 400 upvotes for answers in any given tag, which means that without a great deal of dedication to one subject, you won't get one any time soon.
I think that there is already a dwindling happening. There seems to be a surplus of questions asked by lazy people, and a lack of interesting questions.
They need a way for other users to tag questions and answers; and other users to check on the tags tagged by other users. Vote on tags or tag tags.
Nice article. Not to mention the fact that most of the times an answer posted by someone with a higher score gets picked by the OP even though an answer posted by a newbie might be equally good.
Is there anywhere better to get answers than S/O? Not that I know of… Questioners will often be able to answer other questions when they visit to post theirs, therefore it will do just fine for the foreseeable future.
> People aren't going to go to Stack Overflow anymore; they're just going to go to Google.
That was always the goal — from day one.
As I said in podcast #72
http://blog.stackoverflow.com/2009/10/podcast-72/
"The goal isn’t to be on Stack Overflow, but to generally do things that make you a better programmer. While that certainly includes the fractional time slices of questions and answers that programmers so generously contribute, it also means doing your job, and writing code! To the extent that Stack Overflow itself becomes the goal, we are failing you."
"Of course, that doesn't alleviate the fact that questions are rarely tagged completely."
Any user with sufficient reputation (a regular, contributing user) can retag questions that are incompletely tagged. And should.
StackOverflow remains useful as a way to hone one's own expertise. There's nothing like a cascade of goofy, inane questions about how to do things that nobody should do in the first place, or why weird behavior is exhibited by horribly broken code, to get you to dig deep into a programming environment you think you've already mastered.
Bottom line is – there is just way too much noise to sift through now on SO. Even with the tags.
I think SO is great to be honest, it's the only place on the internet that I know of that you can get answers from people who understand what you're talking about.
Places like ExpertsExchange, Yahoo! Answers and good old newsgroups just don't cut it these days and this is an area where SO thrives as it capitlises on the advantages of all those platforms – but without all the guff to go with it.
I don't see the SO platform as some sort of achievement/level up system anymore, I just see it as a nice place to go to either
a) Read up on interesting topics
b) Help someone with a problem
It's a nice safe haven for programmers and that can't be a bad thing!
Pingback: The problem with reputation points, and other forms of game mechanics | Smash Company
When I started using SO, it was great! I often asked questions and answered them.
However, lately I have noticed that within MOMENTS of posting a question I get a flurry of “You don’t want to do it that way” comments. Or I get immediately tagged with a “This is a duplicate question” tag, even though I searched and found nothing similar enough to truly be considered a duplicate. Or, I get a lot of comments on why this is a bad question…. Holy #$%@! I just want some help, I do not want a critique on my very existence.
Honestly, all of these bad-taggers are making it more about the procedural rules and accepted behaviors then about the QUESTIONS…. this is why I find myself going back less and less. If you don’t do things they way THEY would, then be prepared for an onslaught of crap.
I love the idea of SO, but something needs to be done about all of the white-noise generating users who have nothing better to do than to nit pic over useless minutiae.
If you don’t like a question, don’t vote it down! Just don’t answer it or comment and let it die in obscurity….
Sheesh!