Stack Overflow has definitely given better organization to the corpus of data borne of programmer on-the-fly discovery and for that I and all programmers are grateful, but SO has made some serious mistakes that have hamstrung it.

First, the reputation system is inadequate and there are many people who game it. SO tried some interesting things, but "accepted answers" and the push to accept answers has always sucked. It rewards rapid-fire, crappy responses instead of thorough ones. You'll often find people just copying the page summary from Google or some other tiny snippet of text without context so that they could post first and get the "accepted answer" checkmark and the upvotes that come from the short time at the top of the page. Someone else will take 20-30 minutes to type out a thorough, good response that considers ramifications and end up with nothing. There's no way to recognize multiple answers, so if multiple answers contain valuable information you have to pick one to favor. There's also no way to deprecate answers if new versions break things; the best you can hope for is that the OP will know about the change, remember giving that answer one day, and go back and edit it. You can't change acceptances once awarded, and some people will accept answers without even trying them.

Those basic flaws in the contrived reputation system have caused problems on SO since day one and deterred many good contributors who weren't interested in racing against amateurs who just wanted to copy and paste answers.

Second-most damaging imo is the aggressive insistence on moving everything to other StackExchange sites and everything becoming a closed or karmaless ("community wiki") question on SO. A lot of relevant things were killed off on SO and moved to obscure StackExchanges where they never got a good answer. This deterred contribution, especially on questions that were cross-disciplinary as your question would get stuck in a loop where moderators on SO would say "this should be on SuperUser" and moderators on SU would say "this should be on StackOverflow". Really it'd work fine on either. I think that part of why this got so out of hand was another component of the reputation system, that automatically gave those most likely to race to Google and copy and paste the first result moderation powers. If you give people shiny new toys, they'll want to use them, and you'll end up with a lot of unnecessary infractions being filed and stifling communication.

On top of all of that, a large reason SO even gained any popularity in the first place was the star power of Joel Spolsky. With such serious flaws in reputation systems, I'm honestly not sure that it would've gotten off the ground if not for his association.

I don't know that SO is ever going to grow out of these problems as they probably now feel their rep system is validated (falsely believing the rep system caused the site's success instead of acknowledging that the site is successful despite the rep system), and I think they've just relied on new people entering the groups outlined in this post. I don't know that they're going to run out of those people anytime soon, but it'll be interesting to see what happens.