September 16, 2008
I'm in no way trying to conflate this with the meaning of my last blog post, but after a six month gestation, we just gave birth to a public website.
Of course, I'm making a sly little joke here about community, but I really believe in this stuff. Stack Overflow is, as much as I could make it, an effort of collective programmer community.
Here's the original vision statement for Stack Overflow from back in April:
So what is stackoverflow?
From day one, my blog has been about putting helpful information out into the world. I never had any particular aspirations for this blog to become what it is today; I'm humbled and gratified by its amazing success. It has quite literally changed my life. Blogs are fantastic resources, but as much as I might encourage my fellow programmers to blog, not everyone has the time or inclination to start a blog. There's far too much great programming information trapped in forums, buried in online help, or hidden away in books that nobody buys any more. We'd like to unlock all that. Let's create something that makes it easy to participate, and put it online in a form that is trivially easy to find.
Are you familiar with the movie pitch formula?
Stackoverflow is sort of like the anti-experts-exchange (minus the nausea-inducing sleaze and quasi-legal search engine gaming) meets wikipedia meets programming reddit. It is by programmers, for programmers, with the ultimate intent of collectively increasing the sum total of good programming knowledge in the world. No matter what programming language you use, or what operating system you call home. Better programming is our goal.
Although reaction has generally been positive, there has been a bit of backlash. Some have promoted the idea that Stack Overflow will only contribute to the increasing dumbenation of the world's developers. I think this is, in a word, horsecrap. I liked Joel's response to this in podcast 21 (mp3):
And it is true that we are all, as developers, hopelessly incompetent. The goal of a site like Stack Overflow is to somehow share the correct knowledge wherever it may be as it is scattered throughout the universe, and to cause that to be voted up and to be spread amongst us. There's this big universe of dumb programmers, and I'm one of them, and we all have a little bit of knowledge. I may know how to do this thing in VB6 which may be useful to somebody one day who's trying to maintain some ridiculously old piece of crap code. We all have these little tiny pieces of information and if we can just contribute a little bit, that information gets amplified, and maybe a thousand other dumb developers will benefit from my one little piece of good information.
And here's my response, from the same podcast episode, to all those who turn up their noses at community sites like this, preferring the input of "experts":
The idea that you have all these experts waiting in the wings to do stuff is an illusion in my experience. There's really just a bunch of amateurs muddling along trying to do things together. The people that are truly experts are too busy to even help, right? And if the experts are too busy to help, what difference does it really make if there are experts at all. Because the whole point of this endeavor is helping other developers, and whether you're an expert or not, if you have no time to help, you're not really contributing to the solution.
Stack Overflow is by no means done. We're still technically in public beta. But I believe what we have -- the confluence of wiki, discussion, blog, and reddit/digg ranking systems -- is a fair representation of our original vision for Stack Overflow.
It's a place where a busy programmer can invest a few minutes with as little friction as possible, and get something tangible from the community in return.
But who cares what I think; my opinion holds no particular weight. I'm just a member. This is our site. You tell me: how dumb are we?
Posted by Jeff Atwood
You guys need to allow image uploads and QUIT PIGGY-BACKING.
I typed nbsp; in my answer, and the ampersand didn't get HTML encoded!!
I hope you acknowledged the people at despair.com for borrowing their None of Us is as Dumb as All of Us poster design.
I m really addicted with this great site and your are my ASP.net MVC hero.
where did you get the comment setup like this?
Averaging about one post a week. Impressive.
1) Don't understand the issues with openid. I struggled at first to learn the system but since have had no issues.
2) The site is a bit elitist. I consider myself a crappy programmer and am still learning (even after 5 years out of school). The technologies are moving quickly and seems as soon as I picked up the nuances of vs2005, vs2008 came out. Anyways I've asked basic how to questions and received very little in the way of votes. Although I think they were valid beginner/intermediate questions.
If Software Development is a game, then that makes Stack Overflow the new World of Warcraft.
If StackOverflow is the new World of Warcraft, then I'm a undead shadowpriest.
I am now in a quandry... I endeavour to be a good Stacker and am remaining anonymous because people are abusing their power.
One thread was closed using not programming related when the question was in reality a design related question.
The person who closed it had posted about what mouse should i use (superfluously added a as a programmer like a mouse helps you code - or - What workplace exercises do you do?
What's good for the goose is good for the gander ...
On the other hand give Justin a Platinum Badge ... and list his rep as a mobius ... :)
What a great idea!
I wish you all the success in the world.
I've never been that interested in grind based MMORPG:s, but this is different. I'm actually interacting with other players all the time, and it's not just about grinding mobs or something: We're questing to find real world coding answers to gain Badges!
I just can't stop refreshing the front page to see if I've earned some more 'rep' :))))
Seriously: good show. I really hope this works out ok, and it's looking phenomenal so far.
You raise good questions. Success and failure are both in your hands...
I think there's multiple issues and multiple opportunities. From an information standpoint, the challenge of having multiple chefs in the pot can break conceptual integrity. But it can also lead to a sum that's more than the parts.
When Ward Cunningham (father of the Wiki) was on my team, he taught me lots about Wikis and community. Lots of little insights that add up. For example:
- page names matter
- think one great page at a time
- garden tenders matter - a lot
- the community becomes self-maintaining eventually, if you groom the right rules
- your best community members become your best garden tenders
- forums are about time; wikis are timeless
What surprised me is how much that the network behind the community matters more than the online site itself. The online becomes a reflection of the connection.
Personally, I'm a big fan of Wikis. I've created many dozens, in many shapes, sizes, and platforms. My personal favorite is still Wikimedia. I created Guidance Share (http://www.GuidanceShare.com ) using Wikimedia to experiment different ways of organizing massive amounts of information. There's no way I could get that experience in a book or blog. But, blogs and books have their purpose. A blog is great as a chunked stream of value over time and for news. A book is a great path through a bunch of information. But I would expect the book to be focused on the durable, evolvable frames and key principles, patterns, and practices -- not the volatile information that's better in a Wiki.
Which brings me to the other success factor -- the information structure itself. I won't claim to be an information management guru. But I have managed several thousands of pages over several years. What I learned is that the most important thing is to treat a body of knowledge as a catalog of types and topics. If you find the right information structures, it's very easy to share knowledge effectively. For example, I make heavy use of how tos, guidelines, checklists, explaines, practices at a glance, ... etc. At a high-level, I factor reference from action. I put reference into nuggets I call Explained. I put action into step by step How Tos.
My favorite approach is to slice a domain into a knowlege base (KB) of nuggets and a guide. Here's examples:
- KB - VSTS Guidance (http://www.codeplex.com/VSTSGuidance)
- Guide - Team Development with TFS (http://www.codeplex.com/TFSGuide)
I've tried to explain as best I could, in short form, how I build books in patterns practices, so this may help you structure your knowledge (http://blogs.msdn.com/jmeier/archive/2007/12/24/building-books-in-patterns-amp-practices.aspx)
You might also want to experiment with Guidance Explorer (http://www.codeplex.com/guidanceExplorer). Customers call it ITunes for knowledge. You can read, author, and share guidance nuggets. You can build customized views of guidance as well as build your own guide on the fly. It's actually a mini platform of a guidance store, a guidance feed, and an offline client guidance explorer.
I think your model of bringing together a KB (wki), news (blog), people (forum) and user sharing (digg/reddit) makes sense. I haven't tested the full enchilada, but it matches variations of models I've had success with.
I have some information on what I call guidance engineering which may help you in terms of thinking through models as well as figuring out practices (for example, one of my favorite practices is sweeping the KB -- knowledge isn't static. Over time it gets out of whack. A periodic sweep makes a big difference). You can browse my guidance engineering posts here http://blogs.msdn.com/jmeier/archive/tags/Guidance+Engineering/default.aspx.
Good luck (where luck is when skill and opportunity come together)
PS - sorry so long, but I didn't have time to write a short comment.
I like Stackoverflow. I still think it has a ways to go, especially in the areas of accessibility to new users (the FAQ has almost nothing in it!) and finding questions to answer (ok, there's an unanswered questions tab, but how about questions with no *accepted* answer, or questions with no answers over 1 vote?), but I find that even at this early stage I've gotten a lot more help there than I have elsewhere.
Look promising. Only snags now is not having some filters (boolean or tag-cloud navigation) for the vast amount of questions. I also hope the use of OpenID gets re-evaluated.
As mentioned above, a seperate login for stackoverflow.uservoice.com that's not using OpenID somehow beats it's purpose?
Opso70, you say 1) Don't understand the issues with openid. I struggled at first to learn the system but since have had no issues.
You _do_ understand the issues with openID then.
Why should something as simple as logging onto a sodding website involve struggling and having to learn the system?
It staggers me that people say that then say they don't see what the problem is.
I know StackOverflow is for programming questions - and it's pretty good for that - but is there any chance we could have something similar for sysadmin questions?
I have fun questions like I'm running obscure third-party addin to Word and other obscure third-party addin to Word at the same time and they don't seem to like each other. Any suggestions what kind of trace I can run to see where the problem is?
I really love this article.Its so well written.Nice statement
I've always felt guilty about having taken from the community more than I've given. I want StackOverflow to succeed and will do what I can to help it succeed. Thank you for making it available. I've tried posting to my blog answers to problems that took me a while to resolve. I'll start posting to StackOverflow as well. I think the site will improve as more editors get their wings and start cleaning up the mess. The mess being partially, all the subjective questions that aren't in the spirit of the site, that encourage discussion but creates noise.
yeah well said..liked your topic pretty influencing :D
I simply love your blog. I can say, I feel always like beginner with coding.. Being humble and admitting one's own stupidity is good also. For me, it came to be the problem: What to program, if I hold onto teaching of Code-Reuse.
Vast world of learning, a never-ending play box, I would say. About internet and related technologies. Also this information technology changed my way of seeing.. there was nobody I could represent all I know. As you said, good rule is: Aim for brevity.
Well, but dialectics is only way to find truth. You must say what you think, otherwise it does not exist. I think the form internet takes, comes by itself, we must just code to adapt to these changes.
I see the point and value in this website, but I thought it would be handy also to be able to contribute a nugget of information to add to the knowledge base so it would be searchable by people with the same problem. There's no way to do that, that I found so I asked a question then answered it. That didn't go over so well.
thanks for contributing to the utter drivel here in cyberspace
'Bit late to reply. Can't keep up with my feeds. This is also why I prefer StackOverflow the Website to StackOverflow the podcast. Who has time to listen to opinionated techies babbling on radio, anyway? Who cares?
I actually browsed through SO it today. If you were looking to build something really practical, I suppose you missed the mark. When I'm looking for a solution, I just want the facts, and eventually some understanding -- not a social forum. But I personally enjoyed the stupidity. There's a wisdom that grows out of it. This is certainly worth something.
Geeks tend to focus too much. Some grow so proud of their know how and loose perspective of what needs to be known in order to solve problem X. Making a point turns into a battle of ego. When you mix all sort of people in a place like this, the law of average injects some sanity into the lot and you get some direction to navigate by.
There's nothing wrong about solving the wrong problem. Not here, anyway.
Execution will be rough for a while while those who can/cannot refine the answers gets sorted out, and you separate fluff from that's nice from solid bottom line info.
1. Hate the OpenID. HATE. HATE HATE. It's a b0rken concept. Please let me use another throwaway account and password, just like I do everywhere else.
2. 81 pages of tags? Really?
3. Can you compact the look vertically? On a 1280x1024 screen, I can see... only 4 questions at a time while browsing. I can't imagine looking at this on my laptop where I've only got 768 pixels.
Otherwise, not too bad. It has a PerlMonks arrangement to it (except PerlMonks is hokey, and unbelievably poorly implemented).
Above points turned in to stackoverflow.uservoice.com as well.
4. The Uservoice feedback mechanism doesn't share authentication with stackoverflow. UGH. Lame. Fuck it. One barrier too many.
Now that StackOverflow's working so well, has comments and voting working smoothly, etc., have you given any more thought to just dumping uservoice and moving feedback/bug tracking to StackOverflow? It'd get rid of the tiresome hey, this question belongs on uservoice replies, it'd use the same authentication, and it'd all work together a little more smoothly.
What's uservoice got at this point that stackoverflow doesn't?
I wish you'd let us in on why you chose UserVoice as a bug/feature tracker. It's downright perplexing.
The reason Jeff's doesn't work is the union of Wiki and Forum and the union of Reddit/Digg and Blog are not represented, right?
OpenID is working well as an anti-goof CAPTCHA... If you can't figure out how to log in, don't have an account on any of the major web sites, or can't be bothered with a 1 minute setup process, you might not be a great source of information on a tech QA site.
The method I found for addressing this problem is to put an item on UserVoice. For all it's flaws, it seems Jeff does read each item there.
It seems the issue of offensive gravitars will be addressed on a case by case basis.
Give an infinite number of monkeys an infinite number of typewriters...
In a way that is what SO feels like. A bunch of monkeys banging away on keyboards, with the hope that the sum is greater than the parts.
Now yes, we are all smarter and more capable than monkeys, well some of us are :-).
Here is my biggest grip about SO. I have seen questions that have accepted answers, and the accepted answer is not necessarily the most correct. Who should judge the correct answer? The one who asked the question? I think in some cases the asker is not always able to make that judgement, as they may have just gotten a bandaid for a specific ailment.
Granted I suppose that the community will eventually even this out, with other more correct answers getting up votes the the less correct accepted response receiving down votes.
Anyhow, I am experiencing what psychologists call cognitive dissonance. Because at the same time, I am addicted to SO, and have actively used it almost every day since joining.
Via the reputation score, I think Jeff and Joel have cleverly tapped into a trait common to nearly all developers: hubris. Brazen honesty, I think that is why I am addicted, I want to see my reputation score go up.
Here's another tidbit I find interesting. The hottest questions on SO are generally subjective:
For some reason, I find this strangly ironic.