Hacker News new | past | comments | ask | show | jobs | submit login
Has StackOverflow saved billions of dollars in programmer productivity? (stackexchange.com)
285 points by yitchelle on Dec 4, 2013 | hide | past | web | favorite | 173 comments

A lot of time has been spent by developers trying to get points. There is a cost to that.

The site has enabled software vendors to slack off on their documentation. If there was no StackOverflow the vendors would have to do better. I'm thinking of msdn as an example since a lot of the Stack questions are MS technology based. MS is far from alone though. Much of the money saved has gone to vendors.

Even given those points it has still saved a lot of money. But billions? I don't know if it would be that much. It would be interesting to know what the global number for reputation points is. There may be a correlation to money saved.

    The site has enabled software vendors to slack off on their documentation ... I'm thinking of msdn as an example
The number of questions on SO that can be answered by RTFM is quite remarkable. I think that points to a lot of the documentation being just fine. The last bug of my own I spent any significant of time on was answerable by RTFM [1].

There are plenty of PHP+MySQL questions that appear where the OP is clearly learning about PHP+MySQL and the code looks something like...

    $result = mysql_query("select username, password from user where username = " . $username)
...shows that they haven't bothered to RTFM [2].

[1] I had made a new thread and was calling ShellExecute on it. It didn't work on some computers because I hadn't initialised COM (presumably they had some shell extensions installed). See the first sentence of "Remarks" http://msdn.microsoft.com/en-us/library/windows/desktop/bb76...

[2] Big red box: http://www.php.net/mysql_query

Why do people assume that RTFM does not have a cost?

In fact, it's probably higher than searching SO through Google. This is why I'm hugely in favor of even basic questions getting answers on SO.

Way higher. Technical documentation is only in rare cases easy to read, whereas SO answers are specifically incentivized to be easily accessible. And any comparison assumes that you can get instantly to the right page of the FM by making a web search, which is far from reality in most cases.

I've tried out many different programming languages in an effort to be able to "read" any language that comes my way (as a security researcher, I've noticed malware authors tend not to write in enterprise Java). The only language I can think of off the top of my head where the manual is the only thing you really need is Lua. I don't know if it's just because it's so tiny or because it's a well-written manual (or both), but it's lucky that this is the case because finding Lua code examples isn't exactly easy.

Many other languages I've come across have oddities that pretty much require asking someone who already knows the answer.

very well put. Both obscure and implicit/obvious information can be very hard to find by just reading the manual.

(Aside from above) I love Python. I only know enough to get by though. I have this program that runs for a really long time, storing the results of each iteration in a dict. These results are complex python objects, and are meant to be processed later on.

Naturally, I tried pickling them. As the file grew, Pickle quickly became cumbersome. It was a bad idea to read and write something that big every iteration. I started wondering if there was some way to write pickle objects incrementally. Then googled it, and an answer from SO led me to the 'shelve' module. It does exactly that, pickling objects incrementally. Its part of Python's standard library. But it didn't turn up on the first page of google's results. It is described in the docs as a 'persistent, dictionary-like object'. Well, if not for SO, I would have been stuck with the wrong set of keywords to search with. So, my point is, even if things ARE in the manual, it takes some effort finding it. And SO does an excellent job of leading you on to the right places in the manual/reference rather than just looking down upon you for not grokking the entire manual.

> Well, if not for SO, I would have been stuck with the wrong set of keywords to search with.

This is precisely the sort of bootstrap problem good tutorials are meant to help you avoid. Learning out of a book is not as satisfying as grabbing an interpreter and some example code and just hacking away, but this is precisely a case where the by-the-book method can save you a lot of time and frustration later on.

Another example of a problem tutorials solve is not knowing what 'tasteful' means in a given language. If you don't know what the language culture considers good taste, you'll beat your head against a wall trying to solve problems tasteful developers don't even have, because you're cutting against the grain.

(Yes, yes, a Real Programmer can write FORTRAN-IV in any language.)

Agreed - Especially when I'm working on some technology where I don't need/want to learn it completely and just can't spare the time, but just need to know a small bit of information to fix some legacy item, or something similar. SO is invaluable there - but I do hate when I'm "that guy".

True but I think people often assume, mistakenly, that SO will have a lower cost than RTFM. A great example is Postgres authentication, there are hundreds if not thousands of questions on this topic on SO, almost all of which would be answered by reading the very concise, very accessible section of the Postgres manual.

Not suggesting there's anything wrong with using SO for this but that the cost of reading the manual for these purposes would actually be far lower.

RTFM definitely does have a cost, and like you say being able to find the simple questions answered on SO and the rest of the family is very useful to a great many people.

My problem is the duplication of those simple questions: people asking the absolute basics having not bothered to try Google or the site's own search function. They know the right keywords, they've got them in their question, and they'd learn more by looking through the existing answers than by asking a very specific question themselves.

