How to make Stack Overflow a nice place
The site of Stack Overflow was designed to sit on two stools: to provide quick on-site help for the person who decided to ask, and to constitute sort of a knowledge base for people who are coming from Google search.
Although I don't find these goals mutually exclusive, the way they approached by Stack Overflow make them clash tremendously. There is a constant outcry from both sides:
- people who care for quality answers are appalled by the size of evergrowing pile of crap and the way Google chooses answers from this pile. Finding a good answer to some less common but still frequent problem is rather an accident than a rule
- people who come for help are bewildered by unprovoked mistreatment for mere asking a question. The hostility of Stack Overflow has become a meme long ago. And all attempts to change this situation are rather clumsy palliatives that unable to turn the tide because aimed at the symptoms and not the cause.
For many years I was pondering on the model that would satisfy both parties. And in the end I think it's quite simple. The problem is coming from the fact that both parts of the site are boiling in the same bowl. And all it needs is to be separated.
Stack Overflow declares itself "not a forum". But it needs to be. With one small tweak: a part of this forum, its inner workings, must be hidden from Google. There are people with a question and people willing to help? Let them be. Just don't show their product to Google. Only curated content must be exposed. This way the eternal controversy of Stack Overflow will disappear in a puff of smoke.
I see the process like this: the person asks a question, then the forum-like discussion ensues, where volunteers are unobstructed with their desire to help, making everyone happy. Duplicates can be proposed but not as a full-stop but as a mere suggestion. Any person may have a hard time comprehending or implementing the existing solution - so there is no point in denying them a personalized explanation.
Only this discussion must be hidden by default, by means of some SEO tools such as robots.txt or whatever. That's the key. With garbage sifted out, there will be no more controversy.
Then someone may sum up the discussion and come up with a gist, and elect it as either a new canonical answer or an addition to the existing answer. Making good answers is a constant job. Just like a software application that is never done in one take but rather being a continuous process, a good answer should be constantly updated:
- to refine the phrasing
- to cover edge cases previously not thought of
- to eliminate the collateral damage when some irrelevant part of the answer is left as in the question, being itself a bad practice
- to keep the answer up to date with new technologies and solutions
Writing canonical answers must be a completely distinct process. Although based on the question flow, it must be separated from it, with the aim of providing a canonical, generic answer, as opposed to ad hoc answers that are focused on the certain unique circumstances and therefore being inevitably too localized.
I believe it's a viable system because people will gladly adhere to any rules, only these rules must be clear and consistent.
I am not sure such fundamental changes are possible for a hulking giant of Stack Overflow. But I hope that someone will pick up the idea and come up with a site built on the aforementioned principle. The monetization model could be borrowed from Reddit, by selling tokens to reward answers, both ad hoc and canonical. There is actually a lot of things that can be done in this regard.