That's really it. Everything it does is geared toward that, and it does it quite well.
I have lots of SO points. A lot of them have come from answering common, basic questions. If you think points exist to prove merit, that's bad. But if you think points exist to show "this person makes the kind of content that brings programmers to our site and makes them happy", it's good. The latter is their intent.
Does having easy answers available on SO make us dumber? I doubt it. People have made the same argument about search engines, and you probably could have said the same about encyclopedias.
Yes, and that is an incredibly valuable service.
I haven't participated in StackOverflow actively, neither asking nor answering questions, for various reasons, some perhaps related to some of the OP's complaints, but it has saved me many hours of searching through documentation and mailing lists just by being there.
I suspect the contribution to global programmer productivity is enormous. It's true that it may tend to reduce the amount of very detailed knowledge about very narrow topics that people need to memorize but I think that externalizing this type of knowledge is the way to go. As long as your mental models about the basic workings of the software you're using are essentially correct I don't think there's much harm in depending on external resources for specific details.
if SO manages to loose this community then signal to noise ratio will further increase, the site will go down the drain and new competitors will appear.
Are people really that motivated by points and badges? I think these are similar to toy money/monopoly money. if a person does not like the process of investigating a problem then this will not be a sufficient motive for participation; if its not fun then nothing will help here. Career incentive? I doubt that, for a real job they will look at other things.
Still SO has a dilemma, like wikipedia it is a huge amount of text and it needs some meta moderation, and then some meta meta moderation too; so monopoly money is probably supposed to move a person up along this hierarchy. The problem is that a hierarchy of moderators will eventually piss off at least some competent contributors, if not all of them; this problem is common to most sites: slashdot, wikipedia, SO, HN - over time they all run into this problem.
Its like in real politics; nation states need bureaucrats, but these can also turn into a mortal danger to the state
Yes, in that the worlds largest helper only supports simple boring common questions, as per the article. If you're trying to do stats in scala, and the only help you can get is "hello world" in java, that's not good for Scala, statistics, or much of anything else, making the world overall dumber.
By analogy, lets say reality TV shows completely push video documentaries off the air. This is not so far fetched. The net result is likely to be dumber.
Are people posting Java "hello world" answers on your Scala questions? I doubt it. Are you manually slogging through dozens of Java questions looking for Scala ones? You should be searching.
I see no reason why you should ever have to look at Q&As irrelevant to you.
Worst case: you have questions nobody can answer. Which means one of two things:
1. Your question is unclear or too specific to your situation
2. You're working in a niche area.
If #2, you're no worse off than if SO didn't exist. So what's the problem?
"The proposition would seem to require the assumption that all programming can be reduced to cookbook recipes."
Its one of many effective ways to start learning a language, although not the only way. To distort or screw something up, you don't necessarily have to mess up 100% of the population, just a good chunk of them. You could try to argue that few to no experts ever took their first steps as cookbook script kiddies, but I don't think that would be successful.
And you seem to mistake knowing languages for understanding programming. The essence of the skill is the ability to formally specify an algorithm which solves a given problem; the rest, more or less, is libraries and syntax.
Now people are starting to hate SO, for very different reasons. At last! They've become the new expertsexchange in every way.
 https://en.wikipedia.org/wiki/Experts-Exchange 4th paragraph.
