Monday, October 13, 2008

Why Reddit is Better than Stack Overflow (WAAAAY Better)

Ok, so to start, I am a recovering former addict of crackoverfl.... I mean stackoverflow.com. Honest! Look at my rank on the site (I go by "Mike Stone"). As I write this, I am 6th on the list of users sorted by reputation... and just a week or so ago I was holding steady at 3rd for quite a while. As you read this, I may not even be on that first page anymore.

There were times when I would be constantly looking for questions I could answer well... and other times I attempted to answer anything at all (that didn't go so well usually).

As a reformed addict, I think I can safely say a few things about the site. Whether they hold sway for you, or whether you agree or not... frankly I don't care much... because if you disagree, you are one of THEM....

So here it goes... Reddit has 1 thing going for it that I don't think Jeff Atwood will ever have... trust in the cloud.

That's it.

That's all there is to it.

The thing is, this is a touchy subject. In case you don't know what I'm talking about, I am alluding to the "close question" feature that Jeff so dogmatically believes is helping steer the users into asking the "right" questions. Instead, it is giving some users a power trip, because after all, they know what is good for the site. So they go ahead and close questions that clearly don't belong. Except some people find value in those questions, and it has a negative effect on the asker if they are powerless to disagree and change the decision.

If you are in the "we need to steer users towards our opinions" camp... I'll tell you right now that I hate you. Don't take it personally... what I really mean is I hate your stance, but it's more fun to just say I hate you. I don't like the power trip you feel, and I don't like that you are forcing your opinion down on my throat what should and should not be open for discussion. Yeah, the D word... I know Jeff doesn't like discussion on his precious baby of a site, but sometimes I want to go to the site for discussion. It's fun to answer answerable questions, and it's also fun to discuss interesting arguable questions with intelligent people (such as my most popular question). I want to do both, and I want to see both types of questions thrive.

But... Closing Questions is Working!

This is the argument I've seen from Jeff Atwood. He says closing questions is working, and he links to questions that have been closed as so-called proof. We have exchanged some emails, and when he sends me the links, I look at them. Every single time I've looked at his examples of questions that deserved to be closed, it is the same damn thing. The questions are either duplicates, have a negative vote total, have been deleted (likely because of offensive count), or they are gray area questions that more often than not I would rather see them on the site.

Duplicates Should be Closed, Right?

This is the single best reason for having the close question feature, except I think it is a problem best solved with a different, unimplemented feature. At least half the questions I see closed are marked as duplicates. Wouldn't it be neat if instead of closing duplicates, all the duplicates were congealed into 1 massive blob of a question? You go to one, and you see the blob... and all the questions are available, able to morph between the different forms via tabs (or some other mechanism). This way, the answers to all these similar questions can be viewed at once without having to scan for links to follow (and if you can't provide a link to the duplicate in question, don't close it as a duplicate... that angers me more than the close feature in general). The oldest one could even always be the first tab, so there is 1 canonical place to get the best answers, and all the others turn into alternative forms with possible nuggets of gold awaiting you to click its tab.

I have a secret about duplicate questions though... Jeff actually likes keeping duplicates around! If you don't believe me, here's a quote from an email he sent me:

There's no value in most closed questions, with the exception of edited duplicates which allow better search matching. People have the uncanny ability to ask the exact same question using totally different words, so we need these as breadcrumb trails.

So if duplicates are an important part of the ecosystem, and it's the only good use of closed questions (which I hope to show before you stop reading), then closing questions shouldn't be necessary at all.....

This One is Negatively Voted... Isn't That Proof Closed Questions ARE Working?

Not exactly. If it's negatively voted, this seems perfect proof that the voting system was a good system to implement. If a question is negatively voted, then people should be able to watch "hot" tabs and just not even see the negatively voted questions. There will be plenty of people watching all new questions who will vote it up if it was voted down inappropriately, and those same people will continue to vote it down if it really should stay down. Thus... why does it need to be closed?

If someone finds value in a negatively voted question, what is the harm in keeping it around? If the asker gets an answer he/she is happy with, who loses? If it is tagged appropriately, it probably won't even show up in the tag filters people set up (or the site automatically figures out) so that people who would rather not see it, won't see it.

So those questions don't REALLY need to be closed... voting dealt with them.

I Saw a REALLY Offensive Question Closed... That's Good Right?

These questions get marked offensive, and they get automatically deleted after 5 offensive marks. That is the purpose of the offensive feature, and it deals with those questions well... closing them is like closing a negatively voted question. Saying it is bad twice doesn't make it extra bad... just 1 way to say it is bad is all that is really needed (well, 1 way to say it's bad, and one to say it's REALLY bad... hense downvotes and offensive). I just laugh when I see a question that is negatively voted, marked offensive a couple times AND closed. I wonder if those people closing it think they actually did something valuable with their time....

What About The Rest?

So the rest are basically questions that are running dead even at 0 votes, or have positive votes. If this is the case... doesn't that mean someone is finding value in the question? This group is pretty varied. Some of them are polls on the best X, where X can range from programming comics to the best reference guide. Some people don't like polls, but I personally find them entertaining to participate in, and even sometimes find truly useful information.

You know who else likes polls on Stack Overflow? Joel Spolsky. That's right, the cofounder of the site talks about polls in his launch post, while Jeff grits his teeth when Joel mentions them on the podcast.

A lot of the other questions are discussions, which I've already mentioned I find value in. They help build the community, and provide outlets for your ideas or disagreements with your felow programmers.

Even more of the gray zones are borderline programming questions... usually they are somehow of interest to programmers, or IT people in general, so it seems to me they have a home there (or should, anyways). These range from Virtual Machine questions, to general troubleshooting problems with an OS or application that programmers will typically use. If they are tagged right, why can't they be on the site? If you are looking in your comfort zone of tags, you will never see the VirtualBox, or Ubuntu questions, so why can't someone get real use out of the site on such marginally programming related subjects?

So What Makes Reddit Better? I Heard it Sucks!

It seems a lot of people have lost faith in Reddit, and feel it has nothing left to offer. I find it quite the contrary... it is so addictive that I have to avoid it if I want to get any work done. The key to Reddit's success, I think, is the clever combination of subgroups and voting. The voting lets the interesting topics rise to the top. The subgroups keep those topics interesting for those looking at the group. That's why I always only go to programming.reddit.com, because every time I go there, I see really interesting articles about programming. It NEVER lets me down.

Stack Overflow could do the exact same thing with their implementation of tags and voting. Filter the interesting stuff to the top with voting, and keep it interesting to me with my focused set of tags. Think of each tag as a focused niche group where the stuff that rises with voting is going to be interesting to the members of that niche group. The only stuff that group of people would want to close are all stuck in other tags that don't even appear for them.

The next time you would close a question... reconsider leaving it open for someone in that niche group that would enjoy participating in the question.

So, that's the key, in my view. Reddit trusts the cloud and refines it with subgroups and it works. Jeff Atwood doesn't trust the cloud, and he turns people like me away who favor more open systems.

What of Proof?

Well, I'm not going to compile a long list of questions to prove my point... I've seen the proof with my eyes, and if I haven't convinced you that closing questions are unnecessary, I never will. I will, however, give you a short list of some questions I reopened because I felt strongly that they shouldn't have been closed. If you agree that any of these shouldn't have been closed, then maybe there are more that shouldn't have been closed.

The truly sad thing is that some questions that shouldn't be closed lose their chance at getting a good answer because someone was denied the ability to provide a good answer because of 1 selfish person that felt the need to push his/her opinion on everyone else.
The first was interesting to me because I actually want a low energy low cost linux box. Jeff Atwood has himself blogged about this on his programming blog, so it seems appropriate.

The second and third are VM questions... I use VMs daily for my programming work, so their effective use is of much interest to me (though I have not run into these particular issues).

The final one was something I wanted to thrive because the answers make for entertaining reads. Why can't we live with some humor now and then?

Final Thoughts

So, before I relinquish my control over you (as I apparently have some control, if you've gotten this far), I want to say a couple last minute things. I weened myself off Stack Overflow because I was sick of seeing questions closed that shouldn't be. I think it is a travesty to see people force their opinion of what to discuss on others. Though the number of closed questions may be small, it is unjust enough in my opinion that Stack Overflow is not worth my traffic, or my answers. Furthermore, it makes me depressed to see Jeff have so little faith in the system and community he built. Despite drastically reducing my usage, I reserve the right to ask questions when I have one I need answered... after all, I wouldn't be this impassioned if it weren't a good site!

If you don't like closed questions either, email Jeff Atwood (you can find his email on his blog if you look for it). Alternatively, open a uservoice ticket. The more people opening tickets the better... he might submit to pressure if he has to get rid of the tickets over and over. Just stick to 1 ticket though... unique users posting requests is a lot better than abuse of the uservoice system.

UPDATE:
cky brings up a great point in the comments that removing the close question feature will also do harm in causing other users to leave... a compromise between the 2 camps is probably the best solution. Some system of check/balance for the close question feature would be good, such as a simple majority vote. Other fair alternatives would be welcome in my book as well.

10 comments:

cky said...

This is my view on the topic, after long consideration. You are free to like it or lump it, as you please. :-)

I think some sort of ability to close offtopic material is important. I just don't like the way it's currently done.

To clarify my first point, the site has a charter. Think of it as the constitution for the site, if you want. Yes, this charter is open to change if the community as a whole wants to change it, much like a nation's constitution can be amended. However, as long as the charter is there, it should be enforced.

My second point is that the method of enforcement should be fair: it should have a consistent, transparent procedure, and provide an open means of appeal. This point, I think, Stack Overflow currently fails. Heck, even Wikipedia, which has standard procedures galore, still gets criticised for its shortcomings in transparency.

I think as Stack Overflow grows, it's not going to be just a bunch of programmers, but will instead require a social structure, much as Wikipedia has. People with positions of responsibility, who are elected into such positions.

I envision that such people will work according to a duty roster, where at an allotted schedule, they review posts for closing (when other users report them, say). A different roster of elected "trusted" people can then handle appeals, if necessary.

Now, all this can also be open to abuse. Just look at the legal system of any country. But I think, no matter how well or poorly implemented, a transparent system is better for the community than an opaque one.

So my conclusion is this: As the community grows, there should be (as a high priority) a formal system for handling the people aspects (especially where conflicts arise) of the community. Violations of the site charter, intentional or not, should be dealt with, in a fair, open way.

Deciding how to do this, and what constitutes fair and open, is a discussion the whole community needs to engage in. Already.

Derek Park said...

I added another request for this on uservoice. I don't think Jeff is going to listen, though. He doesn't honestly seem to take disagreement very well. He doesn't appear to get angry when people disagree. He just doesn't seem to listen.

We've seen this numerous times with Joel. Joel will make a valid criticism (e.g. that closing questions adds no value), and Jeff dismisses it out of hand. We've also seen it with other team members. e.g. Jeff asserted that allowing a 5-minute non-recorded edit history was a necessity. At least one other developer disagreed. So did Joel. We've still got the 5-minute window, though, which serves no purpose except to occasionally make a commenter look stupid when an answer or question is quickly changed.

Mike Stone said...

cky: I think that is a fair stance, and your ideas would certainly be much better than the state of affairs now. However, I still stand by my belief that closing questions is entirely unnecessary. Enough people know the charter and are interested in keeping it alive that I think downvotes of offtopic questions will be a strong tool in maintaining the charter (and have been from what I've seen).

Beyond that, tags can keep the offtopic discussions that DO exist out of the way of the people that don't want to see them.

You mention that as the site grows, we will have more than just programmers... and that could pose a threat to keeping the site useful to the programmers. However, I still believe tags could solve that problem by keeping you in your niche areas of interest, so all the junk would just be invisible.

I find it also interesting that the goal of typical use of the site is split among the 2 founders... Jeff doesn't seem to like anything remotely offtopic, but tolerates some of it, while Joel encourages it, both on the podcast and in his blog posts. Their stances on polling alone is interestingly divided as well. This doesn't really help keep the charter cohesive, and probably should be resolved publicly.

Regardless of what happens, I like the idea of a fairer way to deal with questions that "don't belong." If nothing else, I think it would be awesome to see closing questions turn into a more democratic decision (among so-called "trusted" users with high rep, or even elected officials that you mention) so Stack Overflow can fully harness the wisdom of the cloud, and not place such power in the hands of individual high rep users.

You could argue that the decision to close can be overruled now, but I think there is significant damage to a question that is closed before it gets much publicity, so reopening can't undo the lost potential answers. This is why I think it is critical to have a more fair way of closing, if the closing feature has to exist.

Chris K. Jester-Young said...

@Mike: I think we're on different pages here. :-)

I appreciate that you want closing abolished, and that you're willing to boycott the site in order to make your point. And if enough high-rep people do this, I feel it will affect the site (community) in significant ways.

I worry that if closing does get abolished, then people who liked closing will boycott the site. This is no way to nurture the community either.

So there are only two solutions that I see: 1. find a compromise; 2. admit that there's no pleasing everybody. 2 is the status quo, with Jeff saying, "well, I disagree, so there". 1 is what's proposed in my previous post.

When I said "I think as Stack Overflow grows, it's not going to be just a bunch of programmers, but will instead require a social structure", I do not mean there will be lots of non-programmers coming to the site filling it with offtopic posts. Not at all. Rather I mean that when any community gets large, politics is inevitable.

Look at the Debian project, for example. It's at its core a bunch of dedicated coders, but they have lots of structures and processes (including a fully spelt-out voting system) to keep everything running smoothly, and keep disagreements controllable.

As the Stack Overflow community approaches the size of the Debian community, I dare say that something similar will be necessary. I would hate to see the SO community collapse under its own weight, due to too many people disagreeing over major things.

And I agree with you that the differences between the co-founders should be resolved publicly, with some reasonable (and not grudging) compromise between them.

I also agree that the current way closing is done does do damage to both the poster's morale and the question's later viability, even if reversed (shortly) later, and that's why there needs to be a discussion, such as what we're having now, about how to do it better.

Your mileage may vary. :-)

Trevor Power said...

I really like your point about having all the duplicates merged together.

I have always considered duplicates as being a nuisance in an application like stackoverflow, an imperfection or noise that needs to be ignored. But as you quoted Jeff saying 'we need these as breadcrumb trails'. Why keep them as trails when they can just be alternative worded questions. This can only make it easier to find what you are looking for.

Now that you have pointed it out, the act of closing duplicate questions looks more like a flaw in the system. The fact that you can't find a question because you word it differently looks like a big gaping hole that can be easily fixed by allowing duplicate questions in a formal manner, like you suggest.

Even wikipedia allow for some duplication of titles that point to the same article, it's just common sense.

Chris K. Jester-Young said...

Your new year present has arrived: http://blog.stackoverflow.com/2008/12/i-move-to-close-this-question/ :-)

gyaresu said...

I concur.

Anonymous said...

Is it just me - or did someone (Jeff) reopen all those questions, you had as examples of closed?

Anonymous said...

Please vote for reopen :D http://stackoverflow.com/questions/12305162/kernel-hacking-methodology-how-to-find-out-where-to-hack-the-linux-kernel

Calmarius said...

This blogpost is quite old. But I observed that this problem just got lot worse.

Namely: zero tolerance towards every question that's cannot be answered correctly by a single person.

Despite being on topic, and you cannot find good resources on the internet, you cannot ask "What optimizations C compilers can do nowadays?" on StackOverflow because it will got closed in no time simply because I asked for a list. I asked this question (but I was specific to GCC), and it got closed the 30 minutes... Then I rage deleted the question...

No polling, no personal preference or something like that. Just an objective question.

The community has become extremely hostile I think.

I'm writing a compiler nowadays and I just wanted to learn about the optimization techniques that exist. No chance to learn on SO anymore.