Some people aren't there to learn: they are there to get someone to do their homework/job for them. But many genuinely are and I'd like to help those people where I can, especially those who have obviously given some thought beforehand and articulated their attempt at understanding thus far (it is easier to be helpful in these cases: you often don't have to explain everything in detail you can say "it looks like you've got it almost right, the niggly little thing that you are missing in your understanding is..."). And sometimes even the obvious beginners will actually ask a really interesting question.

From the other side: answers that simple say "Do X" but ofer no further word of explanation are worse than a bad question. A good answer will help the questioner and other passers-by learn from the question+answer, an overly terse answer is just handing the man a fish (and not necessarily the right fish). Luckily there are enough good people contributing on most of the stackexchange sites that the bad answers are outnumbered and the voting system works well enough that the good ones float to the top.

Your power as a user of software is increased by learning how to read documentation efficiently, however.

It's even further increased by being able to read the source, but that's even more costly.

I just spent a month getting back into Android development with writing an app. I can't express how many times I knew the answer would be easily findable in the docs but I also knew that by searching on Google it would give me a SO link where it takes about 5-10s to have the answer. While looking it up and reading the SDK documentation would more likely lead to 60-90s with presenting me less information and alternatives.

I want to float a different hypothesis: the perception of programming is so hung up on the idea of individual brilliance that most people, especially beginners, don't even realize how much value there is in reading the manual.

And we as programmers add to the problem. It's not very sexy to say that there is a lot of useful software out there written and documented by smart people and if you read that documentation, and think through a problem with great analytical detail you should be able to find a clear solution.

My experience has been that technet's documentation is so unreliable that I've learned to go to SO first.

Yeah, I goto SO (well, SO through google) because with most questions, I get a practical answer to my exact situation in seconds, as well as suggestions as to why or why not different approaches might be warranted. They're not all perfect, but it's usually food for thought.

StackOverflow is just the manual in an easily searchable form. Lots of times I'm not even sure of what to even look up and that's when I post to StackOverflow. The next time someone else tries to do something similar, Google will have found it in StackOverflow and it will be easily found.

Easily searchable and constantly updated form.

And free of vendor BS, too.

Your comment has been closed because it has been deemed to be unsuitable for our question and answer format.

And you're a bad person for asking!

Also has only the information people are actually interested in.

> The number of questions on SO that can be answered by RTFM is quite remarkable. I think that points to a lot of the documentation being just fine.

Actually that must point to the opposite: that manuals are not information resources that are easily consumable, and hence a new service (Stackoverflow and co.) needed to be developed to "disrupt" this.

The more questions the better IMO, it's just more of a wealth of data to search through and serve to people.

I wish there were better ways of asking more general questions that one just has no idea though (e.g. "How can I send SMS messages from a web site?" Random example of which I have no clue). These are more open-ended, but provide a ton of value. At the very least, they make googling for such things that much easier and direct.

You are quite right. All of the information is in the manual, and if only everyone would spend their time reading the manual there wouldn't be so many questions on SO. However, the volume of information in most manuals is also the problem. If everyone read the whole manual, a lot of time would be collectively wasted because most of the information is not useful or relevant to what each individual developer is trying to do. In my opinion manuals should be written in several tiers of detail. Admittedly, a lot of software developers already publish documentation this way and these basic questions still get submitted to SO.

If you're stringing together a Unix pipe command, TFM might be for, say, awk. Would you rather stop what you're thinking about for 10 minutes and shave that yak, or get a quick answer and move on?

There's another cost to consider: if you do this more than infrequently, learning the tools will save more time than consulting SO repeatedly — particularly if you end up adding and debugging extra steps. Not a big deal for something you're running once but I've seen people running carefully constructed gargantuan shell pipelines multiple times a day because it was "too hard" to learn how to do it all in a single awk / perl step

Agreed. But there are yaks you shave but once.

The more information is available in the documentation, the more you can benefit from somebody pointing you to the right information for your question. So I think that if software vendors were to document even more, you would need something like stack overflow even more.

And then there's also the problem of cross-technology questions, where you have a question of combining multiple technologies. These kind of questions are usually a bad fit for documentation.

Not everyone learns from manuals though.

> The number of questions on SO that can be answered by RTFM is quite remarkable.

Every language needs two manuals: A reference text, to teach you what is possible, and a tutorial, to teach you what is tasteful. You should expect people to read the tutorial, but expecting everyone to inhale reference material is a bit much.

(Later, there should be a third book: An anti-tutorial, laying out anti-patterns, or things you shouldn't be doing but that people tend to do anyway, and how to solve the problem the right way, with pointers to other tools if necessary.)

When you answer questions and get points though you teach and that is the best training. Many times when I answer questions I find out more details and learn as well. Anytime a question is answered this is training investment for free really. It is also something that helps your programmer brand.

With open source and sites like stackoverflow, a single programmer can become a team of programmers/knowledge very quickly. It is part of what has made each programmer better I believe. On the flip it has also made programmers more lazy possibly. Finding an answer and being able to solve and provide an answer to the question are two key pillars to providing solutions. So I'd say question answerers and associated companies are getting more out of it.

> Many times when I answer questions I find out more details and learn as well.

I've experienced this several times too. In verifying details to make sure I'm not handing out duff information, I've stumbled over a semi-related point in the documentation that triggers a "I wasn't aware of that, I'll have to look into it as it might be very useful" response.

Also I sometimes just browse for interesting questions. You occasionally stumble upon something you didn't know that you needed/wanted to know!

> If there was no StackOverflow the vendors would have to do better.

Documentation quality had been declining for many years before SO -- I think its more accurate to say that if vendors were doing better, there would be no (or less interest in) StackOverflow than the other way around.

Although the problem I've been finding recently with SO vs Apple docs (mainly since switching from developing sdks to apps) is a lot of the higher level stuff seems to get changed more frequently, so a lot of SO answers are out of date.

Edit: Somehow this reply ended up with a different parent than I intended...

I find the opposite with iOS/Apple programming. Often I'll be looking for something on Stack Overflow only to find the true answer lurking somewhere in one of Apple's guides or example apps lol. But if there's a Stack Overflow answer, it's often exactly what I was looking for, and that can't be undervalued!

True, iOS docs are really good compared to Android docs.

I know programmers at microsoft who use SO as an intern.

They just post questions about strange windows problems they can't work around. Somebody on SO will respond with a 1,000 word essay with 500 lines of code about it within a day, thus solving their problem with no employee time "wasted" by thinking or researching or paying for anything additional resources.

Ha, that's me. I'll post questions on how to write code, not just problems I can't work around. Then I go off and slack off, and wait until someone answers it. My version of "I'm compiling".

The microsoft thing is a little ethically strange but yeah i feel you on this.... if these try-hards wanna do your work for you just to get a "+10" may as well give them the privilege of "building their digital resume" while you read about something more interesting.

Programmer culture involves too much self-glorification & SO embraces that in the hugest way. If the discussions were more interesting it would probably worth more attention but usually it's just some know-it-all quoting docs they just Googled for so they can lock down the question / points. I'm not sure I'd ever want to hire a SO mod...

> A lot of time has been spent by developers trying to get points. There is a cost to that.

Agreed, however one answer will help many developers, which should more than offset the initial effort

> The site has enabled software vendors to slack off on their documentation.

Documentation has not deteriorated, in my opinion. In fact, a point could be made that it is now much easier for small vendors to have outstanding developer support through stack overflow. A lot of open source project use it as the main support line.

> It would be interesting to know what the global number for reputation points is. There may be a correlation to money saved.

It is probably correlated to the time spent on the site, but the money saved is certainly not related, as users don't gain any reputation by reading answers or simply browsing the site.

> Much of the money saved has gone to vendors.

That's not a contradiction to the claim that wealth has been created. Of course it has to go somewhere.

> That's not a contradiction to the claim that wealth has been created.

There was no claim wealth was created.

There certainly was.

"SO has probably added billions of dollars of value to the world in increased programmer productivity."


dead on with the cost of wasted time through gamification. And many questions on SO can be answered with ~10 mins of extra thought. It's a good reference though, as someone mentioned. Makes a manual searchable, basically, with a bit of layman explanation.

I get bitter though because any time I post a question that actually requires thought (can't be answered by checking an API) it ends up getting downvoted because you well... actually have to read a paragraph to understand it, I assume. That site has an uncanny ability to trash anything of value so a lot of the time I spend on it I wish I just spent reading programming theory instead of gleaning random bits of knowledge. I guess its enlightening though to see the level of developers & tech engagement in the different communities. It lets you see how active the community is and what level of quality the devs are, basically. (So... more questions doesn't necessarily mean better community...)

& o god lets not even get into the amount of wasted time spent wanting to claw your eyes out when someone (especially mods) say some horribly arrogant thing responding to some imaginary version of your question (i guess they read 2 or 3 words from each sentence?). or they point out some semantic reason why theoretically they're right even though in practice they're wrong and the theory doesn't actually support their argument, it's just agnostic... chills

Google did this as well. It's extremely annoying. They're basically telling users to "Fuck off, we don't have time for you. Go ask your questions somewhere else."

Remember to take into account that doing something similar to SO but scoped more narrowly could actually hurt the help/answer community through fragmentation more than help it.

When I first started doing Android development in late 2009 the API documentation quickly brought back memories of MSDN in the late 90's.

Which is where resources like Stack Overflow really shine.

I had someone add a link to MSDN to an answer I posted on SO a few years back. That topic didn't exist when I wrote the answer - and the subsystem being documented was already fairly old when I wrote about it.

Waiting around for months or years for vendors to get their documentation up to snuff is rarely an option; how many people have ended up reinventing the wheel, badly, because the only indication that it already existed was tucked into a bit of test code collecting dust somewhere?

Every time Apple releases a new version of iOS, I see questions regarding the new APIs being asked and answered on SO... Usually before the NDA is even lifted. "RTFM" is useless if the manual is incomplete or inaccessible until long after the fact.

I was always under the impression that Stack Overflow was an information-dense bible of programming knowledge. Having recently started attempting to answer some questions on there, I quickly realised that it is in fact, in line with every Q&A website, filled to the brim with idiots with barely any understanding of programming whatsoever.

What they do fantastically well is quickly push the stupid questions out of the way and let the good ones float to the top (on the site and in search rankings).

We found a fairly highly ranked "ticked" answer to a question yesterday (it was on keeping the heading rows of tables visible during scrolling) and immediately thought: (1) this answer seems stupid, (2) we can think of better solutions. Within thirty minutes we had two superior proof-of-concepts working and had found a decent off-the-shelf solution.

What Stack Overflow is great at is SEO (not sure if this is organic or deliberate or both). This at least tends to pull interested eyeballs in a kind-of similar direction. What happens then is anyone's guess.

1) Highly ranked answers are often horribly wrong. People asking common questions are, presumably, often being pulled to these answers and treating them as gospel.

2) Once an answer gets "ticked" (even when hopelessly wrong) there's very little that can happen to fix it.

