Stack Overflow: None of Us is as Dumb as All of Us

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.

Stack Overflow: none of us is as dumb as all of us

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.

venn diagram: wiki - digg/reddit - blog - forum

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
133 Comments

You guys need to allow image uploads and QUIT PIGGY-BACKING.

Josh Stodola on September 18, 2008 8:39 AM

I typed nbsp; in my answer, and the ampersand didn't get HTML encoded!!

Josh Stodola on September 18, 2008 8:46 AM

Jeff:

I hope you acknowledged the people at despair.com for borrowing their None of Us is as Dumb as All of Us poster design.

Regards,
Sean

Sean on September 18, 2008 9:19 AM

I m really addicted with this great site and your are my ASP.net MVC hero.

Shiju on September 18, 2008 10:17 AM

where did you get the comment setup like this?

jeff on September 18, 2008 11:30 AM

Averaging about one post a week. Impressive.

Kenneth on September 19, 2008 7:11 AM

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.

osp70 on September 19, 2008 8:30 AM

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.

Jin on September 19, 2008 8:42 AM

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 ... :)

anonymous on September 19, 2008 8:49 AM

What a great idea!
I wish you all the success in the world.

John Robo on September 19, 2008 9:24 AM

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.

Internet Friend on September 19, 2008 1:21 PM

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.

J.D. Meier on September 19, 2008 1:27 PM

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.

Joshua Carmody on September 19, 2008 1:59 PM

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?

anonymous on September 21, 2008 1:13 PM

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.

Rob Moir on September 22, 2008 5:00 AM

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?

Richard Gadsden on September 22, 2008 5:11 AM

I really love this article.Its so well written.Nice statement

Debt Consolidation on September 23, 2008 2:41 AM

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.

Alan on September 23, 2008 12:47 PM

yeah well said..liked your topic pretty influencing :D

MP3sale review on September 25, 2008 11:26 AM

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.

Tatu Portin on September 26, 2008 6:14 AM

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.

stu on October 1, 2008 3:46 AM

thanks for contributing to the utter drivel here in cyberspace

tosser on October 1, 2008 4:44 AM

'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.

Luis' Parenthesis on December 11, 2008 7:14 AM

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.
http://megavibor.ru/

Olof on January 29, 2009 1:40 AM

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.

Nevermind. Because:

4. The Uservoice feedback mechanism doesn't share authentication with stackoverflow. UGH. Lame. Fuck it. One barrier too many.
]

Clinton Pierce on February 6, 2010 10:37 PM

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?

Jon Galloway on February 6, 2010 10:37 PM

Jeff:

The problem with Yahoo is that when you select that option from the drop-down box, the text box is populated with:

http://yahoo.com/|

not:

https://me.yahoo.com/yourname

as suggested in the text.

The first way does not work.

Jon Ericson on February 6, 2010 10:37 PM

Jeff:

I wish you'd let us in on why you chose UserVoice as a bug/feature tracker. It's downright perplexing.

Jon Ericson on February 6, 2010 10:37 PM

@Joe:

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?

Jon Ericson on February 6, 2010 10:37 PM

Eureka! If you just use http://yahoo.com (no username!), Yahoo will log you in automatically. The https://me.yahoo.com/yourname form works iff you have set up your OpenID identifier to match your username. If you haven't, it will generate one like: https://me.yahoo.com/a/yZ.eMJoai5f0RW3HGHKh_pqzaF.A6g--, which is the one I have now.

So Yahoo OpenID is a complicated mess. And the StackOverflow login screen doesn't help matters.

Jon Ericson on February 6, 2010 10:37 PM

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.

Jon Galloway on February 6, 2010 10:37 PM

@ant

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.

Jon Ericson on February 6, 2010 10:37 PM

Give an infinite number of monkeys an infinite number of typewriters...

http://www.wired.com/culture/lifestyle/news/2003/05/58790

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:

http://stackoverflow.com/?sort=hot

For some reason, I find this strangly ironic.

Jon on February 6, 2010 10:37 PM

«Back

The comments to this entry are closed.