StackOverflow has caused quite a stir within the programming community, already being dubbed "CrackOverflow" due to its addictive nature, but has some of the hype really just made it "StackOverblown"?
Note: Any links to user profiles or questions on StackOverflow are not intended to be personal attacks against them, they simply reinforce some of the points I am trying to make here. Also, links to StackOverflow will require access to the beta if it has not yet been released.
What is StackOverflow?Straight from the "About" page on the StackOverflow blog:
It’s a collaborative programming community venture between Joel Spolsky and Jeff Atwood.In my opinion, it's a great idea, and one that is much needed by the programming community as a whole. We have tons of forums around, all doing their own thing. But we need a centralised location with good quality guys/girls there. Most of the forums I contribute on seem to be rapidly deteriorating in quality.
StackOverflow aims to do this by having some "unique" features:
- A rep system which allows users to vote on questions and answers given.
- "Badges" that are awarded for users, their questions and answers meeting certain criteria.
- Members can edit and work with all content (rep permitting) similar to that of a Wiki.
The Positives...So, lets start with the nice stuff so I have unlimited rant space for the negatives ;)
The "Honeymoon" Period was AwesomeI have to admit, when I first got into the StackOverflow beta, I was proper "loved up". I was singing its praises to every geek I knew, and even the "normies" (who stared back with glazed eyes). I had a real good feeling about it and liked the way it was going. I thoroughly enjoyed what was happening and thought the CrackOverflow title was well deserved. :)
It's Quick and EasyMuch like the drunk girl at the party, it's easy to pick up, doesn't take much talking to to get down to business and is easily accessible. Authentication is done via OpenID so there is not another password to remember. Profile information is minimal and the site speed is, well, speedy. As well as the actual site being speedy, it's also very fast to get answers from the community.
I <3 the Rep SystemI thought the rep system was a great idea. I am a firm believer that software is becoming, and should be a socially-aware affair. Humans are social. Software is used by humans. Ipso facto, software is social. The rep system allows the "cool" (maybe not a good choice of words for a geek community) to be elevated above Joe Average.
I <3 the Badges SystemA fun little edge to the rep system, the ability to get "badges" or awards for doing certain things is cool. Inspired by the XBOX 360 GamerCard system, it gives you something else to "work" for.
I Like Jeff & JoelMost geeks find it nice to see geek startups, especially geek startups doing well. I remember the good 'ol days when Google was this cute little search engine that not many people knew about and it worked. Yeah it kinda sucks they are now bent on world domination, but hey-ho. It was equally real nice to see Jeff & Joel's ideas unfolding and seeing the site pick up speed. No matter what I say here, I always hold these two gents in high regard.
... And The NegativesSadly there are a few more of these, I guess I get more caught up in concerns with StackOverflow rather than doing my StackOverflow-sunshine dance. :(
Note: Some of these are merely usability/feedback points.
The Rep SystemWhile the rep system is a huge plus, there are a huge amount of issues with it. It's a simple concept, but a complex ecosystem.
Farming/SeedingThere have been many questions that were created to simply get answers. Each answer and upvote means rep. This user in particular went through a phase of pretty much posting "What is <programming term>?". The user did not actually need to know the answer, they already knew it. They were doing so under the guise of "trying to build the library". This to me just reeks of "rep seeding/farming". Now, much like spam, if only one of these questions is upvoted, then the user has received "free" rep. So why not create a bot to simply start posting all the computer science terms I can muster? Yes, it may help the content of StackOverflow, but does that mean the user should get the rep?
It should be noted that this user did seem to stop after being flamed for it, however, the issue remains. This behaviour was only really picked up because they posted several questions in quick succession.
fastest gun in the west" (who is currently Bob Munden). This is basically the "fastest fingers first" issue.. People that answer quickly tend to get upvoted and even accepted even if their answer is wrong. This problem occurs for three main reasons:
- The person answering does not read the question properly in their haste.
- The person asking the question most likely doesn't know they are wrong.
- The people upvoting don't read the question properly either, or they don't know and "have a hunch" (or both!).
- The original poster should always maintain true ownership of the question.
- Jeff actually agreed with this at one point, but now seems to have u-turned on this as users cannot reclaim control of it.
- If the question is such a mess that the community needs to work so much on it, then it should be requested that the original asker fixes it (or it is fixed once). If that much discussion is required on a question then it is a badly worded question.
"I Want the Rep, the Whole Rep, and Nothing but the Rep"This is a classic attitude issue. There are too many arrogant geeks out there that just want to look good and somehow think a rep of 4000 makes them cooler than the other geeks. The problem is that geeks like this are bad geeks. These people just want to get as much rep as quickly as possible. They answer posts quickly and incorrectly, ask crap questions just to pull in little bits of rep here and there and generally just degrade the whole experience.
Question QualityAn obvious one really. We want good questions. StackOverflow is not Yahoo! Answers where anyone can ask anything. It's a programming community.
To get it into context, I ended up losing my rag one day and posting this sarcastic question: "What is a programming question?" (this has since been deleted). It had a wide range of interesting answers. The majority saying we want good, tough programming questions. Equally many said pretty much anything that remotely relates to programming.
"Good" vs. "Good for Me"This is something I picked up on quite recently. I find that I tend to upmod questions not that I can answer, but those that I can't due to their difficulty. To me, a "good question" is one that makes me think, makes me curious and want to find an answer. However, often simple questions get upvoted more simply because they know the answer. IMO, this makes no sense! That's not a "good" question, it's just an "easy" question! For example, I had a real bitch of a question on "serializing large, complex objects to XML". I, and others found this tough, yet it only received 3 upvotes. Yet this question on "use of the var keyword", which is pretty subjective and requires no real thought at all got 21 upvotes! Can you say WTF?
OrganisationSince its launch, the rate at which questions are being posted has increased massively. In the mess of questions we need a way to be able to find ones that answer our question, or we can answer quickly!
Search SupportThe search functionality is improving. However, is it still limited (for example, no OR search). It also has limited filtering options. One major problem for me is that it displays searches the answers as well as questions. So, you can end up with a page of results that point to one question (which may not help you). Tag searching is also improving but still limited and even misunderstood by its creator (see the comments).
Finding Your StackI am a C# developer. I work on Windows and ASP.NET applications. I know nothing about Java, Python, Ruby and the many other languages out there. I can offer limited advice on architecture and design. Now, currently, it is bloody difficult for me to find questions with the appropriate tags so I can assist. I propose:
"Smart Lists" - these should be lists that each user can create that you can specify tags to search for. For example, I could create three "Windows" (which searches for items tagged "C# WinForms"), "Web" (tagged "ASP.NET") and Architecture (tagged "architecture"). Now, a web developer who works on the LAMP stack may have a "Web" tab, but entirely different tags.I am currently getting around this by having Launchy shortcuts set up for my stacks.
Sort Order's Applied to QuestionsI find these can be kind of "weird".. I question their real use. This may be largely due to the problems described, for example the "by Votes" sort. Highly voted questions tend to either be rubbish questions (the first is the unofficial FAQ, 3rd is Bob Munden) or questions already answered. Do I want to see them? Nope. "Hot"? May not be on my stack, do I care? Nope. "Active"? Well, I don't see the real difference between this and hot so, nope.
ModerationI think one of the biggest issues with user-driven content is managing to keep it under control. One problem the Internet has had since hitting the masses is anonymity. People love it because they can become an absolute asshole and no-one will ever know! Now, I am certainly not suggesting that StackOverflow users are asshole's, far from it in fact. But there needs to be some control.
Contested AnswersTo help combat the problem noted above about the incorrect answers, I think people past a certain rep should be able to "contest" the answer (rather than just comment) this makes is very obvious to visitors that the answer is in debate, much like Wikipedia does with its maintenance policies/guidelines.
"Hit and Run" QuestionsQuestions that have been asked, but the user asking does not accept an answer. Yes, while "Votes" view will pushed voted answers to the top, I feel that experts should be able to accept that answer on behalf of the user who asked the question (so the person contributing gets credit). This should be obvious it has taken place, and of course the user can always "unaccept".
Comments Help, But Are Easy to MissComments were recently added, which enable users to add notes to questions and answers. While these help a lot, they are hidden by default and they are not obvious when shown.. So they can often go missed.
Lack of "Solid" GuidelinesThe guidelines set in the StackOverflow FAQ are really non-specific. There is no real attention made to moderation policy which I find deeply worrying, sometimes those with moderation powers can be worse than the users! I think this really needs to be addressed so those that are moderating are all working towards a common goal.
In SummaryI started out incredibly positive about StackOverflow.. This has now changed. Don't get me wrong I am still positive about it, but lets just say I am not holding my breath. There is still a lot of work to be done, and it is only going to get harder following it coming out of beta. Watch this space I will blog more and keep on this.
In my opinion StackOverflow could be the absolute best thing for the programming community, but has the potential to be one of the greatest failures, in that it's a great idea but implemented badly.
However, Jeff & Joel are smart guys, and I do have faith that they won't let it get to that. But, we are all human and no one is infallible. :)
What are your thoughts on the above? Do you have any points you would like to add? I know there is a lot here and I am bound to have missed something!
Share: digg it! | del.icio.us | Live | Technorati | Facebook