3) Stack Overflow is (actively or passively) good at appearing in Google search results, but not at converging like threads; which thread appears in a search is far from stable, so two similar searches can take you to completely different threads.

4) The depth and quality of threads seems highly language-correlated. E.g. the PHP threads I've seen seem to mainly consist of someone posting bad code they've written and having it debugged by someone else. Javascript discussions are of a much higher quality. Obj-C discussions are another level or two beyond that. (Which says something... perhaps about the awfulness of PHP's error messages.)

re #2, that's not entirely true. There have been a good amount of times that another answer gets upvoted way higher than the accepted (ie. "ticked") answer because it's better. In those cases, even the original asker has chosen one, the community has chosen another ... so it's often worth scrolling to see the other answers that have been given.

That being said, I agree with everything else you've said :)

Yes it's true that better answers can rise above garbage, but it's an uphill battle.

In my experience, when I need information, I google with some keywords, and then land on a Stack Overflow page where my question has already been asked and answered. Thus I almost never see the questions and answers by the idiots.

Sometimes I ask questions, and usually receive good answers, but it may take a day or two.

It is both!

In search results it is an information-dense bible of programming knowledge.

If you click on the feed of newly asked questions, it is filled to the brim with idiots with barely any understanding of programming whatsoever.

The magic of their voting system and google's search algorithms converts the latter into the former.

> The magic of their voting system and google's search algorithms converts the latter into the former.

In addition to that, there's a lot of peer review going on. First posts, late answers, low quality posts, suggested edits, and so on are all reviewed by the community. Once you start reviewing, you'll quickly notice lots of shoddy content.

> you'll quickly notice lots of shoddy content

Some programming language and software product vendors encourage quantity rather than quality in questions posted to Stack Overflow because various popularity rankings use the number of Stack Overflow questions as one criteria when calculating rank.

I think the main factor is that SO is very aggressive in closing "bad" questions.

You are always going to have people of different skill levels, including those you call idiots. Now if it's a basic question it will likely get answered but if it's incoherent rambling then there isn't much the community can do. Except maybe teach people to ask better questions.

I know it's fashionable in certain circles to rag on it lately, but I'm not too big to admit it has saved me a lot of time here and there over the last 4-5 years. I would bet a lot of devs use it more than they would admit to check down on things throughout the course of any given project.

Billions seems like a lot, but I wouldn't call BS on it out of hand.

What on earth is bad about using StackOverflow? You're expected to google around to find solutions anyway, if anything I would think much less of the programmer who tried to avoid it. It's stupid pride when it's such a valuable resource.

I agree with you, but several people I have encountered don't feel this way. For instance I had someone try to explain how using HAML made their developers more valuable because of all the keystrokes they were saving. When you're counting keystrokes as a developer productivity metric I can only wonder how toxic the work environment becomes when you need to stop to look at documentation yet alone use Google or SO.

Maybe that person's team is more productive with Haml not simply because of the small amount of time that's saved by less typing, but because of the huge amount of time that's saved by not needing to replace developers who are institutionalized or commit suicide as a result of being forced to type HTML tags like it's still 2005[1].

[1] The year before Haml was introduced.

I'm not saying HAML isn't of value. Please don't misunderstand me, I like HAML. I use it for my template engine with Sinatra. But in the grand scheme of things if using HAML to increase productivity by saving keystrokes is what the company thinks is its competitive advantage, which is what they told me, then how do they deal with someone spending time just researching (i.e. stackoverflow, google) and thinking a problem and solution through thoroughly? The two seem at odds to me.

Uh, not to rag on HAML which I'm sure you find great but all the text editors I use these days auto-complete HTML, including closing tags. I spend a fraction of the time typing html compared to the time I spend thinking about why the hell the damn image/span/font/button isn't in the right place.

Ego is my number one pet peeve about coworkers and I have a really hard time working with anyone who won't admit they don't know everything. I have a coworker who I can't tell that I got an answer from stackoverflow because he will instantly say "I don't care what reputation he has blah blah blah he is wrong" and won't listen to any actual research on the topic.

I can learn and know one language incredibly well, excluding the html/css/js world, as those are effectively required at this point. For me, that's PHP.

However, when I need to go to work, and my boss decides "So that position we hired you for, now its going to be ruby as well, but later on ObjC and Java.", SO comes to the rescue.

The core concepts of programming languages were cemented in my years deciphering terrible notes and learning to code in college, however the little nuances of each language inherently evade me. This is where SO has shined the most. Most of the time, solutions with multiple approaches suggested show more about the language itself than the problem asked.

Personally I think StackOverflow is pretty good. It's always nice to see it popup in search results when googling for a technical problem, for example. My main complaint is that they've been resting on their laurels for quite a while, there's a lot of potential that's been wasted with SO/SE.

(*) where resting on laurels is defined as launching 111 sites running on 9 web servers with traffic doubling every 12 months while writing two native mobile apps and localizing the site :-)

