Once I started asking questions, I was careful to respond to comments and accepted and upvoted the best answers. I wanted to be a good citizen of the community. And reciprocity was a part of that: eventually, I found myself able to respond to questions and I remember how great it felt to see the first +25 on my profile because someone accepted my answer.
These days, if I ask a question it's because I've spent a good amount of time on it and haven't been able to resolve it myself. Here's what happens when I ask a question on SO:
1 - I ask the question, post the code, and the error message I'm getting
2 - Question downvoted
3 - Respond to comment that says my question is a duplicate (it's not, which I clarify to avoid "closed as duplicate")
4 - Respond to comment about a missing semicolon that got deleted when I was cutting/pasting/formatting my code. (Despite the error msg making it clear that the missing semicolon isn't the issue)
5 - Question upvoted
6 - An answer! Says that I need to read the docs and provides a link to a non-relevant section (I've read the docs)
7 - Finally, a helpful answer! Looks pretty good, so I test it out and it does the job. I accept and upvote the answer.
8 - Notice a duplicate answer posted less than 1 minute after the accepted answer. Duplicate answer person complains that their entry was posted first. I advise them that the timestamp indicates the other poster was first and they reply that it is a time zone bug.
9 - Later I check back and notice this message: "Question closed as vague and cannot be answered"
10 - Check back one more time and see that someone has downvoted my question
11 - Email the mods to get the downvote removed
E.g. in phrasing my question, specifically having to mention a whole bunch of things that obviously aren't the problem but people are going to insist on anyway unless I've already mentioned them myself.
Or the whole "Well, you shouldn't be doing this in the first place so I'm not going to help you with your actual problem".
It can be incredibly helpful to point this out. But often I'm doing things in a certain way for a reason (constraints that aren't relevant for the question, like "yeah but our entire codebase").
So when I say I'm doing it this way for a reason and looking for a way to make it work, either trust my judgment or decide I don't deserve to be helped and stop commenting. But it often ends up being a massive distracting derail preventing others from trying to answer the question I was actually asking in the first place. Most annoyingly, this behaviour is often rewarded with upvotes.
> "I can't connect to my database due to error 110, I have no idea what that means"
"Why aren't you using an ORM?"
> "I have good reason not to, besides, I'm just looking to fix error 110 now"
"But a good ORM handles these types of errors for you, it'd be stupid not to use it"
> "You're probably right, but that'd require a lot of rewriting and refactoring and that's simply not an option right now"
"Ok, get back to me when you're actually using an ORM and still having trouble with your database"
when all I'm looking for is "That's a connection timeout, tried checking your firewall configuration?"
I call it the MacRumors Forums/Apple Discussions syndrome:
"Why would you WANT to hold your iPhone this way?"
"What kind of moron would want to keep using their 5-year old Mac?"
"Why are you trying to export this file? Just create a copy by hand, duh."
"No, this can't be done. Terminal? No, don't use it. Here be dragons."
Totally agree with this. I can't stand it when people start mucking about in the comments. It's almost as if they are looking for something to do, and then feed off of each other. Eventually, all the activity draws the attention of a super-zealot, who promptly closes the question.
When I've decided to post on SO, it means I've failed miserably at finding a solution on the internet and it's usually a very unusual question. I'm sure there's a nice design pattern I could be using or there's a different, more standard way to do it, but I do not post on SO as a newbie in the field (or at least I avoid such questions).
My solution to avoid that kind of answer is to open my post giving all the reasons why I'm not doing it the usual way (for example, why I'm using plain WINAPI instead of MFC, .NET or whatever newer technology is out there). I still get suggestions I'm doing The Wrong Thing ™ though.
EDIT: After posting this, the comment linked in  seems to be removed, but it was something along the lines of "Any reason you want your app to look old? :)"
You kinda end up copy pasting your life's story every time you ask a simple question. Drives me nuts and makes me use IRC more often because the feedback loop ends quicker.
It usually translates to "I know the answer to your question, but instead of just answering it and letting us both get on with our lives, I'd like to show off my vast intellect by helping you embark on a major re-design that you neither asked for nor need at the moment."
For example, yesterday a guy asked a rather complicated question about hacking the Objective-C runtime to replace a class in the inheritance tree. But from his question, I was able to infer that what he actually wanted to do was globally change a class's behavior. So I answered the question that I read between the lines. His response was, "Oh, yeah, I don't know why I didn't do that to begin with." In that case I felt sure enough to answer without asking, but in other cases I'm not as confident whether this is actually a different question in disguise.
I've replied to "does anyone know where the nearest ATM is?" with "the pub we're going to has no card transaction fees or minimum spend". It doesn't necessarily solve their problem, but there's enough chance that it does, that I feel it's a useful thing to say.
I can't say that this is generally always the case, but when people ask "what is it exactly you're trying to do?", it's often because they're trying to figure out if you have an XY Problem.
Then again, I'm a linux guy too, so reboots are in general bad tatse.
Same for me. Here's how my questions end up:
- With an actual, good answer. I'd say this happens for about half of the questions.
- The answer confirms that what I'm trying to do is not possible.
- I get stupid but confident answers by people who apparently didn't read the whole question.
- No answer or vague unhelpful answers.
- The question is put on hold, usually because it's too broad or not constructive. It's a shame that there's no place to discuss these type of questions with the SO community, I hink there's a lot of potential there.
I've also noticed that really in depth questions with a lot of code examples and explanations doesn't help either because then they get no responses or votes.
It's funny when you're asked to supply detail but when you supply detail no one replies because they can't be bothered to spend 4 minutes reading the setup/code details.
If you can't quickly get that gratification you just move along to the next guy who left out a semicolon that wasn't germane to his question. Who has time to deal with other people's real problems?
When talking to young engineers, i say SO is a great place to find answers, but horrible place to ask questions.
If you want to ask a question and find yourself ridiculed, belittled, and lectured on everything but actually having your question answered, then this is your place.
Upvotes by themselves should be enough to bring the best posts forward. IMO this is true for HN too.
Note that down votes are a key part of what drives a number of automatic scripts that clean up things.
* People who waste too much of the communities time (asking poor questions that get closed and down voted ) get question banned - driven strongly impart by down votes.
* Closed questions that have a negative score and no answers with a positive score get deleted after a bit over a week. (If people complain about how much crud there is, one should look at how much crud gets automatically deleted).
* A down voted question helps signal to people reading to not waste their time reading it because its not useful. When you've got 8000 questions/day, someone saying "don't bother with this" can save you a bit of time reading it.
For smaller communities where a person who wastes your time can get addressed through individual moderator attention. Where there are 8k questions per day asked by a similar number of people, you can't have every moderator address each poor question and time wasting troll. It is for this that simple down votes can help drive the automated system when there is enough signal that the person is wasting everyone's time without involving moderators.
So, because of how the system was designed, it isn't something that one can easily go back to and change (and remove down votes). Its part of the software and the culture of the group and the two are inseparable - the technological and social part of the community is tightly interwoven. Further reading on this at http://www.shirky.com/writings/group_enemy.html
say 3 or 5 downvotes are required to start flagging inappropriate content.
surely if more than 3 people flag something, then its likely there is a case to answer. takes away power from pissed off people who can't stomach a diff viewpoint.
Downvotes mean that its not helpful, or that its not correct, or that it insufficiently answers the question. Flags and downvotes are often orthogonal to each other - one doesn't mean the other is needed.
With a good question, viewpoints shouldn't be an issue at all - there's a question, there's an answer.
An individual who systematically down vote another individual will have the votes reversed by the system.
Downvotes are their weapon of choice. Now the question loses value because someone had an agenda.
Now at 3 downvotes, there could be a point is what I am trying to say.
The prospective of being downvoted by stuck up folks leads to unwanted self-censorship and in many case not bothering to ask the question.
There is a small but vocal population of users who will use any excuse to close questions they already know the answer to, regardless of how clearly-written or novel they are. That's... kinda insane, but in a community-moderated system there's a bit of a learning curve for everyone, including those moderating. If you see something that strikes you as wholly inappropriate (e.g., a good question closed for a bs reason, not a bad question closed for the wrong reason), don't hesitate to bring it up on meta for review: http://meta.stackoverflow.com
Pray tell, what is there to ask about bash that isn't programming? Now the SO zealot will say 'well the history is bash is not about programming', which is technically correct - and 'technically correct' is the worst kind of correct in existence. A question about the history of bash is close enough to being about programming, let it be.
(I don't know if the GP's question was actually about the history of bash, it's just an example of a situation I can imagine in painful realistic detail how it would go down)
If you wanna make something better, call out specific behaviors - ideally, punctuated with specific examples - and explain why they're harmful. That way folks who care can learn something, and teach others. Yes, even if they do have autism.
He's not referring to autism he's referring to a sort of pharisaical uber-pedantry that fails to properly acknowledge the purpose of the rules, and the purpose of the forum, instead looking only at the letter of the regulations. You might call it lack of a good faith effort to interpret the question positively.
I'm guessing you knew that.
Sadly, this isn't the first time I've run across statements like this; they're all too common in support emails sent to us at Stack Exchange. Rather than making an effort to express their concerns and disagreements, all too many people jump to the assumption that because someone disagrees with them they must have some deep-seated problem that they're inflicting on others rather than dealing with.
Perhaps it is cathartic for the person writing, but it is frustrating and wholly unproductive for everyone they subject to it.
Instead of devoting paragraphs on 'detailed behaviors - ideally punctuated with specific examples', I use one word that perfectly conveys my intent. Not a single person (who is not autistic, which does make my post a catch-22 situation) would think that I actually meant that I am blaming people who are medically diagnosed as scoring high on the autism spectrum for the demise of SO.
(come to think of it, and given the context of this whole inane thread, I'm not sure if maybe you are just parodying the GP - if so, nicely done, and I admit it went over my head until after writing the above)
where do you now draw the line? do you have a line at all? if not, don't you end up with something like yahoo answers that already exists and is pretty much useless to everyone?
The SO founders decided to draw the line at 'programming questions', then built a framework to enforce that. I don't see what's wrong with that.
P.S. If you're going to reply, can we keep it civil, please?
(edit: wow, someone really has it in for me today)
Everybody who isn't interested in more generic questions, recommendations for libraries, opinions etc stays away from those threads and everybody lives happily ever after.
What is more important is what shouldn't be done - pages and pages of rules and exact definitions of what is and is not worthy of being a question, with a bunch of language lawyers (who, by the way, for the most part have very little content knowledge yet don't let that stop them from having an opinion on everything) spending ungodly amounts of time combing through the details of every post to judge what does and does not conform to the all mighty 'rules'.
I have several times had people with no knowledge (judging from their comment history) and much less time on the site than I have, jump on questions or answers that didn't fit their mindlessly rigid mental image of 'how things should be' and actually detract from the usefulness of the question by their whining about formatting, phrasing of questions, how other content is linked etc.
'Foolish consistency is the hobgoblin of small minds', illustrated nowhere as dramatically (and saddeningly) as on Stack Overflow.
I'm way more bitter than I should be over something I rationally should just shrug of. But dammit every time something good pops up, the idiots take over after 2 or 3 years. Most Usenet groups, Slashdot, BoS forums, this site - tragedy of the commons, it's perfectly rational and explainable, I understand how and why, and still I hate when it happens, every time.
You're right, though - it can get far too pedantic. anywhere you have a subjective rule, that's a danger, I'm afraid. I don't use SO anywhere near as much as I used to, so I'm not a good judge of quality over time, but I still find great answers there 99% of the time, so it's definitely getting more right than it is wrong.
What I don't get is I've seen questions that were answered closed? Why close any question that's been marked as answered?
After others pointed out that it is a language, a mod re-opened it and it was answered.
A system that requires moderation / higher authority to work normally isn't really working, it just has an error recovery mechanism. Systems built on the negative being right and the positive needing proof are particularly painful.
So, there are checks and balances and venues for appeal and we try and provide opportunities for both automated systems and humans to review and appeal any decision. If you're patient, it works. If you're not... Well, it's probably not a good place for you to be.
Go to hell.
Your responses are less than worthless. You argue and banter, just to be right 'on the internet'. You and comments like yours poisons community after community. Disconnect from the Internet and leave the rest of us in peace.
Please try to address the matter without virtiol next time. You can disagree in a civil manner. The above comment has absolutely no valuable content in it, and is extremely poisonous to discussion on HN. Ironically, you just became the person you rail about in your comment!
Joel has spilled much ink on how SO is not a site for free form discussion. Discourse was created for that.
Some frustration may occur when one realizes that certain kinds of problems or exploration are best suited to free-form discussion - those discussions need to happen on channels other than SO then.
* edit - corrected Discourse attribution.
Mods can't reverse up/down votes
Moderators cannot even see who voted a question up or down, never mind reversing votes.
Apparently someone was just upvoting everything they saw, hence I lost rep when they were deleted.
AFAIK, under no circumstances can a Stack Exchange moderator reverse a vote.
More info on the serial vote detection process here: http://meta.stackexchange.com/questions/126829/what-is-seria...
edit: I just looked at your profile and the deletion/banning of a user account will remove rep too, so I suppose in that manner a mod can "reverse" voting, but it's all or nothing. They have no way to flip individual votes.
edit2: Moderators are not employees of Stack Exchange, they are volunteers elected by the community. Of course employees can change whatever they feel like. This discussion is about the moderators.
The one thing they all have in common is a larger pattern of votes. SE does not act on individual votes, and emailing them about those is a waste of time.
Such as, I dunno, the people who work at StackOverflow HQ.
I think he is missing a camp, to which I'd count myself: 5. Those users who visit the site to solve their problems, and who like to help others.
Like 1 they want to have nice content on the site, but their number one criterion is "is it helpful (and civil)"? They don't care much about "is objective/it a good match for SE/constructive" and are frustrated by the wikipedia-like deletionism of 1. They would enjoy and benefit from even the "worst cardinal sin" kind of questions, like "What is the best node.js framework as of early 2014?". (The question would have many answers and would be a bit messy, but a novice could quickly gauge what frameworks there are, which ones are popular, and around which ones there is controversy.)
They dont't care much about 2 ("help vampires"), answer the questions if it is not much effort, otherwise ignore them. They don't like the term, and absolutely hate it when 1 accuses them of being one. It is incredibly rude when one closes your question for supposedly being "homework".
They don't care about 3 ("rep whores") either, and find the grudge of 1 against 3 silly. Let them have the rep they can get, if they're having fun and contributing useful content! Like 3, they enjoy getting rep (or XP), and try to unlock new features on the site, but isn't that the point of gamification?
Basically, these are the people who also care about the site and the community, but are less obsessive and deletionist (I'm looking for a less offensive word for anal-retentive...) than the vocal majority on SO and Wikipedia.
Thus, many if not most of my encounters with SO are with closed, marked-as-offtopic questions that are still often the best resource to get an overview of the available alternatives.
I would love for someone to sift through the SO dataset for such questions and create a new, separate community catering to this specific need.
Then why don't they go to one of the million Q&A sites that don't have those restrictions? Oh, wait, is it perhaps because they don't have anywhere near as good content?
The very fact that out of SO's restrictions has emerged what is generally regarded as the best Q&A site that exists, might suggest it would be a bad idea to change it, simply because some people get upset that their questions suck.
What I'm asking for is a site with the SE engine, where the most important criteria for posts are helpfulness and civility. Everything that is not helpful or not civil gets removed. People who are snarky and/or deletionist are not welcome there. If you apply these criteria, all the other "Q&A" sites fail.
It's not that yahoo and expertsexchange were full of "helpful and civil but not constructive answers", and failed because of that. They suffered from poorly-written, nonsensical posts.
But all of them have flaws: of course they do. If you think your alternative SO will work so well, then set it up. I've no doubt you'll end up with massive pedantic arguments about what "helpfulness" means before you get beyond 10 users, but perhaps I'm wrong and you'll do to SO what it did to expertsexchange.
I just prefer that the existing SO doesn't get broken to the point of uselessness for the sake of experimentation with different posting criteria.
Anyway I think for the purposes of learning programming nowadays this help vampire / repwhore relationship is very pragmatic, also I think it is the most important function of the site (1s be damned!) to help people learn.
I've found learning programming that often the initial learning curve is quite steep, and there is often not any proper documentation for things nowadays, there are things you could never figure out yourself and in those cases you just need to be pointed in the right direction by someone who knows.
Here is an example of a "bad" question I asked. It got downvoted, with snarky comments and answers but I dont care + it was very helpful for me mainly because in one of the comments someone mentioned the word "easing". It turns out What I was doing was easing but I just didnt know that word, learning that this kind of stuff is called "easing" was a huge help as now that I know what its called I can just search for resources on it.
Theres no way I would have been able to figure out that these things are called "easing" by myself
For example, the above link stack overflow question with "easing" in it would be pure gold.
This is the trouble with being too specific. It's often better to say: here's what I want to do and why, what's the best way to accomplish that? Describe your actual problem first, before getting into your attempted solution.
Sounds like a great way to get your question torpedoed by overzealous moderators for being "not a good fit" since there's not a direct answer and it will "invite debate".
However after having people from group 1 decide that the discussion that I wanted was happening on off topic questions. There was one particular case where group 1, the moderation nazis, decided that the question was "off topic" and should be deleted. After I complained about it here, people went and voted it back into existence. But I've been pretty close to inactive there since once I'd had that taste of moderation and realized that, as far as the site was concerned, the moderation nazis were mostly correct - the kind of algorithm questions that I found fun were off topic.
See http://stackoverflow.com/questions/11314077/algorithm-for-ex... for the particular question that lead to my getting frustrated with the site.
But what is on-topic? After seeing pretty much every interesting/useful question I encountered on SO "closed as not constructive", I just can't piece in my head what questions are OK.
The only ones that come to my mind that seems to be on-topic are the kind of "I'm too lazy to try and debug things for 5 minutes, so I need to ask on the Internet" kind.
I don't think anything new has been said about the scope of Stack Overflow for a long time - everyone agrees on the specifics (by and large), the only real point of contention is whether you like the way things are or not. If you do, great! If you don't - you're probably not going to get the people in charge to change their minds at this point.
Edit: ok, I see your point, but you don't know that that wouldn't have happened anyway.
Because there's no method of recycling karma from people who have left the community, there must be a source of new karma that will allow new members of the community to take part in the community.
Since the only way of creating karma is to answer questions, this means there must be a constant stream of new questions sufficient to provide karma for all the new people.
But new technologies aren't being generated fast enough to provide a constant stream of new questions that can be answered easily enough to generate the stream of new karma required.
So we see duplicate questions being answered instead of being marked as duplicate because answering them creates karma but flagging them as duplicate doesn't. Only the existing moderators, who have "enough" karma, care about flagging duplicates.
So we end up here, by design.
Karma Economics... I like it :)
Moderators who close questions they deem as "dirty" questions on SO (e.g. my question here ), remind me of the Wikipedia moderators who delete an article I'm explicitly looking for as not notable enough to be on the site.
I wonder if their psychological motivations are similar, as well.
I don't use SO myself but often stumble across interesting bits of info on there from Google, and also a lot of the puzzling "is this really off-topic?" questions. That's mainly what put me off from registering and participating, even to answer someone else's question/leave a comment - the community looks far too rigidly moderated for my taste.
But as soon as it gets to some obscure API maybe a handful people uses currently you not only get no constructive answers but get downvoted, get useless but borderline hateful comments and in the end the question gets closed because of $reasons.
Now if you go and start googling that obscure API it's inevitable that you will find SO questions about it. "Great, maybe I can find something there in the comments" you think. But no, that question most likely is closed because of $reasons and has no comments because comments on closed questions are not allowed.
In the last few years I had a handful of cases where even discussing with someone who didn't know the solution to my problem might have brought me a little nearer to the solution. But you even can't start a discussion in SO questions because if it's not an answer the question gets closed down - no matter how helpful the discussion might turn out for people with said problem.
This is a real problem with SO: it seems to prize 'easier' information by design.
However SO is bad for not-so-common, above advanced knowledge. Some Tags (C# for example) have good support but some effectively don't (Java).
OTOH: 500rep bounty usually can do that trick if there would be anyone to shed light.
The caretakers seek to either preserve things how they were, or to make it conform to some twee memory (sentimental, nostalgic imagining of how it was, which doesn't conform to reality... i.e. people imagining HN was once better even though pg showed that the quality in the past and present was similar) or unrealistic ideal.
I personally don't think the first two groups can co-exist peacefully without a degrading in the quality of the experience from the perspectives of both groups. To please either group will rub the other the wrong way.
My take is that communities work best with gated circles and steps of promotion. That there is progression.
I don't mean karma (the computer measurement of progression and merit).
I mean that this is a social problem and people solve it and not computers. That all communities are able to recognise themselves pretty well, and would organise themselves accordingly.
I mean cliques.
Cliques cannot be coded out of existence as if they are a non-meritocratic scourge. They are an entirely natural way in which people organise themselves and people will continue to organise themselves thus.
I think that attempting to apply a meritocratic measure (karma, a technical solution to a social problem) will always fail. It needs to be recognised that it's a social problem that merely needs technical tooling.
By which, I mean that these self-identified networks, hierarchies, groups, should be able to control access, visibility for their collaborative work.
In the context of Stack Overflow, it's obvious that the goal of keeping everything visible at the highest scope is to drive as many eyeballs to unanswered questions as possible. But I would argue that it is better to allow sub-communities to thrive and to allow them to control the granularity of those sub-groups... thus putting them in charge of how many eyeballs see their particular set of unanswered questions.
Just like HN, a single SO tends to be far too broad. Just like HN, SO would benefit from allowing users to create smaller groups within the larger scope to deal with ever more niche interests.
Communities don't scale, so allow them to perform their own version of cell-division to remain highly relevant to their members.
I have learned things by answering questions for people who were unable, or unwilling to do the research themselves. It's the most beneficial when its a topic I am familiar with, but have not had the need to actually try myself.
Hiding HN usernames for 48 hours would help eliminate any HN clique. (I don't think there is a clique, but if there was this would be a simple enough fix.)
Give one exemple of a QandA site that has a better system than stackoverflow at that scale(i insist on the latter).There is none,because nobody has done better.
> Communities don't scale, so allow them to perform their own version of cell-division to remain highly relevant to their members.
Communities scale when they have strict rules that help promote civil discussions and interesting content.
The reason it's the wrong question is that Q&A is merely one form of communication that can exist within a community.
Conversations (forums) are another.
News/Link/Image sharing (the reddits, HNs, Diggs, Slashdot, etc) are another.
Even e-commerce has communities (through reviews and recommendations - Amazon reviews are an example).
Communities are merely groups of people that have a shared interest and agree to use some form of communication to collaborate around that interest.
I would argue that Reddit is a great example of a community that allows the type of division I describe (through subreddits).
Reddit shows that by doing so that they are able to keep the quality very high with a low and highly varied moderation policy at every applicable level of scope.
Communities don't scale. But providing tools that allow them to naturally divide into smaller communities increases the total size of that group of communities whilst retaining a high quality and low moderation effort within each area.
You've edited to add another line, but maybe you want to read this: http://shirky.com/writings/community_scale.html (Audiences scale, communities don't) .
Also, I think the Tragedy of the Commons applies http://dieoff.org/page95.htm and on Kuro5hin back in the day that argument was made fairly well and relates to the problems of scaling a community: http://www.kuro5hin.org/comments/2002/1/17/21155/1564/46#46
You're basically saying SO system is broken, I say it is not because nobody has done better at that scale. Doesnt mean it is perfect,just mean it's the best thing we've come up with yet.You cant prove me wrong on that.
And SO is a QandA , it's not an image/link/sharing recommendation system, you talk about all these sites and pretend like they play in the same category as SO,that would make them comparable to SO.They are not.
They are all a form of content management system for a community or group.
And I'm not saying SO is broken, I'm saying communities don't scale. You can certainly tweak a community to get it farther down the road than other comparable communities (tags do this well for SO), but to imagine you've dodged the reality that communities don't scale is wrong.
Instead we should look at how things scale in societies, and they do so by splitting themselves into manageable sized groups... cliques, microcosms of the whole, each potentially a part of a larger clique and host to ever smaller cliques but all with the same capabilities.
You cannot scale a single community, but you can perform a sleight of hand (e.g. subreddits) to allow a natural sub-division of the whole into many smaller communities that collectively have scaled the parent microcosm (the parent itself is a subset of a society or the larger global population).
Disclaimer: I build community software, and I realised I've gone and used the company name in my writing.
Ok, its not at the same scale, because it has a narrower focus, but PerlMonks is better for Perl questions and encourages the sort of discussion that SO hates. (It probably does have as many Perl specific questions as SO though).
The styling is kind of outdated now, but the content is better. Unfortunately it is Perl specific, and I am mainly using Python these days. You would look up how to do something and come away with more knowledge of the language and reason why things are done, rather than getting just enough material to copy paste until your code works.
For example: "Should I use NoSQL or an ACID based approach to my xyz development issue?" This is the type of issue that is common and without an explicit answer and is the type of question that will be closed because it requires an opinion or may lead to arguments.
It is almost unbelievable to me the number of times I have found great information in SO questions/answers that have been closed by some mod for the above reasons.
What I do nowadays is to pretend to be stupid, "I have the xyz issue, how do I do that with MySQL", and usually someone will comment that I should really be using a NoSQL solution, or how to do it in a relational database.
Example: I was looking for a canvas library for Gtk. (A canvas library gives you "retained mode" drawing, you say "here is a rectangle, there is a circle", and they stay there and you can manipulate them later on. Its the opposite of "immediate mode" where you have a paint handler that redraws the screen each time. It has nothing to do with HTML5 Canvas.) There are a couple of Gtk canvas libraries, but most of them seem no longer developed and they have various issues. Its also very confusing since some are named very similarly. I posted a nice, informed question asking what libraries are out there that fulful certain criteria, and are still maintained. The question was closed in 5 minutes, and later even deleted. A few days later I posted another question, pretending to be clueless, asking "where is the canvas widget in Gtk? I know there is one but I can't make it work". Then, I got helpful comments like "AFAIK there is none built in, but I recommend this library...". The irony is that the non-deleted question is not very helpful to anybody, but the original one would have been an excellent reference.
When you have to jump through silly hoops to ask your question, something is clearly wrong with the community.
The principle that closing questions avoids arguments is causing serious arguments. :) So - yes, something is broken.
SO needs to decide if it's:
1. A Wiki-like repository of canonical solutions to common coding problems.
2. A mentoring network for professionals.
3. A mentoring and training network for amateurs/students with wildly varying degrees of actual clue and potential clue.
4. A social network for people who like talking about code.
5. A way for coders to advertise their skills to employers.
6. An industry forum for debate about best practices.
At the moment different users are expecting different things from it - which is never going to work, because those goals are mutually exclusive.
SO might be saved if it splits into different sub-forms with explicit cultural differences and user backgrounds.
Also - code academy schools with principles like 'no feigned surprise' and 'don't be a dick' have a lead on this. It's possible SO would have worked better with those principles from the start.
Realizing that these softer questions are very likely to stray into the discussion and debate realm the caretaker community of programmers.se can be very active in closing the questions (also with only ~50 questions/day, one can look at every question each day).
The exact phrasing of the "Should I use NoSQL or an ACID based approach..." question would likely run into this and cite the Gorilla vs Shark blog post ( http://blog.stackoverflow.com/2011/08/gorilla-vs-shark/ ) and close the question as a recommendation question.
However, if you went through and wrote it "Here is my problem, here is my design, here are the potential issues that I see with that design, would switching the database from A to B solve these issues without creating worse new ones?" it would likely be a question that remains open.
Programmers.SE really does try for a higher threshold of quality than stack overflow in that with higher quality questions it is possible to attract people who will give high quality answers.
One bit to note is that with a small amount of reputation on any stack exchange site, someone can get into the chat part of the site (the minimum rep is to keep the spammers out) where discussions are completely appropriate.
All of the Stack Exchange sites are designed around the "problem and solution" model. Furthermore, the model was designed to avoid some issues of the scale of community by making discussion difficult and not appropriate. To that end, I'd suggest reading A Group Is Its Own Worst Enemy http://www.shirky.com/writings/group_enemy.html
Much of the problems that Stack Overflow in particular is facing (compared to the smaller stack exchange sites) is a clash between the core group (read that group article) and the endless september.
It saddens me, but I do believe the endless september is winning in that the core group lacks the numbers or the tool to properly defend itself within the system.
It depends on too many factors to encourage an accurate aOnly you knows your requirements.
a good SO question is accurate,non trivial,with a reproducible test case.
Why dont you try Quora instead?Quora is made for that type of question.I'm personally not interested in Quora as I find its content quality quite poor.
I think you answered your own question yourself.
Also there are two more groups Mystikal doesn't see in his ambitions. One is the group of people who come from time to time to ask or answer some questions, moderate a little, just have fun and learn something. And there are also the people who actually work (I mean for money) to keep the community going. These people often are just interested to calm everything down. I think these two groups should not be underestimated because often they are the reason it didn't break completely. They don't need to voice their opinion to every single post, so they are not as visible. But they also don't have beef with anybody and they provide actual content most of the time, because that's the only reason they came in the first place.
One thing i wish I could do is to star a question in the question listing without visiting the actual question,so i can pick it up later,like a quick bookmark.Also i'd like to see more questions per page.
I have noticed some of the issues mentioned by others, like the overly zealous duplicate hunters and brainless comebacks like "You shouldn't do it that way". That's just line noise to me. I fast forward past it and find answers that save me hours of time.
It seems that someone out there has already asked nearly every question I come up with. There's not always an answer that I can use, but at least it's good to see someone else formulating my question a little differently.
I guess I don't really fit into the OP's 1-4 categories. I'm just a person who finds SO useful about once a week or so. I don't have the time or the deep knowledge to be answering questions on a daily basis and racking up huge karma. Just thankful the service exists, and have put in my 2 cents a few times when I had something useful to contribute.
A lot of the time, how quickly you can post your answer is the single most important factor in how many upvotes you'll get. It doesn't matter how thoroughly you research the topic. Too many answerers (#3 "repwhores") are trying to beat the clock, half of them don't even read the question. If you waste 30 seconds trying to format your code or making sure that your solution actually works in jsfiddle, two other people will have already answered the question and the OP might even have accepted one of them. You know what's even worse? While you're still writing your answer, a message pops up and helpfully tells you that this has happened. Thanks a lot! Stop writing and close the damn tab.
The whole system is rigged to discourage time-consuming research. The front page above the fold is always reserved for questions from the last 2-3 minutes, which sends a not-so-subtle message that if you can't grab someone's attention in the next 2-3 minutes, whatever you write will probably be buried forever.
A few years ago, I used to repwhore. It's addictive, but I quit. Now I prefer to write long-form, comprehensive, thoroughly researched answers. On HN I feel confident in doing so, because I know that the community encourages that kind of behavior. On SO I rarely post any answers anymore, because I'm pretty sure that nobody will read them if it takes more than a few minutes to read or write.
New users need to prove that they have done research, this can be done with a few questions like "name the three google search terms that you have used to find a solution", "how much time did you spend on researching?" (easily faked, but maybe it gives people a hint to step back and try harder).
There could also be a new-user queue where higher reputation users would review a question (but are unable to answer it) before it can go live, with the possibility to go back and forth before the question goes online.
In my blog post I have detailed what I'd propose:
The other thing is that, increasingly, the kind of questions that would a) help me and b) I could answer with expertise are the kind of questions that are banned on the various SE sites. SE has ceased being useful to me a while ago.
What kind of question are you referring to that are banned?
The problem is, after ~10 years at the university, studying and teaching, I'm basically an expert in "homework". I can answer most university-level questions. I prefer answering (and asking) questions where the answer is "do this, then this, and then you get that", maybe with a few formulas, to a few paragraphs of prose. After all, I personally think that fits better with the SE model and with physics. But actually, what's welcome at the moment are mostly "conceptional" questions where an answer explains an abstract concept with prose. The community has narrowed down the allowed scope a lot out of fear of 1) low-level questions, and 2) accidentally helping somebody with their homework (god forbid!). But instead of getting more expert-level questions, they get less mid-level questions. I've found that I can currently neither ask nor answer anything there.
This issue is compounded by the flood of naive questions: patronizing users will thus spend less time reading decently written questions/answers/comments, and their reading comprehension will suffer from that. End result: even if you posted something that was actually helpful, you can easily get downvoted.
I am also surprised at how many suggested edits are anti-pattern. Quite often there will be a question where the original starts with 'I am...' and someone has suggested changing that to 'I'm...'. Er.. No!!! It would truly annoy me if my own questions (written 'BBC Style Guide') were reduced to pigeon English in such soul destroying ways.
Added to your proposal, and wherever you are able to get with it, something simple can be done with the questions at time of entry. Much like the BBC has a Style Guide for their journalists to live by, so should Stack Overflow. There should also be some basic checks against it when someone asks a question. If the question contains 'plz' as a word and it is not in a code block then that should trigger some 'read the style guide before you ask questions' response.
I do understand that the site is for everyone regardless of ability with written English, however, a little note saying "in formal English we use 'I am...' instead of 'I'm...'" would actually be useful to know for anyone that does not have English as their first language.
Let's take a real world example:
Hello I started making an aplication on adroid, it's a simble BMI Calculator. The aplication has 2 activities (Main with a menu, and BMICalculator with the widgets).
That opening 'Hello' and the spellinz of adenoids and thimble should just make this question an instant reject. Plain and simple.
Next real world example:
my if query doesn't work. I'm always getting the invalid class. No matter if the file is an jpeg, png or txt.
Suggested edit has added extra code to provide some context.:
This is a useful contribution, but the start of the question should be 'My' and not 'my'. This is basic primary school English that has been ignored.
So, to conclude, a lot of SO problems are garbage in, garbage out. A little bit of English language grammar and spelling - as has existed in basic versions of Word since the Windows 2.0 days - would help out enormously.
However, Stack Overflow is a reference work, and, for questions to have value to a wider audience, they do have to be to a certain standard. It is the same with Wikipedia, you don't get lazy lols plz txt spk in articles found there. People need to appreciate this when asking questions. Basic secondary school level English is all that is asked for, not anything more.
I have problems with how the 'edits' is game-ified in such a way that crimes of the English language pass the process. I also think that something could be done when questions are submitted to raise the bar.
I appreciate that people need an answer quick, so fwr kstrks and tipos mightnt mater to them but I don't see how the 'agreed on' forms of English, as taught at school, counts as pedantry. You should try being a moderator one day...
This is my main problem with all stack exchange sites. It rewards repwhores with power. I'd prefer that reputation and power were divorced somehow. I don't know how to determine who would make a good moderator... but just "someone who posts a lot" is not really a good metric.
But then there's the proliferation of SE sites with ambiguous/overlapping subject areas and only a handful of users. I'm solidly in the "don't give a shit" camp for those.
Some of it is because "The good questions have all been asked and answered," and some of it is that the legitimate complaints about absurdly low-quality questions have gotten people into such a mood that a so-so question from a veteran user makes them spend their own reputation to down-vote each others' answers.
Stack Overflow has an XY problem: the real problem is that a lot of questions are just bad because the barrier to entry has remained too low for too long, but it thinks the problem is the XY problem.
Me: I'm trying to do X, I know I need to do Y first but it doesn't work. Can someone
please go through the basic principles I need to do this thing.
Comment: Post some code
Me: (posts summary code but it's a difficult problem and you can't make a trivial example)
Comment: No idea
Me: I have this problem with X and Y, but it's not working.
Answer (2 upvotes): You should (onerous and time consuming alternative approach
suggestion with absolutely no evidence that it would solve the problem)
My comment: How do I know this is going to solve my problem ?
Comment: Try it first and come back.
Someone: (difficult and useful question) ?
0 answers, 5 upvotes
#1 result in Google; top 10 hits for every search on this and related subjects leads to
this question on SO or mirror sites
Me: (challenging question) ?
0 answers, 0 upvotes
Another person: Why does j++(++)++++++++++ not give me the answer I expect ?
110 answers, accepted answer receives 200+ upvotes, question has 1000 upvotes and is
locked because of too many frivolous answers/comments
It's only a community problem when the community takes up a strong bias e.g. against the asker, and does things like closing questions aggressively. There is an underlying problem but the community has made it worse and closed off the natural compensation mechanisms.
As for lack of response to serious/challenging/useful questions (which already has a 'reputation' incentive) I'm afraid there's no way to solve that unless cash bounties will work.
- At the beginning it is fun and new you are a pioneer (phase discovery)
- Then you understand the concept and experiments its power (fun) and you have grown a culture with your alpha wave of compadres you become a native of the place;
- then it has success in a brutal fashion triggering a new massive phase of «new comers» (proportion of new might be bigger than the one of old), it is the mass immigration/colonization phase
- then there is a «cultural conflict» between the old and the new regarding the way to use the tool/to be part of community. This part can last a long time and I call it the Babel tower effect.
(I vaguely map the state machine described as a chronological effect)
Every community big enough and successful will suffer it. However in the process the «native» ideas are often killed, and the original success can be lost. Plus there is never a consensus, so some people will be feeling unwelcomed.
It can be seen optimistically as stochastic improvements (the pioneers will seed somewhere else and help discover new territories), or as a process of the mass integration the pioneers back into the crowd// normalization/colonization.
Internet may have many virtues but when it comes to human beings it does not change the eternal problem of «doing something together».
Every time you take part in improving the world and try to propose a worthfull alternative, there is a chance the culture will evolve in something different then what you help to build.
My advice is to fight the tendency for bitterness and leave these communities the same way Odysseus left Nausicaa.
The keyword stuffing in the sidebar often makes the question rank for searches for which it isn't even relevant.
This means that single users act up, directly towards the offenders of the rules. This creates a lot of drama. I think that shouldn't be necessary, it's the job of the system, not single users to notify them about bad behavior.
Someone creates an article in Wikipedia about a subject that is totally irrelevant for most people? It's fine. It's not as if I'm ever going to see it (as I only tend to see articles I search for), and a Wikipedia page doesn't exactly take a lot of space by today's standards. We have the technology to build a virtually unlimited repository of all human knowledge, with no effective physical limits, and some mods keep acting as if it had to fit into a physical bookshelf.
With SO it's the same, why should I care if a question is considered to be irrelevant or even a duplicate? If I search for it on Google and it contains reliable information that solves my problem, it's useful for me. If it's really irrelevant, I'm not going to search for it, and therefore it's not going to make me lose any of my time.
We have search tools that keep getting better and better and allow us to pinpoint what is useful for us among a vast sea of information. There's no need to spend valuable human time on deleting stuff, the search engine will filter it for me so that I get what I want, thank you very much!
To me, the gamification problem has simply led to what's really going on: users caring more about the score than about the quality of the content. 5 years ago, I can recall a single question eliciting awesome input from the likes of Jon Skeet, Marc Gravell, etc. While the scores were interesting (Skeet's rep off-the-charts), the content was fantastic.
Motivations are skewed, now. People are trying to build reputation as a number rather than content. What I'm surprised at is why anyone would want to drive up a high rep score backed with completely inane content? What's the point?
The gamification rules for the site seemed to have transitioned it from a knowledge center to nothing more than a game.
Better job offers? Or maybe just invisible internet points.
A better job offer due to a good Stack Overflow reputation score?
(I am working on a side project at the moment mainly to get around the problem I described, but this is taking a whole lot more time than answering a some SO questions.)
I get the sentiment, but it holds little value for me. (I'm in the potential employer category.) I find it pointless as a meter of competency.
> I am working on a side project at the moment mainly to get around the problem I described, but this is taking a whole lot more time than answering a some SO questions.
Think about this comment for a minute. A side project takes longer to complete and requires more discipline and concerted effort. SO questions are quick hits, small scope, and are basically lather-rinse-repeat (find a question, answer it.)
Care to hazard a guess which one of these choices of time I might find more appealing in a candidate?
It's like asking about formula one motor electronics, while not capable to even work on the simplest piece of electronics.
Stackoverflow really needs to adapt to these changing patterns of abuse.
If the problem is too many bad questions, the thing is there is no barrier to entry for asking a question. Charge people a dollar or even 50 cents, or even 25 cents - the point is anything but free. You'll see a much better quality of questions. Easier to whine about it, which is also easy and free.
Why not the Google answer, which is that search brings you "good" no matter how much "bad" there is?
My personal experience has been mixed with regards to how successfully my answers are accepted. On multiple occasions, I've answered questions first, only to have another answer accepted that contained the same content as mine but was posted hours later.
I don't know if this is a common experience or if my sample size is too small. In any case it's a bit frustrating.
After a year on Stack I started answering questions and still today don't hesitate to downvote users that don't understand what constitutes a valid question. I find people 'used' to react well commenting... "what did I do wrong?". Its the recent reaction to downvotes that changed.
I guess it's a vision opposite of the internet itself. Rather than "find one of a million pages that work for me" it is "there should only be one."
(In the spirit of the internet, perhaps if a question cannot be found by a simple search on SO, that IS a reason to ask again, and to fill the search slot.)
If the system isn't anonymous, people will try to use it for their personal reputation gains. See Github, Stackexchange, Wikipedia.
If the system promotes pseudo interaction, like votes, it will lead people to empathise posts, which they _think_ are good, but don't have to be. You don't have to conduct real interaction with the content and users, like writing and reading, you just have to click, which leads to easy manipulation from people who don't know anything real to contribute.
One of the bits in that is a note of a Stack Exchange for Software Recommendations - http://softwarerecs.stackexchange.com which can deal with recommendation questions. This is a social example of 'branch on incompatible policy' from vcs. http://www.bradapp.com/acme/branching/branch-creation.html#P...
Key to asking there is making sure there is enough information being presented so that someone can give the right recommendation: http://meta.softwarerecs.stackexchange.com/questions/336/
Whereas, the people following the `image-processing` and `face-recognition` would probably (my guess) not have closed your question as off-topic.
There could be a downside to the early entrants benefit. Sure, you can explore new territory and carve out a huge position, but you become a "Land Barron" in a sense, and no friend of later "squatters." (Relatedly, Bitcoin)
("sure I've got 20000 points, but they guy just climbing from 100 to 200 is a repwhore")
First, the reputation system is inadequate and there are many people who game it. SO tried some interesting things, but "accepted answers" and the push to accept answers has always sucked. It rewards rapid-fire, crappy responses instead of thorough ones. You'll often find people just copying the page summary from Google or some other tiny snippet of text without context so that they could post first and get the "accepted answer" checkmark and the upvotes that come from the short time at the top of the page. Someone else will take 20-30 minutes to type out a thorough, good response that considers ramifications and end up with nothing. There's no way to recognize multiple answers, so if multiple answers contain valuable information you have to pick one to favor. There's also no way to deprecate answers if new versions break things; the best you can hope for is that the OP will know about the change, remember giving that answer one day, and go back and edit it. You can't change acceptances once awarded, and some people will accept answers without even trying them.
Those basic flaws in the contrived reputation system have caused problems on SO since day one and deterred many good contributors who weren't interested in racing against amateurs who just wanted to copy and paste answers.
Second-most damaging imo is the aggressive insistence on moving everything to other StackExchange sites and everything becoming a closed or karmaless ("community wiki") question on SO. A lot of relevant things were killed off on SO and moved to obscure StackExchanges where they never got a good answer. This deterred contribution, especially on questions that were cross-disciplinary as your question would get stuck in a loop where moderators on SO would say "this should be on SuperUser" and moderators on SU would say "this should be on StackOverflow". Really it'd work fine on either. I think that part of why this got so out of hand was another component of the reputation system, that automatically gave those most likely to race to Google and copy and paste the first result moderation powers. If you give people shiny new toys, they'll want to use them, and you'll end up with a lot of unnecessary infractions being filed and stifling communication.
On top of all of that, a large reason SO even gained any popularity in the first place was the star power of Joel Spolsky. With such serious flaws in reputation systems, I'm honestly not sure that it would've gotten off the ground if not for his association.
I don't know that SO is ever going to grow out of these problems as they probably now feel their rep system is validated (falsely believing the rep system caused the site's success instead of acknowledging that the site is successful despite the rep system), and I think they've just relied on new people entering the groups outlined in this post. I don't know that they're going to run out of those people anytime soon, but it'll be interesting to see what happens.
I help people often on IRC with dev questions (so much so that I was given ops in a particular channel for a library), and it is kept professional for the most part - no badmouthing, no matter how simple the question. Just trying to figure out people's problems and giving them advice. SO seems to fail to do that often, and that's why I'm not interested in contributing.
- experts (users having rep above EXPERT_THRESHOLD, say 5000) want "interesting" questions
- most new questions are not interesting
- "new users" (having rep below some REGULAR_THRESHOLD, say 100) are not educated and have unrealistic expectations
- it is expensive for the community to manually educate new users
- asking questions is inexpensive for the asker, but answering questions is costly to the community (to research, comment, close, find dupes)
- it's hard for new users to gain rep by answering questions because rep-whores are more experienced with the site. thus new users are instead encouraged to gain rep by asking questions.
Some ideas mentioned on SE would help:
- require rep for asking questions
- give rep for finding duplicates (discouraging repwhores from answering dupes, encouraging dupe linking)
- give rep for taking a quiz about the 2-Minute Tour or other FAQs
Additionally, a training/welcome period for new users (during which they interact a slightly more among themselves than directly with experts) would go a long way toward fixing a lot of deeper issues. New user questions (which tend to be uninteresting dupes) would be hidden from experts for some period of time NEW_Q_DUR (say 1 day). During that time, only other new users or regular users can answer the question. Experts can un-hide them with a Setting but can only comment, not answer. Benefits:
- new/regular users (that care about the site) are incentivized to answer questions, find dupes, work with others at their rep-level and do some of the (educational) activities that experts see as menial, rather than just ask questions
- experts get a higher signal/noise ratio of interesting questions, as bad questions can be cleaned up by new/regular users and interesting questions will likely remain unanswered after NEW_Q_DUR (since new users tend to be less experienced and less able to answer difficult, good questions from other new users)
- dupe rep-whoring is mitigated because once a rep-whore becomes an expert, they cannot answer dupe questions without new/regular users having time NEW_Q_DUR to flag as dupe
- new user expectations are made more realistic. until they've participated a certain amount, they cannot expect to draw immediate attention from experts. also, they become aware of the dupe problem.
A caveat might be that new user questions with enough upvotes can become answerable by experts before the normal time limit. Also, if/when new user question quality improves, NEW_Q_DUR can be reduced.
Some very minor drawbacks:
- new users would be slightly deterred from asking certain questions because they do not value answers from non-experts (leading them to do more research on their own)
- more class-ful community, potentially creating stronger biases (I don't think this is too bad because class mobility is clear and feasible)
- some new users that would care about the site might instead be turned off by the welcome period on some principal and never participate
It's wikipedia, well that's where it's true value lies I think. But it's way to get content is 'suckering' people in thinking it's a Q&A site.
It's value to the community is amazing. But it is a chameleon.
Relevance. Not sure, perhaps if you dig to deep in anything the matrix spoils reality.
Beside that, SO is a good resource that pops up in the top Google search results.
So, if I have a question about xyz, type a few kwds and google-it, top 3-5 results are SO, then something else, then the 'official' docs. What? Wait: aren't the docs the most relevant trust-worthy correct answer? Docs always suck and SO is faster. Then hire SO wizards to write the docs and pay them dollars not karma ;)
What? Wait: aren't I way off topic? Did I piss you off? Did you get enough hugs as a child? Enough beer last night?
Happy weekend you wizards :)
PS: Pardon my typos and grammar. English not my mother tounge. Yes, there are programmers past the border ;)