I go there now and then to answer questions. My latest answer, about a way to get gnuplot to do a certain trick, took me a couple of hours to get right and got me 25 whole points for being the accepted answer. I worked on this because it seemed to be an interesting challenge, I was interested in figuring out how to do it, and nobody else was answering. I sharpened my gnuplot skills in figuring it out and helped someone. To do this for "points" is asinine (unless a big score gets you something else, like a consulting contract - in which case what's the complaint?).
Coming back to the SO topic, I got my initial ~600 pts within just a few days on "who's first", but it's not fun to do it long term. Then got ~400 pts for Java trivia , now I usually just write my 2 cents when googling for something and finding the best answer not satisfactory.
Sometimes I also self-answer myself for certain things I think could be useful for others, or me-in-the-future e.g. 
 "What does the “+=” operator do in Java?" - it's more than x = x + y;
To use the site for the sole purpose of gaining points seems asinine to me. What do you get from that behavior? Only what the gamification gives you. I didn't understand that anyone can be a mod though so it doesn't surprise me that people would subvert the system to be the ones to "CLOSED NOT RELEVANT" other people. There seems to have been a pedantic movement and it can probably be traced back to people like this just boosting points to be the head bitch in charge. It explains a ton to me now...
"I saw a simple Java question, hit Google, read briefly, then
synthesized an original answer."
1. To ask interesting questions that I think will get a better answer there than anywhere else (eg [0,1,2]).
2. To help educate other programmers about languages that I like very much, and would like to see in wider use. I endeavour not to just give a "how to do X" answer, but instead explain what the different approaches are, and why some approaches are better than others (eg [3,4,5])
3. To stay in touch and build a reputation among the wider community of Haskell programmers - not by amassing internet points, but by asking interesting questions and giving interesting, thoughtful answers.
If you just game Stack Overflow for imaginary internet points, it's no wonder you don't find it very fulfilling.
A site could be designed that isn't based on an anti-social, exclusionary, classist, authoritarian philosophy. The tragedy is it wouldn't look too much different than SO. So close, and yet so far...
I think they caught this disease from Wikipedia, where deletionist authoritarian editors kill articles on real people because they're "not notable enough" while allowing thousands of words to be written about minor characters in TV series.
A question should be closed because it's a dup, or because it's not clear, or there's not enough information and the author didn't bother responding to the comments that mention that etc.
If you don't think so - you can write a comment and vote to "repoen".
If you feel better by calling us "jerks" - good for you...
Happy new year!
150 question upvotes.
Popularity does not mean a question is within the scope of the site guidelines.
True, but it might indicate adequate reason for modifying the guidelines.
I loved SO in the beginning. Now it's a cesspool.
He's not looking for votes, he's saying it's silly how trivial it is to get them, and also how many points he gets off of a simple LMGTFY answer (your quote), vs how few he gets off a well thought out and explained one (the kernel answer, I believe).
I don't contribute much to SO, though I do a fair bit to some other SE sites (SF, SU, DBA) and it is the same on those but there is a fairly logical explanation most of the time.
A question that requires a more detailed answer is often more specific than one that doesn't, and that more general question is going to get a wider audience (both at the time and afterwards with people finding it in searches) so will attract more votes both for itself and the responses.
The points awarded to an answer are only really relevant within the context of question it is in response to (i.e. compared to the points awarded to other responses to that question). So if you care about your total score just answer simple general questions (this is perfectly acceptable behaviour, any useful answer is helpful to the site as a whole), if on the other hand you want a little mental stimulation answer some of the more involved questions instead.
What you reward, you get more of. Therefore the site will move in the direction of point collecting game players.
Doesn't particularly matter what they "should" do, what the site is designed to do, intentionally or otherwise, rightly or wrongly, is what the site will do.
Telling everyone including the people in charge not to do what they are designed to enjoy doing is basically abstinence based sex ed. "Here's something you haven't seen, it's a lot of fun, now don't do it" Good luck with that.
Lets say HN karma points were rewarded on the basis of using the F word in posts. I don't think advising people the moral high ground would be to abstain would clean the place up, if the whole purpose of the design is to encourage it. This might actually be a funny April fools joke to think about...
Do I think that's necessarily the right way to get people to come to your site and answer programming questions? Maybe not (no, I don't really), but it certainly does keep people coming back to the site. That and the fact that it's probably the biggest answer repository on the net.
Oh, and here's an upvote for you to show no hard feelings. I believe your general statement is correct, I'm just not sure that's what the author is going for.
Nope. His argument is that the site encourages its users to behave that way and that this results in several very real, relevant, negative impacts on the usefulness of the site and the quality of the answers (and questions).
Your suggestions are not a sufficient solution for the problems he describes.
Would StackOverflow be popular if it didn't have leader boards and reputation points and arrays of expertise-claiming badges? Would people spend their time working on other people's problems if it didn't earn them something they hoped to spin into professional credibility?
I suspect no.
And of course StackOverflow uses gamification to encourage people to do work for other people, for free. It is no big secret that many users are essentially free labor that do the dirty work of digging through a lot of terrible links on Google to try to find something that answers the question. For those who take advantage of this it is a wonderful resource.
There are some supremely excellent questions that through the crowd and wiki-like editing the answer ends up being exemplary. But in the general case it does seem that it allows people to skip the boring work and get groups of people fighting for badges and imaginary credibility to do it for you.
He wants it to be an educational site instead of the much more pragmatic site that it is clearly designed to be. He doesn't have fun working in 2 languages he hates. He thinks that obscure answers that few people care about should count more than answers seen and used by many.
"Hey Doc, it hurts when I do this." "Stop doing that." -- He managed to play that out over a couple pages of bloated text and blames the site and not himself.
I disagree. The reason I answer questions on SO is because of the incredible help I get from it form my own questions and those already answered. I think a lot of people contribute as a way of giving back and internet points don't encourage them in anyway. Sure there are people who internet points are important to but I would guess (and I admit I have no evidence to back this up) most of the people using SO care very little about points.
If there were no StackOverflow I would use other means more: Usenet/mailing lists, irc.
I don't find it offensive that someone tries to reduce my motivation to accumulating points. It is just another example of "someone wrong on the internet".
(I say this clutching my own HN karma...)
The reply was highly precise and technical, and the reasons given by the mods to reject the edit are spurious, since they just couldn't understand it and its implications.
I reached out to two of them (I couldn't find how to contact the third one), but they didn't even reply to my mails.
Mike could have avoided that by just using the same account to edit his original post. You can always edit your own work without it going through the review process.
Probably too late, but... If he ever decides to come back, he'll be able to edit his own posts without review.
The incompetence of the mods is relevant because it is one of the main criticism of TFA. It's a nice example of the Pete principle.
If a mod doesn't understand an answer he should just pass, not vote according to what's right most of the time. They are incompetent, both regarding LuaJIT and as moderators.
I'd expect mods familiar with Lua to recognize him, and he should have mod powers, to begin with.
Again, if he had just used his original account to edit his answer, he wouldn't have needed any of that.
He's a world class expert in compilers and high performance, low level programming on modern hardware.
This addresses the core point of the article, being that the SO "meritocracy" is badly implemented, and conflates heavy site usage with maturity and technical ability.
Edit: If not a mod status, a VIP status. SO would gain a lot if its staff were to individually recruit people as talented as he is.
If it allows it, and delegates the check to moderators, then these moderators should either reject it if they are sure the change is wrong. In all other cases they should allow it.
It's really that simple.
The heuristic they use is something along the lines of "only accept edits that are grammar fixes, equivalent thereof, or rewordings". Content changes without the authors consent are considered poor form.
That's irrelevant anyway, since that's not what happened here. The author of the post tried to edit his own answer with a second account. He should have just used his original account and this would have never happened.
Which is less wrong than an edit but it`s still wrong when the appropriate response is a comment.
A community can be judged by it`s responses to newbies. By this measure it fails miserably since the most common feedback many newbies get from SO are bare downvotes and rejections. What should happen is a polite response explaining the problem and the what should be done to correct it.
Once you've seen enough of this sort of thing -- and, again, especially on the highly popular sites there is a lot of it -- there's a certain fatigue which sets in; you get jaded, I suppose, and that seems from what I've seen to be the proximate cause for newbie questions getting downvoted to oblivion or flagged for closure without anyone taking a moment to advise the asker on what he should've done differently.
Is this ideal? Of course not; in fact, it's not even close, and I say that as someone who has considerable experience with the phenomenon so described. But Stack Exchange sites are moderated by volunteers, and you can't issue ukazes to volunteers without a significant risk of losing them -- after all, if you make them not want to do what they do, they'll just stop doing it.
In any case, just as a community can be judged by its attitude toward newbies, so can those newbies be judged by their attitude toward the community in which they attempt to participate. As in any other such case, it is entirely reasonable for those who have invested time and effort into Stack Exchange sites to expect that new users will deport themselves with respect for the rules and mores of the community.
With regard to giving the ability to comment to new and unregistered users, there's a problem similar to that of low-quality newbie questions; so to broaden the provision of commenting privilege would produce an instant and enduring deluge of spam. You really can't expect volunteers to handle sewage disposal, especially when the sewage is deep enough to require hip waders. Again, this is not ideal, but it is a consequence of the Stack Exchange model's basic assumptions, and I'd have to say that model has acquitted itself well enough in practice to vindicate the claims made on its behalf.
If he'd raised an issue on meta, I'm sure a real mod would have sorted this out, or he could have just used the same account to make this edit.
You must also know about meta. I looked for ways to contact the mods in the UI and didn't find any. I suppose it's in the FAQ, but I didn't think about it at the time.
I know I have seen nearly 1 in 20 edit suggestions are some random person suggesting an edit to a post that completely changes the meaning.
I appreciate Michael's feedback, and he worries about a lot of the same things I do. Moreover, we are incredibly grateful for all he's done over the years - my honest belief is that his contributions (even when they were just fish) helped a ton of people finish a project that may have been what made them LOVE programming. And those people did take the time to learn the fishing techniques underlying those fish, so they could do it better next time.
Points aren't the point. Let's be honest. We reward people for helping others with points that essentially convey nothing other than the ability to help in new ways (as you unlock new privileges). No one in their right mind is spending time on the site with the empirical goal of getting points.
The real reason people answer questions is that they like helping people. The points are important, but only insofar as they give you actual feedback on how many people appreciate your effort. The points aren't the reward; they're just a way to measure the real reward people care about: knowing how much of a difference you've made.
So when Michael worries about his points going up even after he's stopped posting, that's the system working. It's not about ensuring the right person is "winning" it's about showing how many people got help.
And he's still helping others today. I respect his decision to leave, but truly think he should be proud of what he's done for the programming community to date. In any case, we're grateful.
I want to answer questions from people who are able to Google, and who are able to answer questions.
Another thing: add a custom search option that can find tumbleweed questions. I asked about it here:
But Jeff thought it was already implemented, when it's not. The advanced search finds questions with a minimum number of views, not a maximum number of views.
You could do that as a direct step towards finding the questions you desire, as as a rhetorical move towards getting it implemented in SO.
But isn't that exactly what Michael was doing? He was posting help for two languages he loathed — help he probably wouldn't otherwise give — just because it got him points.
In addition, the Java help he was giving was not even his own knowledge. Just a Google search.
I like that you believe points aren't the point. That's good to hear. However, my experience on SO is as Michael describes.
The most helpful answers I've posted (especially the ones that are obscure workarounds for difficult bugs) have gained very few points. Most of the time I've gotten good answers to very difficult questions is when I either: answer them myself later, or offer a bounty. People strongly react to the points.
That's not to say SO isn't helpful. It helps me five to ten times a day — I find code snippets that achieve the effect I'm looking for. I could spend more time and read the documentation, figure out the right APIs, but that's a waste of time when I develop the same understanding by reading someone else's implementation.
It would be great if the point system scaled by the complexity of the question and answer. Though that seems impossible to determine.
Another poster made a very good point about voting ring vandals and spammers, but I'm concerned about "expiry dates". An increasing number of the top SO results in google are answers that were correct but are now wrong. Things will trundle along for another few years, but at some point the correct results will become un-googlable.
Is SO the best code Q/A resource available? Absolutely yes.
Remember what was used before SO? Pure shit. Open-ended help forums scattered throughout the web that had little/no moderation and no indication of where the solution could be found in the discussion, or if a solution was ever found at all. SO's aligned everyone's incentives to post the solution & the site's formatting makes it trivial and find the best solution provided.
I've personally experienced times where my questions/answers have been affected by wikipedia-esque moderation, but at the end of the day I still click on SO results first in Google & and I still visit from time-to-time to see if I can help anyone out.
Is the Stack Exchange model perfect? No.
Does it reward what the article's author calls "obsessive twerps" more strongly than it does anyone else? Arguably yes.
Can it be substantially improved upon? Almost certainly.
Is it nonetheless an enormous qualitative improvement on its predecessors? Good God, yes!
The article's author brings up the old saw about giving a man a fish versus teaching him to fish, and that's well and good. But sometimes you just need a fish.
- I've gotten a lot of help there
- It's nice to help other people in return
- Any answer I put there will be available via Google in 5 minutes, so I can definitely reference it myself in the future. (I'll even ask and answer questions I just figured out so that I can find them later.)
Such questions and answers represent hours of effort on my part. That's fine -- I needed to spend most of those hours for my work anyways, but crafting a good answer does add a significant amount of time. They usually don't result in many points: they're pretty obscure. But often it's the only place on the interwebs where the question is answered.
But the answer that has earned me the most points is a stupid throwaway CSS answer that's technically wrong: http://stackoverflow.com/questions/1817792/css-previous-sibl...
What does really annoy me are the badges. I've got a bunch of necromancer badges, which I'm proud of. But the value of those badges is really degraded by cheap silver and gold badges, such as yearling.
So what? Apparently his answers were valuable enough and saved the time (and nerves) of many programmers who faced similar obstacles as original posters...
It seems only right to me that a great answer, a canonical answer, like - say - this one: http://stackoverflow.com/a/101561/168719 - can be fuelling its author's reputation long after it was written. Because it holds some universal value, unlike (say) a solution to a short-lived problem with NetBeans 6.1.
"Indeed I went from the top 4% of contributors at my time of departure to the top 3%"
OMG, I didn't realize this issue was so serious.
Now that's just horrible, somebody better stop this madness quick!
(I can't help but read his rant in Sheldon Cooper's voice ;) )
>OMG, I didn't realize this issue was so serious.
It's actually a fairly big jump. If you look at a distribution of Stack Exchange users, it follows a power law distribution, where many users have few points and a handful have a lot. Once you reach the 96th percentile, it takes a fairly large jump in reputation to get to 97.
If I ran Stack Exchange, this might bother me because it suggests that many high-reputation users are no longer contributing. (Otherwise, other contributors would overtake the OP as they gain after-the-fact upvotes plus upvotes from new answers.) An alternate possibility is that the OP wrote answers that are unusually long-lived, garnering enough extra upvotes to make up for his lack of posting.
(All of this is not to pick on you. I just thought this was an interesting statistical point.)
Finally, it looks like percentile is calculated based on users with more than 200 or something similar. Otherwise, the OP would be in the 99.9th percentile based on his rank and the total number of users.
EDIT: Here's a better distribution of users' reputations: http://data.stackexchange.com/stackoverflow/query/90233/repu....
And anyway - now, I understand that this is beside the point you are making now; just returning to the context set by the article - let me stress that I still fail to see how this is a problem.
It would be very simple to "fix" the scoring in this regard, all it takes is to disable voting in questions older than 30 days, for example. But I'm stumped on how SO would benefit from such a move.
Quite the opposite - this would be an obvious incentive for repeating oneself (or others); reposting old explanations to keep on scoring points off the same know-how. Plus time-wasting fights on what is and what is not a duplicate, etc.
The only benefit would be preventing the kind of bullying the OP. It would curtail systematic downvoting of past answers out of spite. But it's an extreme response to what I understand to be a rare problem.
The example may be a bit off, I didn't put much effort into finding one (I just searched for questions tagged with design-patterns, since this is a relatively "timeless" subject, and I picked one with a highly-rated answer), so I surely could've chosen a better one, my point still stands I believe
Sometimes you do get a good answer quickly, saving you hours of frustrating searching.
But most times you will have to spend hours figuring it out yourself or you'll end up giving up. Answering your own question won't get you a lot of points but it will probably get you a few over time. More importantly, because of SO's high google rank, you've made your answer easy to find for the next few people who have the same quesiton.
That's simply not fixable.
That and the "not a good fit" close reason is the primary thing wrong with SE.
I've seen questions where you can literally copy and paste the question into Google, look at the first result to find an authoritative source, and copy sample code to solve the problem. Yet that was apparently too difficult for the person asking on Stack Overflow, and if anybody points out they should be doing this, they get their comment removed.
I've answered a lot of questions where somebody is genuinely stuck on a difficult problem and it's taken serious effort to figure out what's going on. I've also answered questions where the answer is only a quick Google search away. The former get a couple of votes up. The latter get hundreds of votes up.
This is not a healthy addition to the software development community. This is enabling developers with a vitally important gap in their skills to avoid becoming competent.
for me, as a professional programmer, that site is useful because it has direct, simple answers.
but it seems to have been taken over by students who are resentful that there should be simple answers without some evidence of suffering (it really seems to be that).
why should i have to explain "what i have already done" to a bunch of schoolkids when all i want is for someone who has solved this issue before to post the right answer so i can get on with life?
i'm an adult. i can make my own decisions about when i learn and when i want an answer. i don't need someone else's priorities - from a completely different context, apparently motivated by jealousy over grades - shoved down my throat.
but anyway, while that bugged me, it was the dismissive mods that finally drove me away (at 19k points).
(am i the only one that thinks that good questions - interesting ones - are no longer getting quality answers because people that could have answered them have left? and that they're no longer being asked as a consequence? the time when i wrote answers like http://stackoverflow.com/questions/7076349/is-there-a-good-w... has long, long passed)
Many times there are multiple potential causes for an issue. Ruling out what has already been tried is what any competent troubleshooter is going to do.
Showing your work can needlessly complicates the question, especially if it requires a lot of explanation. It's also irritating because someone knows the answer but is withholding it until you do what he wants.
I had that exact experience when I asked this question:
a) I love contributing with the online developer community and sharing back all that I've taken since I started freshman year of college.
b) Writing it out step by step solidifies the knowledge within me.
It's a win-win!
In the SO world, I'm definitely a "listener." I almost always wind up on the site from Google, and it usually does a pretty good job. I don't think I've ever navigated around the site itself, so the "game-ification" or whatever was completely foreign.
I will say that there have been numerous times where there are pretty good subjective or opinion based discussions (which language is better for x?) that get "closed as non constructive." I can understand why they would want to avoid flame wars, but almost always the discussions were, ironically, very constructive, nor could I find the same type of discussion anywhere else.
Disclosure: I am not affiliated with slant.co, but I am a Stack Overflow moderator. I like slant.co a lot.
The question to which the author links (2387218) is a perfect example of a wholly unresearched question, where the only possible valid answers are "RTFM/STFW" or "here's a fish".
This was the kind of thing that would have been deleted under "too localized" as it offers no benefit for future seekers of enlightenment.
I suppose it may be flagged for deletion according to this criterion:
> Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results.
but that doesn't quite seem to fit. The question is not "give me teh codez", but it does show that the asker has not attempted any solutions.
This hits the nail on the head, imo. While the SO system is (presumably) meant to reward "karma" based on the quality of answers, more often than not it seems that quantity is just as important. And it's not hard to see why this is the case -- there's an inherent risk in typing a well thought-out (read: time consuming and potentially long) answer, when a simple one-liner is probably all the questioner is really seeking.
On the other hand, maybe that's what StackOverflow is really for -- getting things done, NOW. Even if that "getting things done" answer is just a band-aid, and the questioner hasn't really learned anything.
In my experience, people who find themselves applying band-aid after band-aid to their code (myself included) rarely connect the dots all the way back and realize that all their subsequent problems were largely due to their initial "fix".
'the SO system rewards karma based on the number of people that find an answer useful'
The population of people needing answers is heavily biased towards newbies. 100% of new programmers need answers to simple questions. (And only a small fraction of them have learned how to use search Google or documentation properly.) 60% of those never move on to more advanced questions . Therefore advanced questions cannot ever target more than 40% of the total user base, where basic syntax-questions target 100%.
It's even worse when you consider that most of the really advanced questions that can generate the most awesome answers are never asked because the advanced users know how to teach themselves and don't need SO.
This is what turned me off from SO. The strategy to garner points (at least in the topics I'm expert in) is to lurk waiting for quickly-answered questions. Pounce on these, by entering a rough, approximate answer, so you can score the credit. Then, if you're feeling charitable, go back and flesh it out properly once you've got the karma in your pocket.
Time and again I've entered a correct and complete answer, to score nothing because somebody beat me (and I'm a very fast typist, btw) with a quick one-liner that provides little value - and in many cases, hasn't even been completely correct. On more than one occasion, after reading the "winning" answer, I've been left frustrated, thinking "come on, that sample you posted won't even run, let alone do what you claim".
I suppose that part of the blame lies with those seeking answers. The user interaction is such that they'll allocate upvotes when they see something that looks promising. Once they've actually tried it, and found that answer wanting, there's little incentive to go take back the undeserved rewards.
If you're playing the game for points, the way to win it is to find questions with lots of Google juice, and then answer them with every bit of correctness and completeness you can possibly muster. This strategy requires patience and discipline, which the "throw off a quick stupid answer as fast as possible" strategy admittedly does not. Over time, though, it's bulletproof, and if you're going to play the game for points in the first place, then I think this is the best way to combine that and actually contributing something worthwhile.
With Stack Overflow it's simply not worth it to answer a difficult question, the time to point ratio is just not there, and to make it worse it's all about speed - how fast you can answer, because once the question goes off the home page you will get basically no points. So a hard question is doubly bad - it takes a long time, and by the time you are done you'll get no points.
This is just a gut feeling, but (at least for the stuff I tend to search for) Google results leading to Stack Overflow are more likely than not to wind up on a page that's been zapped by a "moderator".
If you're running a Q&A site, and people are Googling the Q's, it would behoove you to have the A's. Or so it seems to me. Apparently SO management has a different opinion.
When top tier NASA scientists find their edits to global warming articles changed by homeschooled children who spend every waking moment on wikipedia, you know the system is broken.
I've seen what's happening on SE before. It was called USENET back then. The best way I can describe it is that marauding hordes of extremists aggressively took over some groups mercilessly attacked anyone deviating from their vision of the world. I remember comp.lang.c becoming particularly problematic.
OK, a little over the top. Well, yes and no. One of the most frustrating things on SE and SF are the questions that are closed as off-topic when they very much are on topic. I haven't been on either of those for a while. Back a some time ago there seemed to be a war of sorts going on between the two communities's moderators as they would close topics in each and send them off to each other. For example, if I remember correctly, questions related to XAMPP was a hot-button item that almost guaranteed your question would end-up in digital limbo. In this sense, it very much started to feel like USENET when the inmates took over the asylum.
When I got started with SE I felt a responsibility to give back as much as I took. I remember devoting significant amounts of time to answering questions with well-tested clear explanations. As you clash into the reality of what these communities have become (both in terms of quality of content and quality of the people who pull the strings) the motivation to contribute at that level --or any level for that matter-- tends to go down.
Not sure what's in store for SE. It just isn't an important part of my daily routine in any way these days. I suspect this might be the case for a lot of professionals who have far better things to do with their time and skills than to play such games for points and badges.
I had a very similar experience. I got the most points (3 times as many as any other question I ever answered) from showing how to perform the most basic task in ckEditor, I library I had not used before or since answering.
On the other hand, I would often spend hours getting a demo to work to demonstrate a concept that answered the person's unanswered question and writing a detailed explanation... then nothing. No response. Out of spite, I started deleting all my answers that were not accepted and had no upvotes.
Sure in an ideal world someone answering that very specific question that is difficult to answer would get more credit but it is not perfect. That is also why the bounty system exists because someone can have a specific hard to answer question that would be very beneficial to them while not many others would be helped and thus upvote. So that person can offer a bounty.
Here is the workflow:
1. Google 'question string'
2. Click first stack overflow link
3. Skip to the first answer without reading the question.
This, incredibly, works for about 80% of the things I need to look up day to day. I often find that I either need a simple example, or just need my memory jogged. In my opinion the entire internet is better because of the existence of this one site.
I agree with all of the author's points, but I think stack overflow is worthwhile despite these problems. And trust me, I've gotten my own snarky, low effort, infuriating, heavily upvoted, answers from Jon Skeet.
Specifically, to keep SO interesting to me, I wanted to have a custom search that eliminated low-rep users from my view - questions from people who are able to answer questions (e.g. able to Google) are much more interesting.
It seems that most of the OP's angst are over the relatively simplistic points system. In his Java ternary example, perhaps it could be counterbalanced with the upvotes you receive and the worthiness of the question (as marked by stars and upvotes). But then the scoring system would become much less obvious and then you'd have complaints about that.
Either way, even with the deluge of non-useful content...I'm amazed at Google's ability to almost always get me to the most relevant discussion, even with a bare amount of generalizing my search query...and in the cherry-picking testing I've done, the Google search engine usually does a better job than SO's own engine (though SO's related-questions sidebar is also quite good). I wonder if some Googler's 20%-time idea was to closely study the SO API and build an algorithm and quality flags specific to the SO domain, as a way to keep devs loyal to the Google search platform?
Imagine two good answers, one on an advanced question and one on a very basic one. The basic answer gets way more upvotes. Is that unfair? It helped a lot more people, apparently, which is the goal of the site. It more readily demonstrates that the author creates content that helps a lot of people, which is the goal of points.
As long as you don't imagine that more points means more knowledge, I don't see the issue.
The question is: Is there a way to fix this?
I've been in enough communities to see the same pattern repeated. I'm not really sure it can be fixed...
Despite ALL the criticism in the article, it is still possible that StackOverflow is a very useful site.
As a software developer well into my second decade of professional experience, I maintain a small number of technologies at what you might call an expert level. These technologies shift in and out of focus depending on what my current projects are.
When I complete a project and don't use the technology for more than a year or so, I've found that I forget all of the nitty gritty stuff and remember all the big conceptual stuff.
For example, I recently returned to Java after several years of disuse. All the bit conceptual stuff that was really hard for me to pick up initially, like polymorphic behavior, multithreading, etc., was still there. The easy but nit-picky stuff was all gone. I'd forgotten when boxing happens and doesn't happen, the behavior of equals in reference vs value types, even where I'm supposed to put certain syntactic elements. Simple questions on StackOverflow to the rescue!
As another example, I did a large project involving SVG in the early 2000's and got to the point where I knew as much as there was to know about it. I recently did a quick one-off project that utilized SVG, and I found that I'd retained the big conceptual ideas, such as the behavior of the coordinate system, the hierarchy of shapes, viewports, groups, etc., but I'd totally forgotten a huge laundry list of practical nitty-gritty things about actually making an SVG experience work.
In the Java example I was embarking on a large project, so I hit the books and re-taught myself to fish again, because it was quite worth my time investment to start from the fundamentals and work my way back up. In the SVG example, I literally just wanted to do something in an afternoon, and I knew SVG could do it, and I wasn't going to do any SVG work after that. Hitting the books and teaching myself to fish in that scenario would have been a waste of time. So I plowed through and was helped immensely by the simple-question simple-answer Stack Overflow scenario.
Then there's a whole list of technologies that I really don't have the brain-space to keep abreast of, but I still need to use. For example I am not an expert at shell scripting, but on occasion I need to write one. Back to Stack Overflow and the simple answers to simple questions.
Before Stack Overflow I wouldn't have been in the dark--as a long-time Internet community member, I would have gone through the usual: find the right community with the most helpful people, hope the community has a search engine or is well indexed by Google, read through long lists of replies without a voting system or assessment of quality, rinse-repeat. Stack Overflow speeds that process up immensely.
Perl Monks encouraged discussion and deeper learning, even though a lot of it came down to Perl Golf.
What I see more of these days is a Google Group, or mailing list, or forum with a lot of core users discussing things, planning the future, debating, etc., and then a lot of reference back to Stack Overflow for particular questions that get asked a lot.
And that's really the core purpose of Stack Overflow. When it comes to writing documentation, the area that tends to have the most potential but the least realization of said potential is the FAQ. FAQs provide another dimension to documentation because they address the, "Well, given that I read this documentation, I still don't get X" scenario. No matter how well written the documentation is, there will be things that are not answerable, because software is so multidimensional. Usually the way a FAQ works out is that the person writing the documentation remembers a bunch of questions that were asked and answers them in place. Hopefully people come in later and fill in more answers based on questions that come in later. In the end it languishes. People have tried to address this via forums, wikis, and mailing lists, but in the end forums are a good place for narrative discussion, wikis are a good place for writing documentation period, but both are poor for FAQ because of their built in time decay, lack of voting, etc.
In that sense, Stack Overflow is a FAQ engine is appropriately geared toward explaining particular answers to particular questions.
That said, Stack Overflow became more than that after its community exploded, and I share in the annoyance when some of the more interesting free-ranging questions get shut down because they're open ended. I am not wholly on the side of FAQ-type lockdown.
"Tough to solve C++ problems" are not in as high demand as relatively easy to answer Java questions. Stack Overflow scoring system captures that.
Questions that google can answer are low-productivity, possibly anti-productive if they cause people to hit stackoverflow instead of language docs. Hard questions can completely save the day of a few people, and teach even more.
If your answer saved 30 minutes of effort for 10000 developers then it's 5 times better than to save 10 hours of effort for 100 developers.
Then again, there are plenty of 3-year+ users with 100k+ who still think moderators are any other users who disagree with them and/or can only vote to close a question.
When you don't want to see the effects of leaving joke questions around as more and more users use that as a reason to increase the noise, then you don't want to see why moderation and locking/deleting needs to take place.
That's pretty much how our "real world" scoring system works if you think about it. To make it simple, just replace the "internet points" by "money" and your "stackoverflow account" by a "savings account" that pays interest and the analogy is set ;)
Instead, I just blog solutions to various thorny problems I run into, so that other people can find them on Google. And I try to use whatever domain-specific message boards I can find. I just don't understand how to use SO to get help so I don't bother.
And it's not that I don't want to contribute. I've answered some questions on SO and I'd be happy to answer many more than the questions I ask. But my (uninformed) sense is that I could answer questions til I'm blue in the face and no one would ever answer mine. The ratio of unanswered questions to answered ones is insane. It just doesn't feel like there's a community there that I'm joining.
That said, I find it incredibly useful when there's already an SO solution that comes up in Google that solves my problem.
I love Java and I love the Java ecosystem. Stack Exchange serves the Java ecosystem very poorly however.
A lot of the frustration people have with Java is that they try to learn it from a task-oriented perspective, and that really gets you in trouble if you work with Spring or Maven, particularly on a big team. If your first experience is with a 40-module Maven project that is all SNAPSHOT releases, it takes two hours to do a complete build, and there are just two people who understand maven vs 23 developers who get their answers a problem at a time from StackOverflow and who copy each others' bad solutions while adding more problems, of course you hate Maven.
In the case of Maven the documentation sux and you need to read the source code and not be afraid to write plug-ins, but Spring is not so mysterious if you take your tablet to the gym and read the manual cover to cover a few times.
There is no language that favors holistic thinking and punishes "task-oriented" thinking more than Java. For instance, when most developers have to deal with logging it's because things have gotten horribly tangled up with slf4j and commons-logging. Once more, the situation is pretty simple if you understand the big picture, but from a task oriented perspective you're just stumbling in the dark.
I think this may be in large part a negative side effect of the "gamification" because this rarely happened back when usenet posts (searched via deja or google groups) or dedicated forums for topics would be my source for finding programming answers in subjects I was unfamiliar with (new API, new language, etc). In those places if I found a question that matched mine well, and it was answered, there was a very high percentage chance the answer was correct and not just someone guessing or answering half-assedly and too quickly to get in on the karma train.
These wrongly-answered answers seem to dissuade others from answering (question too old, already sort of answered, nobody will see my correct answer and upvote it), so this wrongly answered question just lingers seemingly forever. If the moderators spent half the time pruning out these wrong answers that they do closing topics that are borderline off-topic, the site would be a far better resource for me.
Most of this involved rather tedious, repetitive labor. So to stave off boredom, we made up games to go along with it. "Fastest to finish hoeing a row of corn", "Most peas shelled in a minute", etc.
It helped. We got a lot more done, faster, and with less complaining because of it.
But... The games weren't really the goal, and no one ever thought otherwise: the point was the creation and preparation of food for the next year. If you "won" by chopping down all the corn or throwing out the unshelled peas, no one would think highly of you for doing so.
Too many people look at games - or especially "gamification" - as a silver bullet that will turn the efforts of lazy and unproductive players into gold... This is exceedingly naive. Any game played in bad faith will have disappointing results, whether the mechanics of that game involves throwing a ball around or answering programming questions.
Is that a good reason not to play? Hell no! Games are fun, and with the right players and attitude can be exceedingly rewarding. But you do need to keep some perspective, to remember at all times why you're playing.
Some trivial Java question gets one more points than a brilliant solution for some obscure problem - okay. Isn't that the nature of all things? Is this StackOverflow's fault?
"Engage with other users of the tools you use in the form of user groups, mailing lists, web forums, etc."
Don't "mailing lists, web forums" suffer from the same bias? Even if there is no formalized reward system (points) there?
> StackOverflow is filled to the brim with people giving fishes.
I tried that. Guess what happened:
Not saying my answer is awesome, but I just tried to be comprehensive on a very recurring SQL topic and the community responded very positively to it.
I get it, SO feels like a game. But I use it to hone my skills and learn new things. When I want to learn, I don't ask on SO: I stick to a tag and keep trying to answer something on it. Learned a lot that way.
Just my 2c.
I once answered a Java frameworks question with an opinion. It has gathered nearly a thousand points over the last few years.
The game is broken. Bad answers to stupid questions get all of the points and I raise an eyebrow every time a CV lands on my desk enumerating the candidates SO points.
But it's still a well optimised site that beat experts exchange, so it doesn't matter too much.
I don't see the problem here. He's not getting points for doing nothing. He's getting points for something he did in the past. Sort of like royalties.
I don't think #1 and #2 are really a big deal. #3 is the real issue. The problem is SO still follows slavishly an ideology proposed by one of its founders, I think it was not really Joel's views so much if you followed the podcast discussions. This ideology has persisted in the mega meta bureaucracy that is SO now.
Of course, it is always funny that their presumable goal was to be the destination for technical for answers but yet any question you might google and find answers on StackOverflow, the answers will, with a probability of nearly 1.0 that it will be locked, closed, and marked some kind of horrible thing that should haver appeared on the site. Good job, I guess. If SO was meant to fix the wretchedness of forums .., what fixes SO? I don't know. But with the fury that it attacked the other forms of communication I just expect more than endless "philosophizing" about "what makes a good question" and all this meta ideological nonsense. Maybe it's just me.
Ignoring the gamification of S.O. the community that surrounds it and the sheer amount of knowledge it holds makes it an incredible resource never seen before in the history of programming.
Sometimes it seems like human beings could live in a golden palace and be upset that the gold is the wrong color.
That seems to indicate that stack overflow had considerable growth in the number of contributors, relatively few of which acquired large scores (for example, if there were no 'effortless scoring', they would need 33% growth of users who all have lower scores in order to make the former top 4% become the new top 3%)
That might be an indication that there are fewer users who play the "I want points" game. It would require access to quite a bit more data (who joined when, what do the distributions of scores look like, etc) to prove that, though.
If it turns out that there still are lots of users chasing high scores, I think it might be worthwhile for Stack Overflow to play with different scoring functions. For example, h-index is popular in scientific papers. One could do a SO h-index (has X answers that got at least X upvotes). Maybe, to encourage diversity, one could add "... With X different tags" to the requirement.
It's great finding specific answers to highly specific questions that a large number of devs can help with. It's terrible at keeping many of the most experienced devs interested in answering questions. And it's not great as a general learning resource either. The site just stalls out at a low to moderate level of sophistication in terms of the level of knowledge that can be found there, for all of the reasons the author described.
Edit: after some reflection, here is a stronger critique of SO:
SO leverages a huge amount of effort from developers for very little real benefit. Some of the site has value but a lot of it boils down to moderately experienced devs spoon feeding answers to beginning devs, which I think could be more detrimental than helpful. By doing so such beginning devs avoid the hurdle of having to RTFM, which stunts their growth. They avoid having to level up their skillset and they know that they can just return to SO when they have their next problem, so they are discouraged from acquiring the skills to solve their own problems, they will stall out at a beginning skill level forever. Meanwhile, as many people have pointed out the true point of crisis in skill/project development lies not at the beginning but after the initial hump, after years of work. And here devs are not well served by SO because they need more than just an answer to a specific question, they need guidance, they need mentoring, they need encouragement. SO's nearly pathalogical lack of community makes it a very poor place to seek out assistance during that phase of personal development.
In short: SO may be helping the wrong people and discouraging folks who are more in need of assistance and for whom being helped would have a vastly greater positive benefit on the industry as a whole.
Nobody is discouraging anything from anybody. SO is mainly a resource for programming problems.
For the life of me I can not understand this expectation that SO is a tutoring site. It is not. As a developer resource it is invaluable, and free.
Additionally it is geared towards STATIC knowledge. Chosen "best" answers (CURRENTLY!) and the fact that most of the time no one is actually updating their votes according to the CURRENT state of the art or current established best practices actually can even drive info seeking users towards out dated answers...
Still, most of the time I think it works just fine for the folks just in need for quick "how do I convert x into y in language z" answers.
To tackle the non-static, more dynamic and actually fleeting aspects of "voting for the best" aspects I am working on and experimenting with Sustinion
Not for me. It's my go to place to find syntax equivalent examples for languages I don't typically use. If Google has a universal translator for code, I'd probably use that instead.
So my attitude to SO is pretty much "meh". I'll take useful answers (and sometimes there are really good ones), but if they don't want me to contribute, stuff 'em.
That's not true. You can write answers right away, but you need to acquire some rep before you can write comments .
Then there's the part about giving fishes instead of teaching how to fish. Duh. That's what the site is about. It's a resource for fishermen. It's a nice place to get samples of fishes you haven't heard of. You're free to just eat them, or study them further.
SO is amazing as a super cheat-sheet. It's not a tutorial, a school or a a forum. It's not Reddit or Farmville. Please stop.
I find it's much more effective to simply read the documentation of the language/function/feature I'm having trouble with, than it is to try to formulate the precise phrasing of the question that will lead me to the answer I need in my circumstance.
The one thing that niggles me most on the web in general, is continuous reinvention. If you must paraphrase someone else's work then do. However most of the time a simple link would suffice. The same for repeat/similar questions. And it's always good to reference your sources.
What I was really getting at was wholesale monotonous rewrites. A lot of the web in my mind could be DRYed up. But perhaps redundancy isn't the issue I think it is.
I do feel I do a lot of toing and froing with searches. More than in the past, but possibly that's just because there is so much more information to filter. I'd have thought that healthy linking would help search engines.
The biggest problem in my opinion are voting rings getting more sophisticated and getting undetected for longer and longer period of time, with users from the rings getting more and more rep before action is taken and basically filling the site with spammy questions/answers (and even probably links to malware). This has the potential to become really nasty soon: at one point you can imagine several users from a voting ring upvoting themselves to 10K rep and starting to slowly vandalize many questions while going undetected for long period of time.
Which means SO is polluted with fake questions / answers. Google results are polluted with fake questions / answers. And high-rep users (the one with enough point to directly edit questions / answers) are wasting time fixing what looks like poor questions or commenting on these, not realizing they're fake questions/answers made by people participating in a voting ring.
Here's a recent example:
User has 364 rep as I write this and it's obviously a voting ring made of a few users. If you have a few minutes just open that account and all the questions he answered: they're all from the same two or three same users, sometimes answering twice the same question and obviously getting upvotes and accepted answers from people in his voting ring.
But that's not the issue... The issue is that this is not stopped fast enough: because the mods are too busy wasting time on less important issues concerning users who are perfectly legit.
Despite my 3.8K rep and flagging to moderator attention, nothing is done to stop these fastly.
So on one end you have creeping authoritarianism focusing on not so important issues (like say, the "closing question" police which is super-fast to act when it comes to closing or mark as duplicate legit questions), while on the other end there are real abusers, totally gaming the system, reaching enough rep to create havoc and basically doing vandalism by filling the site with fake questions (and fake answers).
The "proof" that there's a real issues is that several high-rep users spent time fixing (intentional?) typos and grammar errors in these questions, thinking they were real but, mostly, that several people are going to open the profile I just mentioned and not realize it is part of a voting ring.
Now that I post this on HN maybe that HN mods are going to act... Sadly while at the same time explaining that HN is not the place to point out SO issues, that this should be taken to meta (where I'd be downvoted or closed as duplicate etc.).
As a side note I don't understand how a new user can ask six questions, have five of them answered by a single user and all upvoted and accepted without that kind of behavior directly triggering an alarm requiring moderator attention.
So: add the ability to directly flag a user (or a question if it's simpler) as part of a voting ring, add an algo that finds probable voting ring behavior and call immediate moderator attention when such rings are discovered. Also prevent questions which are made by user which have too low of a rep from appearing in Google immediately.
And, no, I'm not taking this to meta: I don't like the "tone" there ; )
There are countless things way less important that are raised and people's time is wasted on less important issues, like people fighting as to who in the "close police" is going to close first, say, anything looking remotely like a duplicate.
While all that energy could be used instead to detect things like voting rings where people already have hundreds of rep and are polluting both SO and Google with fake questions, fake answers, fake edits, etc.
If nothing is done and if voting rings flags get queued at position 1000 in the queue, then it's just a matter of time before voting rings reach 10 K rep and are able to create a real mess.
So.... Most of current contributors just fight for points really.
Also, I hate the new black bar at the top. It is the reason I don't visit the site that often now. It hurts my eyes. :-(
If the Author is an expert then answer/discuss questions on your level and most of the issues will be gone...
You may not get the recognition you deserve but believe me you don't give others the recognition they deserve either.
That's the faulty premise. Or rather: it strikes at the weakness of gamification.
Yes, there is a very strong tendency for reward and effort to be grossly mismatched in user-ranked and filtered sites. Guess what: there's a copious amount of similar mismatch in real life. Jobs which are painfully difficult offer little reward, other times a casually tossed off effort may gain endless plaudits.
On HN, I think my top-voted comment remains a sarcastically flip jibe at PHP (a couple of submissions have out-scored it). On reddit, something of a throwaway about terminals vs. glass TTYs (at least it's technical). On the other hand, I scored my first reddit gold, which is to say, someone was sufficiently moved by what I'd written to actually pay something, for a longer and more detailed post, but one which my research of the topic made pretty easy to write.
But that's not why I participate.
My principle objective is to learn, explore, examine, have my own ideas challenged, and generally expand my capabilities and understanding. And used correctly, HN, reddit, and StackExchange all accomplish this pretty well.
The rating systems are there less for the person being rated and more for the benefit of others -- they're a first-level indication of how well trusted and respected someone is ... or how long and obsessively they've been using the service.
A recent HN post (also appearing on reddit) was "We Have to Talk About TED". I wrote my own riff on that: "We Have to Talk About 'We Have to Talk About TED'" (http://redd.it/1te3hz) (and yes, as the woman in the back says, its TEDtles all the way down ...).
The key problem:
There's a fundamental problem with democratic voting processes and voting systems (such as reddit's own post and moderation processes -- which are, in their defense, better than most) in assessing who's qualified to make a judgement -- and then, of course, in determining who's qualified to assess who's qualified.
There's been a strong focus in the online world for the past decade or more over user-moderated discussion. Slashdot was arguably one of the first such sites, many others have come along, most have gone. I think a fundamental misunderstanding is that the most democratic moderation systems are the best. I don't believe this is the case. Rather, any distributed moderation system shares the load of content filtering. Which is a good thing. But distributing that load to those unable to draw meaningful distinctions between "good" and "entertaining" is not useful.
This is most crucial where you're not measuring, say, marketplace potential (where popularity is in fact by and large the metric you're looking for) as opposed to, say, technical correctness. In which tests of suitability are more significant.
And that's the point of StackExchange: it's not a platform with the goal of scoring people the most points, it's a platform on which if you go there with a question, you'll find a good, and hopefully the best, applicable answer. And to that end, I've actually found the site extremely useful.
So: HN, StackExchange, reddit, Facebook, Google+, and other similar sites tend to fall down a bit of a rathole. Clay Shirky's noted that the problem isn't information overload, it's filter failure, but there are also two modes of filter failure: one is filters which are overwhelmed in the classification task and can't keep up. But another is filters which select the wrong stuff.
Which isn't a particularly easy problem to solve. StackExchange actually takes a decent cut at it (as do other services such as Yahoo Answers, though with varying degrees of success) by having the submitter select the best answer. Within the ranking system, this might carry some benefits, and in particular, submitting a lot of wrong, or simply unselected answers, might carry a penalty. Another way to switch up the voting system would be to assign more points for answers to harder, less-answered, or unanswered questions. Or to provide a means of judging between solutions: what's faster, simpler, more comprehensive, more robust, etc.
Which gets down to determining what quality and fitness are. In which case I'd recommend taking another look at Pirsig's Zen and the Art of Motorcycle Maintenance. Though you need not agree entirely with what he has to say.
Arguments could be made against contributing to...
Helping the homeless,
Hacker News discussions,