Hey, that's great, but to be brutally honest most of those sites are borderline inconsequential. The fact that SE has yet to launch a site that's gotten bigger than StackOverflow is pretty damning. Everything else you describe is just work, it's not innovation.

That's good but SE is a federation of sites, so it's an unfair comparison.

From the start I've always thought that the biggest danger to SO/SE wasn't failure, you guys are smart enough to see and recover from outright failure. Instead it's reaching a level of success far below what you're capable of.

It seems to me that SO/SE spent a lot of work innovating in the early days but once they found their comfort zone they've stopped innovating. They are good sites for their intended purpose but how much of the original vision has been abandoned? I remember back when you and Jeff were talking about taking over the way all online discussion happened. Nothing like that is even remotely possible with the way StackExchange is today.

To be bluntly honest I think you guys are just lucky that most of the ambitious and competent folks in the industry don't view discussion as "sexy" so you don't have as much ompetition as you would otherwise (quora is practically a joke). But realistically it's just a matter of time until SE will be out innovated.

"I remember back when you and Jeff were talking about taking over the way all online discussion happened." - not quite right. The problem in hand was that good Q&A was buried in discussion forum type apps.

The whole point of SO from the beginning was to build a Q&A site for programmers that didn't suffer from the shortcomings of using apps such as phpBB etc, where threads get hijacked and pages upon pages of extraneous discussion and arguments take place making it difficult to find and answer to a specific problem.

I'm not totally sure about that, if for the sole reason that SO/SE has such a huge volume of answered questions already. Unless they make those answers harder to access, I think there will always be a contingent of people who'll need them.

However, I do hope that we get an even better discussion platform than the ones we have now. I really look forward to even cooler products in the future.

"I remember back when you and Jeff were talking about taking over the way all online discussion happened."

Aren't they now -- or at least Jeff Atwood -- working on Discourse?

Yep, discourse.org. It's a little too heavy weight for my uses and I think they really need to get the client and server requirements down a bit so that it can take over where PHPBB was once used.

See http://discuss.emberjs.com/ and http://bbs.boingboing.net/ for real world implementations. It's very, very cool to see forums being dragged out of the 1990s.

Jeff left StackExchange, he's just working on his own now.

True and Stack Overflow is #1 in North Korea.

Just curious, what do you think we could be doing that we aren't?

Also thanks for teaching me a new idiom :)

In general, experimenting more. You've tackled the narrow use case of a single question with answers, but is that all SE can be, or should be? The thing that I think SE is most lacking is better ways to tackle the sheer amount of data on the site. There's a lot of information there but in general it's not very well organized. Go back to the original announcements about the launch of SO and see what it was supposed to be and how it has either lived up or not to those ideas.

Try this thought experiment: if a stack exchange competitor showed up tomorrow, what sorts of features would it have to have to make you start waking up in a cold sweat every day?

Luckily a lot of us are on the same page as you :)

One of the things I consider a main detriment of our current product is that for the vast majority of users it's built to be transactional. Search, land on SO, read, go back to work.

On our currently in development mobile apps we're trying out something different, for the first time at scale we're pushing content to users rather than having them search for it as the number one utility of the product. The apps have a "Feed" which is machine learned interesting for you questions.

I love it since I search SO at work but when I get home or am walking around town I can open my app and instantly lose 30 mins (at least) to reading and interacting with very interesting content. I can't wait to see if others like it.

Thats a great start but there are other ideas too. Why isn't SE as useful for people in other professions, like product managers or data scientists or marketers who are also looking for answers to their work problems? The key is that just replicating the site is not the answer, you need to really focus on community dev and getting the thought leaders from those professionals involved. Lastly, along with the 'feed' implementation, you can also start curating other content from the web that could be useful to the users of your site. example: If I am particularly interested in Javascript, I get a feed of curated resources from around the web that will help me learn about the latest and greatest in Javacript. Thats whats missing today and thats why SO is a transactional site

I actually originally had something related in my post but removed it: I won't personally consider the site I work on a success unless my mom uses it. She's a physics PhD and she once in a while stumbles onto physics.SE when searching online but she doesn't actually use the site.

I think SO and Server Fault are the size they are because they have an intrinsic advantage over our other sites. People in the target audience work and live in the same tech ecosystem as a website, with something like physics that's an initial burden.

SE itself also has a high barrier to entry. Every one of our sites has it's own rules and definition of what type of content is acceptable. This is for a very good reason, seeking out absolute answers to questions. Most other websites on the internet live to foster discussion, but we're not a forum.

Making stack exchange a common name (in more than our sizable niche) is one of our company goals, but I don't really know what we can do to get past the initial issue I mentioned and reducing the second would hurt our product.

It's quite an interesting idea to be more proactive about bringing thought leaders to out lesser known sites, I don't know if we could do it just directly since most thought leaders are very busy people who already have a dozen places people ask them questions but it's something to think about. We already consider expertise of contributors in Area 51, our incubator for new website ideas.

Perhaps while we may not be able to get the top 1% of thought leaders onto our websites without giving them a really hard question to answer (my mom loves difficult questions, god knows how many times she used to run into my room and say she solved a question I asked her in passing days prior) but it might be possible to bring in up-and-coming thought leaders. A lot of my friends from the health and fitness industry (were I used to live) might want to use our Physical Fitness Stack Exchange site to foster their own personal brand.

I can understand that being an absolute answers to questions makes sense for some of the technical fields where the answers are black and white. However, as you start branching out to other forms of questions, like your mom's who is a PHD in physics, sometimes the answers are not absolute, but its the discussion around them that unearths something really powerful. So, why not test that out in one of your websites? Whats the worse that can happen? You can change it back.

To your initial issue, yes reaching out to the upcoming thought leaders could be great. I know of a few friends in fitness industry who send me thoughts via email. But don't discount the ability for you to get the top 1% thought leaders. Have you tried it? You would be surprised by how many of them actually want to show their leadership and 'help' others.

BTW Thanks for reading my answer. I usually am a silent browser of HN and felt compelled to answer since I have been thinking about this a lot. Would be happy to jump on skype to chat further.

I guess programming is particularly fast moving and information becomes obsolete very quickly. A book about mobile app development written in 2005 would be laughably obsolete today. A mechanical engineer on the other hand can probably still find value in books written in the 1960s.

So there's less need to be constantly feeling out new undocumented territory in other professions.

My main with stack overflow, as it gets older, is answer rot. A couple of times I have come across answers which have become out of date, but it is non obvious to me the best way to reopen the question (I, along with most readers don't have the karma to edit questions / answers )

Maybe write a comment, "This is out of date. Can someone update this?" You might even want to flag the question. You can also add a new answer and downvote the obsolete answer. Getting enough points to edit questions is pretty easy.

Everyone can edit questions and answers (if you don't have the full-on privilege yet, your edit will go in a queue and be vetted by more experienced users).

I feel like StackOverflow is a blade that cuts both ways. I find it's most useful for troubleshooting really cryptic/obscure error messages that I would undoubtably blow through huge amounts of time trying to solve on my own; those are the type of problems I'm not sure I would ever get through without help from wizardly members of community.

But for other answers, to the kind of lazy questions that save me the momentary hassle of consulting the docs, it's also kept me from the serendipitous learning that should happen in that process. Since knowledge compounds and makes it easier to learn other things later, overall I'd say the "lazy questions" on SO definitely have a significant learning opportunity cost.

Will it be a net productivity gain over my lifetime, including learning opportunity cost? Probably, but only because of those insane bugs I'd never solve on my own.

Edit to clarify: I'm not the one asking the "lazy questions" without looking around. But these SO results often rank higher than official docs for my google queries.

StackOverflow has been the opposite for me. I am someone who reads the man pages and does a lot of experimentation before turning to a Q&A site, I fully document what happened, the expected result, and the deviations between the two, and my hypotheses on why it happened, then post.

As a result something like 85% of my questions go unanswered or are eventually answered by myself. I have stopped answering my own questions on SO because some of the questions I ask and do legwork on I feel I should be paid for since it's shitty lack of documentation from the vendors, so screw them.

Exactly. If you have complex question (the actual problem) it will be unanswered or downvoted to oblivion. That is logical because inexperienced engineers don't know what they don't know and experienced ones will be wisely silent. And the worst thing is that some answers are wrong but since they are upvoted so they seem "right" (the joke is that all javascript questions are answered with "use jQuery").

So in short: if you are novice engineer (or novice in certain field) then StackOverflow might help. If you are experienced engineer, stackoverflow is useless.

Does John Carmack count as experienced? Because he is the guy who made the claim we're talking about.

tlogan was not saying SO was not valuable, he specifically said that it did not provide much value for experienced programmers. SO can still provide value to the masses of less experienced programmers out there and be extremely valuable.

In my experience I have found this to be true. When first starting out stackoverflow was crucial to my learning process, now it seems I've answered all of my own questions the last year or so. And I wouldn't even claim to be extremely experienced. Thus, SO has certainly become significantly less valuable to me, but I would have never gotten this far without SO.

I know. My point was that the fact that John Carmack was the one who said this suggests that he still finds it useful for himself, even though he is an experienced programmer. That is not conclusive proof, of course, just something to think about.

My take is that experience only lowers the value of SO for the particular platform(s) you have experience in. I've found SO very valuable in the last couple of years even though I'm (in general) not a newbie anymore, because I've had to build software for many different platforms like ruby, mac cocoa, ios cocoa, and windows (C#/WPF and C++).

Nobody is expert in all fields.

A more constructive way to think about StackOverflow is you give in those areas where you know more and take where you know less.

> I am someone who reads the man pages and does a lot of experimentation before turning to a Q&A site

I feel similarly. I'm uncomfortable asking for help on stackoverflow, a mailing list or IRC if I haven't tried everything I could think of to work something out. I always have this[1] in mind when I do end up writing a question. I almost think it should be required reading.

[1]: http://www.catb.org/~esr/faqs/smart-questions.html

> I feel like StackOverflow is a blade that cuts both ways.

That is a feeling, not a thought.


I believe it. And that's not even counting looking up answers or getting your questions answered.

When I am truly stumped, I immediately start drafting a comprehensive SO question. Nine times out of ten, clearly enunciating the problem leads me directly to the answer and I never even post it.

If you're feeling generous, go ahead and post the question anyway, along with the answer you found. That's very much encouraged, and very helpful to people searching for answers later.

Half my SO answers are of this type. And the number of views I get on them usually indicates that the problem is very common. (I have done SharePoint development in the past).

In my case, nine times out of ten my questions are closed down by overzealous mods. I still find SO very useful but not for asking questions.

> In my case, nine times out of ten my questions are closed down by overzealous mods.

You may not be following the guidelines.

It is possible that I wasn't following the guidelines at least in some cases. But I vaguely remember is some of the cases where a simple paraphrase of a sentence would have been enough. Questions were simply closed wasn't allowed to edit and a link to TOS violation without any specific reasons what I did wrong.

Its been a while since I asked questions over there. Haven't logged in for a long time but I do find useful answer through google search quite often. I just don't ask questions. I think its a major annoyance when you spend decent amount of time writing questions only to get your question closed with vague reasons. Maybe I had some bad luck and things might have gotten better? Who knows.

>> "nine times out of ten my questions are closed down by overzealous mods"

What types of questions are you asking (any examples)? In the time I've been using SO (just over 3 years) I think I've only ever had one question closed (and it was a bad question so they were right in closing it).

Its been a while, I don't remember specifics. But I think most of my questions where related to server admin stuff. I don't remember which email I used, I might have to open a new account and see if things are better now.

The bright side is that in such cases you'll likely have received an answer or two before the question has been closed. Or maybe someone points you to a duplicate question which got more attention.

SO is very useful for a asking a certain type of question.

On multiple occasions I've searched for an answer, found it on S.O., thought "this seems vaguely familiar," and then realized that it was my own answer from a couple years prior.

Saved me time the second time around I guess.

There are two assumptions here that are untrue and changing them would change the order of magnitude of the answer:

- That as soon as an answer to something is on StackOverflow, it isn't available anywhere else

- That every pageview on an answer saves someone 10$. Everyone running any kind of webpage knows how small of a percentage of the views is from people really trying to use it at all, and likely even among those a large fraction does not have any particular problem, but just view those "top 100 books" etc. mini-articles.

We've been researching at what resources developers actually use when browsing the web. The [initial results](http://blog.ninlabs.com/2013/03/api-documentation/) of Android developers confirm Stack Overflow is highly consulted, often over official documentation. We're seeing the same with data collected from [web developers](http://checkbox.io/studies/?id=51fac5175ec6012222000001).

Costs need to think in terms of the entire ecosystem: the time spent creating the answers, the time spent writing official documentation that isn't consulted, and the time saved finding the answer faster. Many technical writers and documentation teams from large corporations have been reaching out to me on this topic, they are definitely interested in learning how to adapt their processes based on Stack Overflow's success.

But not everything is roses. Providing answers can be [slow](http://blog.ninlabs.com/2012/05/crowd-documentation/), unanswered questions are rising, and [users stop doing actions](http://research.cs.queensu.ca/~scott/papers/MSR2013.pdf) that lead to badges as soon as they achieve them. On recent field study at a large industrial company, when learning WPF, they relied on books, and internal seminars to learn new concepts because Stack Overflow at the time did not have sufficient saturation on examples yet. As seen with [another study](http://blog.leif.me/2013/11/how-software-developers-use-twit...) on twitter usage, in some contexts, the subject matter and available of easily accessible experts makes looking online less effective.

That's very interesting, thank you.

I work at Stack Overflow and we are very liberal in sharing our data when it doesn't involve PII. If there is any way I can help you, I am sklivvz@ our domain name.

I think stackoverflow is more than just sum of it parts. Solutions presented there are not just provided by experts, they are reviewed by experts, and if someone has a better solution, it has a really high chance to boil to the top. Portion of experts will recognize that and adopt superior solution. This will keep driving code quality and standards of participants up.

Or at least so my reasoning goes. So to answer the question, I believe it had done much more than that - stackoverflow drove people to improve their technical knowledge, and that is priceless.

I'm still waiting for someone to coin a term for when you google around for a problem and end up at your OWN answer on SO from a year or so earlier. This happens more often than I'd like to admit.

I'm incredibly thankful for the many, many hours that SO has saved me personally.

Actually, if your question is about an obscure enough topic, you'll get your own question within seconds on Google. It's a kind of loop - search on Google desperately without finding anything; turn to SO and ask a question. Since probably nobody will answer soon, in the meantime search more on Google... and you find your own question on top (and feel just a bit more desperate).

He said he ended up on his answer, therefore it's something he knew but forgot. Nonetheless your observation still holds, as the obscurity of the topic increases the chance of such coincidence both by the scarcity of content on the matter and because he is more likely to forget little used information

Has Hacker News cost billions of dollars in programmer productivity? :P

They have probably subtracted billions of dollars of value from the world in decreased programmer productivity. They probably level each other out.

It's simple. For every minute a developer spends writing an answer, many people read the answer. So if the best answers are voted to the top, and there is little duplication, the site has saved a lot of programmers time.

SO is a wonderful site, I remember the days before SO when I used to get annoyed by sites like Experts Exchange that required a paid membership. Though, I agree SO has saved a lot of time with a great source for common questions and best answers, great answers. But, I also have to say that for many developers, specially in their early days, it provides a lazy alternative to learning.

A lazy debugging practice is to find a question that generally has a subject line almost exactly the same as the error message and pick the first answer, without even trying to understand it. I see the difference personally when I worked on .Net/Java and when I was working on a applet for Gnome. The latter is not very popular and so I have to resort to documentation, IRC etc. I might spend more time initially but I end up reading the documentation, develop a better understanding and even create my own snippets which in turn save me time eventually. To summarize, SO saves time but one might tend to leech on to it instead of learning. I guess some metric of how many times a person revisits the same question might be a good indicator of this.

Not to mention how many times I have seen a comment like, is this homework; show me what you tried, instead of an answer.

What's wrong about the "is this homework" comment? Why would you (this is a generic "you") expect someone else to answer your question _for free_ if you haven't bothered to actually try solving it yourself? Where is the courtesy and etiquette in that?

I think SO/SE's aggressive discouragement of leechers and high question-closing rate makes their website better for everyone. Except the leechers and "help vampires", that is.

Indeed, what a simple way to express powerful sentiment!

Just FYI, if you are making $10 per hour programming in the US please Google "salary entry level <your job> <your nearest metro area>" and tell your boss what you find out.

One hour saved per land-on-answered-question is being incredibly generous, in my experience. Generally I need a dozen or so "answered" questions to get one that's both relevant and even remotely correct.

Even with that though, it has undeniably saved me time. All told though, possibly not as much as Google results for blogs talking about similar things, which usually have a lot more context so you can determine if it's still accurate or not. SO has huge bit-rot problems.

There is probably a good number of visits from people not "at work" per se, like students and hobbyists working on things in their free time.

From an econometric perspective evaluating these kinds of things is fun. I would guess that any productivity gains would be concentrated in the most difficult-to-answer questions, that you can otherwise spend hours / days trying to debug or understand. "20 hours for 5% of questions" is probably a more accurate characterization, although it would work out the same.

It's probably saved my sanity more than it's saved (or made) me money.

If not for SO I probably would have had a lot of 12-hour days of frustration that wound up only being 8-hour days of frustration.

Which is good, like life-improvingly good, because project timelines and estimates don't often budget for the kinds of bizarro problems that sometimes only have solutions on Stack Overflow.

I am 100% sure that SO makes my employees and me more productive. QAOP (Question and Answer Oriented Programming) boosts the productivity significantly.

But I think in the long term, when everybody incorporates the same QAOP skills all developers will compete at the same level and new productivity horizons will came.

> I am 100% sure

Your 100% certainty means nothing to me.

> makes my employees and me more productive.

A very strong claim.

> QAOP (Question and Answer Oriented Programming) boosts the productivity significantly.

First Google results don't even know what this is.

Listen, I actually think your claims have merit, but the way you present them is "crap, crap, mega crap". Please cite something we can take take to the manager or test or vet in some other way. Otherwise you comment is just "ME RIGHT. ME SELL YOU SOMETHING".

Looking at your comments: https://news.ycombinator.com/threads?id=GalacticDomin8r it seems like you are a new kind of spell checker.

I am not writing a formal proof here in HN. I have proofs of what I said but don't like to discuss them with you, your reply was rude.

I invented the QAOP acronym just to be funny and illustrate the concept. Your answer reminds me of this Babbage letter: http://www.uh.edu/engines/epi879.htm

It did improve programmer productivity, but Hacker News has sort of evened things out by wrecking it again through an advanced form of continuous nerd-sniping.

It is the internet and www in general that enables people to be connected and share ideas. There's no reason to credit specific sites like Facebook or eBay with connecting people, because someone else would have done it (possibly better) if they had not.

I think there's plenty of credit to go around. Stack Overflow's fundamental decisions (gamification, open content, canonicity, searchability) were very significant in releasing valuable knowledge from the arcane vaults of obscure forums and mailing lists, not to mention creating a reliable(-ish) place to go for new questions. The project also represents an interesting template for community curation (which was begun well before launch), that can be learned from by other projects and startups.

Obviously, someone will always build a better mousetrap eventually. They still deserve credit for actually doing it.

They deserve credit for doing what they did, but it is for doing what they did well, and not what some people confuse that with, which is making what people do on their site possible.

It is language and written language that enables people to be connected and share ideas. There's no reason to credit specific networks like www or the internet with connecting people, because someone else would have done it (possibly better) if they had not.

People credit facebook with connection people, when AOL did the same thing 10 years ago and someone else will be providing software for that in 10 years. People credit stack overflow with programmers answering each others questions, while Usenet did that 10 years ago and someone else will be helping with that 10 years from now.

Meanwhile, language has been around for thousands of years and is not quite comparable.

I guess the best thing about stack overflow is how helpful the community is. They will help you with anything and even virtually shout on you if required. I guess it has made me the programmer that I am today. But I still have a journey ahead of me and that isn't gonna be without stack overflow.

I remember when I was using stack overflow for the first time, I asked a really silly question, and got my answer within 1 minute. I thanked that person for helping me with such a simple question, but his reply changed my thinking about the communities and why they help each other.

He just said : "no probs, someone did that for me too".

I have written 85 SO answers, yet I have never posted a question of my own on SO. Even so, I think SO has made me more productive, and that's counting all my time answering questions as wasted when in reality my time spent answering questions was certainly not completely wasted.

My primary reason for believing that SO has made a net positive impact on my productivity is that about half the time I google some programming problem, I end up on SO. I'm fortunate that most of my questions (or questions similar enough) have already been asked on SO.

I suspect I've read thousands if not tens of thousands of SO answers, and most of those answers were far more helpful than what I was able to find elsewhere.

I've often wondered why I've never asked a question myself. I think part of it is that I like searching/tinkering to find answers, and I hate waiting. I know it's not the best explanation because I know how quickly some SO questions can be answered.

I guess I should just be thankful there are plenty of other programmers more than willing to post SO questions.

For me StackOverflow is similar to wikipedia:

- stackoverflow tends to have the most relevant answer when searching on a programming problem .

- wikipedia tends to have the most relevant answer when searching for broader/more general knowledge, .

Also recently I took up adding details to answers on stackoverflow that help me, or that have incomplete answers.

Nothing can beat a quick search and hitting the direct answer on even very basic question.

SO saves time and nerves of countless newbies, myself included from RTFM-ing through each vendor's convoluted ways of presenting messy instructions or being abused on IRC by OP's :)

That is a really complex matter. However much time was saved it's value for mankind, the value added depends on what the programmer does on the spare time he gained from the increase in productivity and what value does mankind puts in these activities.

(note that value for the world as stated in the question is a lot harder to grasp)

At the end of the day it's a matter of knowing whether the programmer was the bottleneck of the productive system he is a part of or if he had slack capability.

EDIT: I was going to post a more complete answer, with references bells and whistles, on Stack Overflow, but having never created an account there I didn't have the 10 reps minimum. Kind of dumb for a question with zero answers IMHO.

I have been a professional Java programmer since 1999 and I am comfortable stating publicly that StackOverflow can save a lot of time. In fact, I would be willing to pay for it. However, I don't always agree with the 'accepted' answers.

Stackoverflow is a very good model for future Q&A websites. The aim of Stackoverflow is not just to answer questions but in the process be the largest software knowledge base of programming related topics. Personally, I find Q&A based system very nice to learn and absorb information rather than the traditional manuals/API docs.

Shameless plug - I did some analysis on closed (or low quality) questions on Stackoverflow [0]. I owe immensely to Stackoverflow for my doctoral dissertation.

[0] http://bit.ly/GFNNLm

StackOverflow saved me enough time that I ended up thanking the folks at SO and CV who helped me in the Acknowledgements section of my dissertation.

Below my committee, but above the good people at Dr. Pepper.

Pretty much, yes. In fact I wonder how you can release a complicated product like a mobile device SDK nowadays without millions of eyes solving and documenting problems.

I used to trace into disassembled library code to root cause issues. Now that's somewhere between infeasible and impossible. On Android I can sometimes look at the source to solve issues. On closed platforms I have to rely on cut-and-paste from StackOverflow forums.

Commercial software vendors are lucky SO users are doing their documentation and testing services for free.

I found it hugely useful in the .Net world. With closed source, obscure errors cannot be as easily tracked down, especially when they are not covered by MSDN or a prominent blog. A couple years after switching to an open source stack, I barely use it at all, and when I do finally hit a wall and ask a question, I get an answer ~20% of the time (compared to 90%+ when I was in .Net). I am a huge fan of SO, but good docs and readable code go a lot further.

Stackoverflow is awesone and for me, it has saved me countless hours of thinking, even on non mainstream platforms like FPGA design. That said, I hope for one improvement. I would like to upload my code into a machine with a command line...and those who are on stackoveflow can with login, try their hands at it without having to ask me. This way, they will save time trying to reproduce my sandbox.

I am always impressed by the amount of effort some people put in answering stackoverflow questions.

I have sometimes been answering stackoverflow questions, that I happened to come across and that I knew the answer to. I gave that up because my answers stood next to other people's who obviously spend extensive amounts of time researching and compiling their answer.

SO has helped me tremendously in learning new languages. Java is the first language I learned really well, and it's great to be able to ask SO questions like: "What's the equivalent of an abstract class in Objective-C?" Answers to questions like this aren't exactly easy to extract from the "manual."

(Not read the article yet, just answering to the question for myself.)

I sometimes use stackexchange network (more precisely: tex.stackexchange.com) to provide many, many answers and I have spent hours over hours there, mainly to procrastinate. So, before reading the article, I'd say it evens out. But stackoverflow really helps me a lot.

How can £45k per annum equal £12.5 per hour, what am I not getting? Is he assuming average 69 hour work week?

Yeah, it is very rough:

a) 45k has not been the average for the years leading up to 2013.

b) 45k is pre tax, 33k is post tax.

c) I suspect that SO is used more frequently by people on the lower rungs of the pay scale.

d) The average for "developer" (which is the biggest group in the stats) is 40k.

As a side note, wow 45k is a massive number.



No weekends, no vacations, and 2 hour daily unpaid overtime. :)

Probably, back of the envelop calculation, with a lot of rounding in the parameters.

StackOverflow was indispensable for learning to code Python. Every single time I googled a question, StackOverflow was right there at the top with a high-quality answer. Sure, the Python docs mighta-coulda led me to the same answer, but for searching efficiency StackOverflow won hands down.

This first hit just got me working right away with vagrant. http://stackoverflow.com/questions/14404777/vagrant-hostonly... I'd pay $1

Don't hurt yourself trying to pat you on the back. The vast majority of those questions have already been answered by Google. Some people just like paying.

In other words, if you pay for something that you could get for free with just a bit more effort, how is that saving money?

It's certainly a nice, central place to ask for help. That said, we got by pretty well with mailing lists in the past. Stackexchange did a lot of work to reduce the friction of asking and answering questions, but the basic mechanism was there in the past.

StackOverflow is good is some ways, but if you have a solid base knowledge of programming you shouldn't really be looking there all the time in the first place. It's a great website but it's also definitely made coders lazier.

Did you notice it was John Carmack who said what's in the title, right? Has StackOverflow made John Carmack lazier?

Anyway, in his twitter TL he has an answer for a quip similar to yours:

> "people probably said similar things about books..."

Yup. Reading books has made people lazier, because if they had knowledge about [topic] they shouldn't be reading about it anyway.

Github has been a much more productive resource for me as well as blogs. Yes, every now and then I find something valuable on StackOverflow but too many times the question I want answered is deemed not worthy or the answer outdated.

More likely it had merely promoted the quick and easy pop culture, where people no longer take the time of reading a book. After all you can just use google and look up your next short fix.

Oh I hear you! I can't say how much I regret all the time spent in the 700-800 pages of these Wrox or Addison-Wesley books trying to find that one line fix. These were the good old days!

Every Wrox book I've come across has been terrible. If I wanted to read raw documentation I'd do that, when I spend hard money on a technical book I want to benefit from some practical expertise and I don't want an infodump of reference info that's already out of date by publication date.

Now that this has made it to the frontpage of HN, I'm waiting for someone to write a post on the millions of dollars lost in productivity because of HN.

Yes such is average pay in the US or the UK, but these happen to be the top paying countries in the world. It's not average world pay for a programmer.

Is this a question? Or a user with 31k points using skeptics.stackexchange as a blog host? The back of the envelope calculation was fun to read, though.

Yes, the same way a widespread virus is said to have costed "billions in lost productivity" too.

That is, BS estimates of an essentially non measurable factor.

Let's not forget that StackOverflow has basically replaced ExpertsExchange for everything.

That alone is probably worth $1B+.

"closed as not constructive"

Wikipedia, Youtube, Google, StackExchange, should all get world peace awards.

A donation should suffice (they are running a campaign now, BTW) :)

Foodstamps and cat videos are the new bread and circuses

Two words you youngsters probably don't remember - Expert Sexchange..

What about it? I very much doubt that Experts Exchange saved billions of dollars in programmer productivity. I was always annoyed at landing there from searches before Stack Overflow existed. And it is/was much harder to use than Stack Overflow is today.

Pointless speculation. Value is not the same thing as a nominal price. Individuals value things for their use in accomplishing certain ends. The notion of aggregate value derived by summing arbitrary numbers is absurd and meaningless.

If I define taking a piss as saving me $10/hour in productivity, then I can arrive at a number of $2,847,000 saved by me urinating an average of 3 times a day throughout my lifetime. That says nothing about productivity and clearly my piss isn't worth $2,847,000.

I'm certain that Stack Exchange in general--and Stack Overflow in particular--has saved a huge amount in programmer productivity. However, what the OP hasn't taken into account is that Stack Exchange sites can also suck up potentially productive time, as well. Although this loss is difficult to quantify, I'm sure it's not anywhere near the magnitude of time saved.


Applications are open for YC Summer 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact