Judging by the number of answers I see which were valid and good answers in 2011 and are horrendously outdated now, it's not just grown up, it's grown long in the tooth.
That's a really good observation. A lot of very highly ranked answers no longer apply, and still they are very visible due to their score.
If the idea is to be the "wikipedia of programming", I wonder if "votes" are enough. Should there be an active initiative to prune stupid/bad questions? Revisit old answers?
It's actually worse than that. The accepted answer by the OP is pinned to the top forever (or until OP changes his or her mind, which is often never), no matter how many downvotes the pinned answer collects.
Then you vote to close the question. It may take a while but, eventually, it will be deleted. Just yesterday, I closed three or four such questions in a brief visit.
The only questions I've seen constantly outdated are web dev related. More stable technologies like C/C++/python seem to have up to date answers most of the time (purely anecdotal).
Lately I've been working with c++ and, at least in my experience, as a developer who's native tongue isn't c++, many of the answers have failed to keep up with the radical changes in the language in the last 10 years. Post-17 C++ is completely different from pre-11 C++.
That said there's usually an answer further down the page with a more up to date solution, it's just not the accepted or most popular one.
True, but consider your user base. I, for one, maintain legacy C/C++98 code. C++17 answers are not helpful to me because the legacy system does not have a new enough compiler, sysroot, etc for me to take advantage of them. It's not like web development where users' browsers auto-update and you can start immediately using the newest versions of everything. Only our newest projects are using modern C++ (14).
I would wager the majority of C++ users "in the field" are using 11 and below and haven't had a good opportunity to switch to 14 or 17 yet. As such, answers that seem outdated to you may be a good fit for the majority. It's sort of like how any native answers automatically float higher than boost answers - why is this? Because most c++ users are not using boost and have no interest in using boost.
I've used stackoverflow for years and have never heard it put like that.
"Stack Overflow ultimately has much more in common with Wikipedia than a discussion forum. By this I mean questions and answers on Stack Overflow are not primarily judged by their usefulness to a specific individual, but by how many other programmers that question or answer can potentially help over time."
Personally I would have been much more understanding of the process of using stackoverflow if I knew this, and so would many of the people who get stung expecting an answer to their question.
In reality the user is contributing their question to the community, not asking a question in the traditional sense. That's my take anyway.
I guess what I'm trying to say is by either adding features or moving to a different model, they could reduce the flow of duplicate/bad questions and lackluster/mismatch answers.
One area I wish there were more support in is to aggregate all the knowledge that is split across multiple questions. I think this could be helpful for beginners, but also is extremely specific areas as well.
For example, I imagine that a lot of these bad questions come from beginners. So, aggregating answers about common beginner misunderstandings with a library or system into a wiki page. Or, there could be a "getting started" type page that goes over the basic steps and concepts.
This is obviously getting into the business of writing docs for projects that either don't have them or don't have good ones, but it seems from the existence of stack overflow that this is actually necessary.
Then again, there seems to be tons of questions on projects with really good docs and tutorials. So, maybe you're right and it's just that the people asking bad questions / giving bad answers don't read docs.
I think this is a good observation, but I still don't think it completely explains the hostility on SO, which quite often seems like an even more hostile and juvenile version of certain Linux distro mailing lists. It honestly seems like most of SO is people screaming "RTFM n00b!" and downvoting questions into oblivion.
I think the game-ification of SO (in the form of badges, scores, privileges and rules) attracts personalities who crave that shit and don't see any problem with being harsh and dismissive to others that don't follow the rules (as they see them).
Regardless of how much SO may say that it's about "the community" rather than the individual, it BECOMES personal when an individual has a genuine problem and gets treated like crap.
The whole stack-exchange scene has become an incredibly weird place to ask a question. I find value in it and use it everyday, but I dread asking a question there.
The rules are exactly what is gamified via the points and badges system. You can’t fault anyone for responding to the incentives they are given, when explicitly set out by the site owners via that system.
The personalities attracted by it are the ones that made it successful, by design. Otherwise it would be just another Yahoo Answers. The “rules” only changed after those contributors had made it a success. Some of those people apparently feel it was a “bait and switch”.
> You can’t fault anyone for responding to the incentives they are given, when explicitly set out by the site owners...
Oh yes you can!
I remember stackoverflow in the early days and it was useful from the beginning. Sure, there were always some persnickety zealots who acted as self-appointed police "protecting" the community from subjectivity and duplicate questions with all the sensitivity of a clock-maker wearing oven mitts.
In the last 5-6 years, however, it has been overrun with such strange behavior. One can't simply ask a question unless it meets an unreasonably high standard-- and even then perfectly good questions get slapped down for no reason at all.
SO literally gives you a reward in the form of a badge for your profile the more you flag questions! They give you a badge for downvoting, a badge for editing... The root cause for all these behaviours lies with whoever dreamt up those badges and chose what to award them for.
Worse than the badges is that the more points you have, the more features you get on SO.
Which could be a positive (it certainly makes sense that the most engaged people should be the community moderators), but when combined with how points are earned, it would naturally lead to weirdness like the swaths of downvoting, reporting and totally unnecessary grammar edits.
There's a (fairly low) lifetime limit on receiving points for edits. Once you've earned the editing privilege, you no longer earn points. And you lose a point if you downvote an answer.
How many people use badges as incentives? I completely ignore mine, except for the gold ones that let me mark a duplicate without waiting for anybody else. And I'm always careful to be 100% sure before I do.
SO loves those "click-bait" questions. I.e., "why does this weird thing happen in C++." 99% of the time, these questions are nothing more than trivia, AND they are posted by a person who already knows the answer and is just gaming for 10k+ upvotes.
All while asking or answering a legitimate question is likely to be worth maybe 2-3 upvotes and risks getting down voted into oblivion.
In the heat of the moment I’ve had to delete comments because I got so upset at that kind of over the top rules lawyering. I’m not quite ready to burn my SO bridges, even if 90% of my usage is read only.
Agreed. I've seen this position before, with the attendant "SO isn't hostile, the users are just wrong", and I don't buy it any more now than I have in the past.
It's way too common to see exchanges like "The manual for X is factually wrong, so how do I really do it?" "RFTM!" or "I want to Y, which is not covered by similar question X for reasons A, B, C." "Closed, dupe of X!" Or for that matter, "How can I X?" and "I'd like to X, help please?" each closed unanswered as a dupe of the other.
Building for the future, not solving for the moment, is a perfectly reasonable sentiment. I can understand using that argument to close "what's the bug in my code?" questions, or for that matter "how do I X under these self-imposed restrictions?" But in practice, it's frequently wielded like it would be on a nasty mailing list or Usenet group, to tell people that they shouldn't do what they're doing and therefore don't deserve an answer.
A version of that is published in the Help Center and The Tour--both which everyone is directed to but nobody reads--and then everyone argues with us about.
> Personally I would have been much more understanding of the process of using stackoverflow if I knew this, and so would many of the people who get stung expecting an answer to their question.
What do you mean here? Why does a separate answer to unknown future readers take precedence over the answer the poster (and other future readers) was looking for?
Why is probably explained somewhere on codinghorror.com. Probably in many places.
The issue isn't why that is, but the very fact that it is so. It's not obvious, and it's not really how people use StackOverflow, in the same way Kickstarter used to believe (probably still does) it was about investing in indie creators, whereas people really used it as a preorder store and a marketing platform.
> Personally I would have been much more understanding of the process of using stackoverflow if I knew this, and so would many of the people who get stung expecting an answer to their question.
My gut feeling is that this worked better in the past because Stack Overflow was at a smaller scale, and the audience was a bit more insular and willing to read stuff about how the systems work on Stack Overflow (programmers love understanding rule systems; it's literally their job most of the time). Now that SO has achieved permanent world scale, the constant influx of new people who don't take the time to learn the ambient norms before posting, and thus cut themselves on what they perceive to be unnecessary sharp edges, is getting .. large.
Most of this could be solved by a very detailed, educational multi-step /ask page in my opinion.
I admire your optimistic view of how many users would read such a manual when all they want to know is why doesn't this code do what it's supposed to and can you hurry I need this by 5 pm?
But... I do agree that a detailed, educational multi-step page (with examples!) would be an improvement over the current here-are-the-8-rules-for-asking-ok-now-have-fun page.
When I wrote my bachelor thesis about democratic methods in online communities, I found out that all these crowd-sourced sites had one major problem.
When they start, senior players in their field of work laugh at them because they don't have much content. So they try to get as much as possible, trying to get as many new creators on board as they can.
Later, when they have grown enough, the senior players in the field laugh at them because they have mostly garbage content. So they try to increase the quality of their content.
The problem here is, now they accumulated a vast mass of creators who love the site, but only a fraction of them creates quality content.
They unleash a task force of moderators on them that kick out the low-quality creators, which improves quality, but bad for the morale of the whole community.
Wikipedia did this and Stackexchange does this too.
I think, instead of alienating existing creators by deleting their content, they should simply make high quality content more visible.
Being a community manager is a thankless, unrelenting assault on your confidence and emotional and social stability.
The social Internet's linchpin has almost always (since as long as I can remember) been that it requires a certain kind of person to be an unpaid community manager (by any name), and nearly every site you visit (wikipedia, stackoverflow, reddit, etc) makes use of these nonployees.
Sure, this isn't sanely doable with the current state.
I mean what should they do?
Write two pages for every article, one where everyone could write and one where moderators accumulate the quality content?
That won't scale.
Maybe they need a VCS based approach, that merges only quality content but keeps all low-quality content in dead-end branches.
I don't know what the solution would be, but the current approach is sub-optimal. Not because it's not nice to delete the work of people, but because they don't motivate people to do a better job.
"Being a community manager is a thankless, unrelenting assault on your confidence and emotional and social stability."
Oh man I volunteered to moderate on a large gaming related forum ages ago. The amount of BS you deal with along with personal attacks and etc is pretty high. I never felt emotionally upset by it as I felt you had to maintain an even keel .... but it certainly is not a job for everyone and the rub is the folks who WANT to do it the most are often the worst at it. Being a good moderator is not a skill everyone has, but it's also not valued in any real way by most communities / companies.
Really the most frustrating aspect were the non trouble users who seemed to go to bat for the folks who were truly bad actors because of some perceived injustice (lie)... and all the meta that goes into that.
My favorite moments from moderating a small, semi-private video-game related board:
- an administrator completely shutting the board down overnight because of a romantic encounter that went down poorly.
- a prolific troll - who finally finally got enough of his accounts, sub-accounts, and sock puppet accounts banned that he effectively lost access to the site - texting me late at night demanding an explanation for why he was banned.
- people being outraged that we asked them to donate a small amount of money (somewhere around a hundred dollars, collectively) to help run the server, then offering to run it on their spare computer in their basement
- discovering that due to a relatively unknown feature of PhpBB, we had a whole secondary parasite community that didn't show up in user registrations, and that had a whole private forum set up that nobody else on the board was aware of. It was like opening up a basement closet and discovering that it's a secret night club.
I hate the word "entitlement" because I think it gets used wrong a lot, but oh man folks perspective when it comes to the internet ... a lot of that. Users just feel it should be free and even a minute of downtime and they want answers, about a gaming forum (god help them if they just went to play games for a bit).
As for the prolific troll thing, one site I worked (well volunteered) was a popular commercial gaming site back in the day. Threats, fake accounts claiming to be lawyers, etc. The site made money and all and had some really dedicated trolls. One they actually took legal action against. I assumed it was just some kid with too much time. Turned out to be a dude in his 40s.... in fact many of the most dedicated trolls turned out to be adults. Kinda shocking to me at the time as I was younger then and just assumed they'd be young dumb kids like me...
Yeah I was surprised they even did it, not just legal action, but legal action in another country. But that company did have a presence there....
The handful of actual legal actions never were well known, it was amusing as the dedicated trolls talk big about every perceived injustice or slight or straight up lie they would make. Even posting on other sties about it.
But the only legal actions I was aware of, word never got out. I suspect when it gets real they get quiet fast, or their lawyer tells them to shut up.
> but it certainly is not a job for everyone and the rub is the folks who WANT to do it the most are often the worst at it.
This is correct.
As someone who has run forums for a number of years, I can honestly say I've fired 70% of the volunteers for exactly that reason. They wanted to impress their clique and use the power. In reality, it is more about using that power as little as possible except for things that might create a legal issue. (i.e. DMCA)
The other 30% I got rid of were due to activity. (i.e. Would go inactive for 30+ days without notice)
So, is it kind of like if you desire to be a politician (or any position of power), you are definitely not the kind of person who should be a politician?
The altruistic people who genuinely want to help tend to be squeezed out of the system by the power hungry authoritarians. See: pretty much every communist revolution ever.
This is true, there is definitely a lifecycle to these sites (which even perhaps applies to forums too), it can be seen in all large online communities (and perhaps all communities?).
There's another even more fundamental problem though which emerges at every stage. The people who want to participate the most at any stage are not the most qualified, and the people who are qualified to answer are busy doing instead of answering. It's not just that inevitably you need to kick out bad content, it's that the people doing the kicking out don't know enough to judge what is good and what is not.
So by the time you get to the recruiting moderator stage most of the people interested in becoming gatekeepers/moderators are not at all the people you actually want to be gatekeepers (those people are generally too busy or not very good at such things), and your moderators are a self-selecting group who are more interested in form and adherence to rules than content.
What you are talking about is more a problem for a site like Wikipedia which ends up being quality limited because the quality of its users. Stack Overflow is more about finding a needle in the haystack. Which is a scenario less susceptible to those problems since it generally requires experience, rather than expertise, and can be validated by the people involved. Which is also why it would be counterproductive for SO to not manage the size of the haystack.
I got bored of scrolling through it. I know it's just someone's blog but I'm always a little surprised when grown-ups use stupid little cartoons and memes.
That's appropriate considering Jeff hasn't worked there for more than half the life of the company. Stack Overflow is a piece of software that I would consider complete. I hope their future is just more of the same. Sure there will be small improvements to be made over time, but the radical days of product changes are far behind. I'm going to guess that in 10 years the site will still be recognizable to anyone who uses it today.
Entirely possible .. but I desperately hope that the /ask page is reworked from the ground up to be a much more engaging sort of dynamic tutorial. Most of the friction from people colliding with the SO system is on that page, and it hasn't materially changed since 2011.
On any given day when I'm being really productive I try to go back and count the number of tabs I have open on SO. I certainly enjoy watching my rep go up from the one time I answered a VueJS question when it was still kind of new but really I don't think I could do my job without the site. The amount of negativity that gets thrown towards it is really ridiculous.
Listening to Jeff try to describe what stack overflow is and the “fundamental misunderstanding” by all of us millions of unwashed masses is amazing.
It’s also a bit like listening to a muskox describe why it decided to grow long hair after so much time in the snow; IOW, a complete and total lack of understanding of emergence and a rewriting of history at the behest of Jeff’s enormous ego.
This is what happens when you raise massive amounts of money for what is a simple question and answer site and you have to find some kind of philosophically transcendent exclamation of what it is that you have created. Instead of saying “we created yahoo answers for programmers, but with a better interface”, you come up with something like “We’ve created a valuable resource for the future of the planet and all the programmers hereafter”.
Stack overflow is and always was a question and answer site. To attempt to take credit for the following value of search results containing stack overflow questions that have already been answered that sound like what you’re asking is to take credit for search engines and to take credit for your users’ hard work.
That last bit doesn’t surprise me at all, given that Jeff’s post ends with an insulting meme that implies we are a dumb mob.
Oops, thanks - corrected. Also makes my deleted last paragraph’s speculation a little bit irrelevant, nominally, while also remaining entirely relevant.
I don't think you are giving Stack Overflow's leaders enough credit. There were many Q&A sites before it, but Stack Overflow was much better for the lurkers, and all of that content is licensed under Creative Commons, similar to Wikipedia.
Also, Jeff is not trying to take credit for the users' hard work, I'm a contributor and I don't feel that way, especially after reading this part:
> I am honored and humbled by the public utility that Stack Overflow has unlocked for a whole generation of programmers. But I didn't do that.
> You did, when you contributed a well researched question to Stack Overflow.
> You did, when you contributed a succinct and clear answer to Stack Overflow.
> You did, when you edited a question or answer on Stack Overflow to make it better.
Stack overflow was instrumental in my early programming career, because without it I would have had to read entire volumes of information to solve simple problems in some cases.
The issue that I have is the attempt to pretend to have guided the course more than was the case. SO was a Q&A with a tremendous UX, and the users used it to help each other. That’s it.
Even this nonsense of “gamification” is just ego-driven marketecture. Up and down voting has been a staple of the Internet for a long time. Voting up an answer is not gamifying it. The only thing even remotely game like about SO is that each question can have just one selected “corrct” answer... which is also basically the case on most Q&A sites, including yahoo answers.
Also, the extent to which Jeff and Joel attempted to curate this process is the exact extent to which the process tended to get in our way; deleting questions because they are “off-topic”, even though hundreds of people up vote them and want to know the answer, etc.
These are the decisions that ruined SO for manny developers.
"[All SO had was] tremendous UX" - that's no small feat. Remember expertsexchange et al? And the data-cloaking tricks? "Pay up or no answer for you"? shudder Those were dark times...dark times.
Perhaps SO is not the knight in shining armor, as it may have seemed then, but it certainly helped change the landscape for the better.
> and all of that content is licensed under Creative Commons
it's CA-BY-SA IIRC. In other words if you copied and pasted a snippet from SO you now need to open source your project (the SA part of CC-BY-SA). I'm surprised someone hasn't written some ransomware that scans SO for snippets and compares them to github and starts sending out the "pay up" notices.
If that makes a substantial part of the project. Of course, the meaning of that is likely to be decided by courts...but if your project literally consists of 50% recycled SO content, it might suffer from worse issues. #understatement
Last time I went through some sort of acquisition process, the purchaser had some third party look at the source code looking for stuff as you described to be corrected and this was at least five years ago.
The two main pillars of the stack overflow experience as a contributor:
- Gameify all metrics to an absurd degree, using gold-star-sticker style incentives for every given interaction type.
- Take the metrics a seriously as possible, creating a baroque network of norms and code that a user is always, somehow, in violation of.
So if it gets upvoted too much, it SHOULD be flagged as community wiki. There was a long discussion where users were complaining about answers that were posted too fast, preventing the complainers from getting points. If you misclick, then retract it, you can't vote again. Why? Because users were downvoting everyone who competed with them to float their answer to the top, then retracting.
The overall culture the site has a deep aspect of working the referees as much as possible, and the extreme hands on nature of how they regulate people's Fake Internet High Scores is to blame for it.
> Stack overflow is and always was a question and answer site. To attempt to take credit for the following value of search results containing stack overflow questions that have already been answered that sound like what you’re asking is to take credit for search engines and to take credit for your users’ hard work.
I don't know man ... while I can kind of agree with the general "thing" you're trying to convey here (that of SO hard-headedly blaming users for "doing it wrong"), this particular point is one that I'll have to defend him/them on -- SERP-as-an-interface was a primary consideration from day one. I listened to all the podcasts they did during development, and they were pretty explicit about it in all the blog posts. They knew that most people would arrive at a previously asked question via search engine, and they optimized the experience for that reality. That's why they wanted each question and answer page to be an "artifact", something that grows over time, gets edited, improved ... precisely because they thought of this ahead of time ;)
I once had it turn out to that the post was made by my project manager 5 year ago, trying to fix the same obscure bug he'd just assigned to me, and running into the same problem I just did. He'd completely forgotten about it.
The SO strategy from the start was SEO driven, specifically so Google would pick up SO content. It worked like a charm. Sites before them were closed to Google or hid answers, so it was an important strategy and key differentiator.
Maybe today you go directly to SO to search like you go directly to Amazon for product search, but at the time being open and leveraging Google was genius.
I mean, stating “Google will index our answers! We should avoid duplicate content.” is about as transcendent as calling “select the best answer” a form of “gamification”.
Again, stack overflow is just a better UX for the already proven Q&A model that’s worked for ages.
>Instead of saying “we created yahoo answers for programmers, but with a better interface”, you come up with something like “We’ve created a valuable resource for the future of the planet and all the programmers hereafter”.
But StackExchange is incredibly different from a "Yahoo Answers for Programmers". A Yahoo Answers for programmers would be an endless stream of "How is Hello World babby formed?"
For all the times I've stumbled on Yahoo Answers, it has almost never helped me solve a problem. StackExchange helps me almost every day, in spite of the fact that I'm not the one asking the question.
Having an environment where contributors compete, askers are held to high standards, and moderators are aggressive can be harsh, but I have yet to see a gentle system that gets quality content out of anonymous volunteers on the internet.
Before I did a couple of rage quits on StackOverFlow, I wanted it to be the definitive place for learning any computer topic from the beginning through advanced topic, especially esoteric topics. You could easily build the ultimate learning guide given enough questions, linking, etc.
I spent quite a bit of time on elisp questions. For example:
It's not a bad idea, but speculative questions (will anyone really ask this?) lead down the path of the "documentation" effort which was hugely risky and eventually got pulled. https://stackoverflow.com/documentation
There are definitely problems with outdated content. SO + Google seems to be particularly bad at finding accurate answers without cross-referencing several different posts all linking to each other, combined with forced immutability and the difficulty of some changes.
Some other sites like Quora have a full question "merge" feature which SO needs, it would cut down the duplicates and allow a single question thread to become more useful.
SO has a "merge questions" feature, but it's rarely used. It is only available to elected moderators, and it's quite dangerous because it's not reversible without assistance from SE staff.
One major problem is that merging two very similar questions that are about the same concept would still end up with answers that seem out of place because they address a slightly different version of the question.
Most cases should be solved by closing as duplicate, as that will create a link to the canonical answer. Anonymous users will also be automatically redirected to the canonical answer if there are no answers present on the duplicate.
Most of the time, there are existing answers and "closing as duplicate" leaves up all of them as a separate question thread that just confuses everyone. The links between them and the duplicate message are not intuitive and easily overlooked, leading to an expectation of unfinished answers.
Quora meanwhile has completely reversibility, and allows the community to do it. It's caused some problems but overall has cleaned up many common and repetitive questions.
One challenge not discussed here is when an accepted and highly voted answer _used_ to be a good answer, but no longer is in later versions of whatever software/platform/library is discussed. This is also something that gets worse over time, like the uniqueness problem.
I think it's worse than the uniqueness problem, multiple duplicate _good_ questions/answers don't actually harm, misguide, or delay anyone looking for an answer; one _wrong_ one does.
And of course, if you try to ask a question again because you think the old one might be outdated (if you were _sure_, you wouldn't have to ask probably), it'll likely get closed as a duplicate. :)
Remove the entire concept of "accepted" answers and let votes decay or be withdrawn, along with scoring the rankings using time as an additional input.
Quora has recently introduced secondary voting mechanisms where answers will randomly have a "is it still relevant" toggle for users to continue providing signal beyond the initial vote.
If they’re timeless they should continue to get votes, no? Even if everyone stops voting in a thread all the votes would decay at the same rate, so the timeless answer would stay at top.
Decay will apply to all answers so it'll still stay at the top of the rankings unless a better answer comes along. Tons of options but better than the static scores we have now.
Yes, that's how it is today. That's why I want proper merging and decay, so that fresh answers actually have a shot of getting to the top while people see a single relevant thread.
Maybe a good answer won't rise to the top, but it will go up over time. I answered a question 7 years after it was asked, and at this point my answer is #8 out of 59. I can't argue that the 7 above me aren't better.
Instead of decay, you could just embrace the concept of vote inflation. If a site continues to get more popular the number of votes (in both directions) will grow in proportion to that. It is normally a problem, but in this case could be an asset.
This is an interesting point. For sites like Reddit, inflation is just a (minor) drawback because it means total vote count is a measure of (quality * recency) instead of quality.
But for SO, where voting is never locked and content 'ages' at different rates, it's not so clear there's a downside. The "closed as duplicate" issue still stands, but rising user count is probably helping the problem.
It seems like the rate of site growth and the rate at which you expect answer value to age are independent, so it would be surprising if they were approximately the same and cancelled. And at the very least, SO popularity has to plateau at some point (if it hasn't already).
That's just another "vote" then. What's the point of having answers with a vote and a second if people will just do both?
The issue is that relevancy has a time-component, so there needs to be way to age scores as well to make sure the best answer for that time period is at the top.
I don't mind the Accepted label, however they are sorted at the top by default. They probably should change that to "sort by votes," so the best answer can change over time.
The chosen answer was not the best, so my answer ended up reaching the top. But note that after 7 years, my answer, although still correct, is no longer the most efficient way to do things. Better alternatives are rising up.
The only case where an accepted answer is not pinned to the top is when the accepted answer was posted by the same user who asked the question. Your link is an example of that.
Actually I've rarely considered duplicate questions as a bad thing, I like to open a bunch of related questions (usually a couple of them tagged as "duplicates") and check which one fits my problem better.
Recently I have really started noticing this exact problem. Every answer (usually from closer to 2010) I have looked at is recommending using jQuery, even though there are perfectly fine ways of doing it without jQuery in 2018. I've taken to looking the dates of answers and ignoring any that date from more than 2-3 years in the past.
If you still support IE11 very little has changed in the last 2-3 years. JQuery is still king. Companies that support large enterprise or government absolutely require IE11 support, since these places are required to use it due to exclusive e.g. Java Applets/Flash/ActiveX, etc.
Microsoft's decision to drop those technologies from Edge was kind a mixed bag. From a security perspective it was the right decision. But it has also stuck many of us developing for a non-evergreen browser, even while our users are on Windows 10.
It's not just a requirement to use old plugins. There are still serious drawbacks to upgrading from Win7 to Win10, and Edge is not available on Win7, while IE11 is available on Win10 (because Edge wasn't viable yet when Win10 was pushed out.) So the Win7 users that won't use FF/Chrome are stuck with IE11, and many Win10 users continue using IE11 for various reasons. (Familiarity, corporate policy, plugins, etc.)
I think Microsoft has made a mistake by stopping the addition of standards-compliant features to IE11. They should keep supporting it and modernizing it until the userbase has moved to Win10 on its merits, instead of trying to use IE11's aging as a lever to force Win10 adoption.
I believe the mistake is the same one that dates back to IE7/8 in that enterprise customers are at all given the option to always load intranet sites in "compatibility mode". It's really stupid that because of an Oracle-enforced GPO policy every time I try to open most of my company's intranet sites in Edge, GPO policy pops it into a new IE11 window, and corporate-enforced IE11 add-in pops it into a new Chrome window. This is madness, and there's no way for me locally on my machine to tell Windows that no I don't care about the GPO policy, I really just want to open it in Edge and skip the other two browsers entirely.
I do think a mistake was that IE11 was included at all in Windows 10 to appease corporations, instead of just ripping off that particular band-aid. But doubling down on it and allowing corporations to default to nothing but IE11 via group-policy is the biggest mistake. GPO footguns like that are why corporate America can't have nice things, and I'm increasingly of the opinion that it's time Microsoft started dropping footguns from GPO.
(Also, note that the root problem in this particular workplace remains Oracle and their web apps that are stuck in IE6 worst practices but cost millions of dollars each year to continue to operate. Oracle is the real villain here.)
Pretty much all database questions have a severe case of this.
Huge swathes of features appear at transition points like MySQL 5.5 -> 5.6, which means lots of answers are now viable but no longer the best option. And since they are still correct, it's hard to write up new questions which won't be closed: instead of saying "Answer X no longer works", users have to say "Is Answer X still the best approach?" and get closed for duplication or subjectivity.
Worse still, lots of databases still have multiple versions in active use, so "worked great for me! - posted yesterday" isn't even a helpful reference.
There is a long tail to tech use and the answers often are the best for that particular set of variables. I think that adding tags to make it more specific in this regard as time passes can really help. If it stops being relevant when library X reached version Y, add a tag that says pre-version Y
I started learning Python this year. The number of Python 2 specific answers on Stack Overflow has been a not-insignificant barrier to that.
Almost all answers recommend using os rather than pathlib, many answers recommend using cmp functions rather than keys for sorting, etc. Not to mention all the print statements.
When he writes about ohw StackOverflow is first and foremost a wiki, he is offering a solution to this situation.
In the original vision of StackOverflow, that accepted and highly voted answer would be converted into a wiki. Then when it gets stale, it would be revised.
Not saying they do a good/bad job of this, just that, that's how it was supposed to work. And ya it would be totally frustrating as a new contrib because if the canonical answer was not converted to wiki yet, you can't really contribute.
The idea of StackOverflow as a wiki is completely at odds with its built-in gamification. Answers are written by individuals who garner points for them, and their name and avatar are prominently displayed.
A related issue: the best answer may have a link to the documentation, which may rot. Now people will down-vote the answer because broken link.
This could happen if somebody asks how to do something using some library. If the library actually has a builtin facility to solve the problem, but then the answer gets down-voted due to documentation link rot; then another answer explaining how to built that facility from scratch may become the 'best' answer, even though the re-implementation of existing library functionality is a bad idea.
> One challenge not discussed here is when an accepted and highly voted answer _used_ to be a good answer, but no longer is in later versions of whatever software/platform/library is discussed.
That's not a big problem. Questions and comments can be edited by other users, which includes adding and altering tags that reflect software versions.
That's not a solution. Tags are hidden at the bottom of the answer. Accepted status and vote count are prominently highlighted. Accepted status locks the outdated answer to the top of the page regardless of whether it's valid.
> That's not a solution. Tags are hidden at the bottom of the answer.
Yes, it really is. Tags are used to filter results. Stackoverflow specifically lets users run searches only on specific tags, or even exclude certain tags from the search results. As tags reflect technologies and their versions, stackoverflow enables users to run queries only on specific versions.
I feel like I've been noticing that this problem on SO a lot recently, so I wouldn't be so quick to dismiss it.
I'll often find answers to questions which are outdated and haven't been improved. I agree they have a mechanism in place to fix it, but are users actually fixing answers en masse? SO could introduce an age out mechanism that requires an answer to be maintained semi regularly? Do they already have this today?
They can be but AFAIK edits don't garner the editor points, so from a gamification perspective, people might be less inclined to edit than to put a new answer with the updated information.
Editing someone else's question or answer (comments can't be edited by others) is a very aggressive move and not something that anyone other than a handful of very experienced / high rep users are likely to do very often. And it is far from a perfect solution either.
Editing an answer substantially upsets the entire up/down vote system, as well as the comments. A better system would be something like question/answer versioning. In general it's a problem that has received far too little effort.
> Editing someone else's question or answer (comments can't be edited by others) is a very aggressive move and not something that anyone other than a handful of very experienced / high rep users are likely to do very often.
Do you really believe that adding a tag with a version number to a post is something that can be classified as a very aggressive move, particilarly if it's an old post?
Please be serious, you know that's not what is meant by editing old answers in the context of "stack overflow is more like wikipedia than anything else". The implication is wholesale change of the entire content of the answer (or question). Which fundamentally breaks how stack overflow works, and is why it's not something that happens very often.
I get outdated answers a lot of the time I'm searching. And that's when I can _recognize_ outdated answers. A lot of others posting here say the same. I guess it's possible we're an unrepresentative minority, and it doesn't effect many users.
Otherwise, how is it "not a big problem"? Is it the sort of thing where "in theory" it's not a big problem, even though in actuality it significantly effects the usefulness of the site to many people?
As someone who primarily interacts with SO via search engine results, it's one of the biggest problems with SO. The number of top voted/accepted answers that are 'wrong' in one way or another keeps going up and thus the chance of me finding the 'right' answer on SO keeps going down.
The question is tagged for ASP.NET Core 1.0 so there's answers that are applicable to that version. Then things changed in 2.1, which removes some friction when adding custom view locations, and another user posted an answer specifically for that version.
As a cautionary example, see https://stackoverflow.com/questions/5021456/how-does-mongodb.... The question was why MongoDB was by default able to avoid the equivalent of SQL injection attacks. My answer took what was in their FAQ at the time, and expanded upon it based on advice from D.J. Bernstein - who is famous for his ability to write secure by default code.
Then it was discovered that PHP volunteered to create security holes in MongoDB. Then it was discovered that multiple other languages and libraries likewise volunteered to do so. Had they followed the good advice that I was quoting, the problem wouldn't have happened. Despite the other faults of MongoDB itself, in this case it was truly innocent. The security problem wasn't in it, but in the libraries that were written around it. It made it easy to write secure code and they didn't.
But the result? From the point of view of a naive programmer, not long after my answer appeared it was revealed as misleading for PHP programmers. A few years later, it was actively misleading for other languages. And while the advice remained technically correct - which is why I left it - it has been criticized on reasonable grounds by several other people since.
For a long time I thought that the comment that I left in 2011 after the PHP bug was sufficient. Remembering it today I edited the answer at the same time that I posted here.
Now I could be faulted for not having responded to the comments in 2015. However I was taking an extended break from stack overflow after getting annoyed at the moderation of https://stackoverflow.com/questions/11314077/algorithm-for-e.... When I came back, dealing with the variety of things that could have further annoyed me while I was gone did not seem worthwhile, so I didn't. (It remains a pet peeve that a lot of moderators remain quick to close algorithm questions because they do not recognize DP-type problems as things which are more likely to be answerable by people with a CS background than a math one.)
It is amazing the number of replies in this entire HN thread that have no idea every single question and answer on Stack Overflow is editable, even by an anonymous user. The first item in my list was Stack = wiki for a reason!
This is a major issue. Just last week I had a student make an untrue claim about how something works based on a top ranking Stackoverflow answer. It turns out that the answer is from 2008, and was true back then, but has not been for something like 5 years already.
Stackoverflow badly needs a system for people (moderators?) to be able to 'obsolete' answers, possibly mark them with a highly visible "valid only up to version x.y of 2010" tag or something.
> One challenge not discussed here is when an accepted and highly voted answer _used_ to be a good answer, but no longer is in later versions of whatever software/platform/library is discussed. This is also something that gets worse over time, like the uniqueness problem.
It's not discussed because the solution is kinda obvious.. wikis mean editing, right? Even by anonymous users? That's also how it works on Stack Overflow. Edit the answer to make it better, more up to date, or add a disclaimer at the top that it only applies to very specific versions as needed.
The solution to dups is obvious too, right? Close em as dups? Yet that is a large focus of the article.
The solution to out-dated answers might be obvious, but apparently obvious isn't stopping it from being a problem... it's a big problem.
If it's obvious, why is it still a problem? If the answer is "because the userbase isn't doing what I want", then _that's_ a problem to which the answer is apparently not obvious. To the extent that SO has been succesful, it is of course that figuring out how to structure the software so as to get the userbase to do useful things _is_ the problem, not an "exersize left to the reader".
It's a problem that is within your power to fix, and in fact within the power of anyone in front of a web browser to fix, because it requires no permissions or even a login. When you see an obsolete answer in need of clarification (such as this only works on versions 1.0 - 5.3, or this functionality was removed in version 2.3), press the edit button and make it so.
Only to have the edit be rejected by a wonk who's farming rep by mindlessly plowing through his edit queue so he can cite his SO reputation points on his LinkedIn profile. No thanks. If you want me to spend my time fighting against these kind of policy zombies on SO, you'll have to reward me appropriately.
When SO was new, there was incentive for people with expertise to contribute it. Now there is more incentive for Wikipedia-types to go around smashing others' contributions with their rejection hammers. It's a waste of time for those who actually have something to contribute.
The last time I tried that, I edited an answer that was several years out-of-date with a rewritten, up-to-date one that explained exactly how to do what the question asked, in a well-organized, sequential manner.
My edit was quickly rejected by a user who had no knowledge whatsoever of the technical domain in question, claiming that my edit went against the spirit or intention of the original answer's author. I then submitted mine as a separate answer, where it languishes at the bottom of the page, rarely noticed by users who come looking for the answer (and it's virtually the only hit on Google for the question, has been for years). They all see the outdated, poorly organized one instead.
So my work was a waste of time, shot down by an ignorant, mindless policy wonk whose only goal is to farm reputation points.
I have not contributed to SO since. I have better things to do with my time, like publish my own documentation on readmes on GitHub.
I think the need for, or at least the level of reliance on, a site like Stack Overflow is an example of how utterly messed up the "profession" is compared to other engineering and non-engineering professions.
That's not a fair comparison, the level of diversity in ways to solve or diagnose a problem are much bigger in the software engineering world.
Where in a typical engineering profession you would have a somewhat defined checklist on how to diagnose an issue and a proven method to fix it, in software engineering you have a million possibilities: "- Did you check x? - Was this nth specific step for this specific framework followed? etc.."
It's messy because the problem space can't be as easily enumerated.
I don't know, software is far more dynamic than many other engineering fields. Even a first edition of The Art of Electronics is chick full of useful information, the only truly dated stuff is anything involving microcontrollers (so, software). Even the sections on digital logic ICs are still useful, they still see some use.
Software has always had the problem of information being outdated before the books even reach retailers. However, this is one of my big frustrations with SO. There are so, so many c++ questions with accepted answers that are now 'wrong' due to changes in the language. That, and the fanatical insistence to close questions that are opinion based closes off a lot of questions more experienced programmers will have.
I think other engineering professions could be substantially improved by a greater participation of their members in such sites. The amount of public communication and advice availible for profession electronics development, for example, is far lower than that for software (There's a glut of hobby-level stuff, but beyond the basics it gets much worse).
I like this blog post, this is the vision of Stack Overflow that I bought into when I started posting. However, it's hard not to read this blog post as a diplomatic pushback to the current efforts of SO leaders to make it more welcoming. Jeff Atwood says that SO is "supposed to involve a healthy kind of minor [...] anxiety".
This section in particular stands out to me:
> This is why I cringe so hard I practically turn myself inside out when people on Twitter mention that they have pointed their students at Stack Overflow. What you'd want for a beginner or a student in the field of programming is almost the exact opposite of what Stack Overflow does at every turn:
> * one on one mentoring * real time collaborative screen sharing * live chat * theory and background courses * starter tasks and exercises
> These are all very fine and good things, but Stack Overflow does NONE of them, by design.
If this were on the official SO blog, I would be very surprised.
> not to read this blog post as a diplomatic pushback to the current efforts of SO leaders to make it more welcoming
Not at all, at least, that is not my intent. I do feel like the key items articulated there (SO as wiki, duplicate danger, competitive system of peer review, for practicing programmers) are not well understood by outsiders and peripheral members of the community, though.
Note that the Stack Overflow tour (which was and is quite good!) that explains what Stack Overflow is was perma-demoted to the footer... well, that used to be true, but actually I just checked now and it's gone altogether? The word "tour" doesn't appear on the SO homepage in incognito mode, at all. You can visit "help" (which is in the footer) and then, and only then, will it appear as a topbar.
I feel like Stack Overflow has gotten less useful to me as a programmer over the years, and these days I more often find the answers I need on a forum geared toward whatever technology I have a question about.
I have a hard time telling whether this reflects a change in developer culture online over the years, or a change in the types of questions I tend to ask as I have become a more experienced programmer.
Questions I have are more specialized to the domain I'm working in rather than general programming questions.
No longer of the kind "X in language Y". Most of the questions about the system that I'd have nowadays can also be answered by colleagues over slack with the domain knowledge.
The way SO is moderated encourages out of date information.
For example, if you find a question from 2015, with all out of date answers, if you ask it again today it will be flagged as duplicate with a link to the 2015 answers and no further discussion is allowed. The older SO gets the worse the content gets.
They're trying to make a "Wiki site" but in a Q&A format, it doesn't work and doesn't make sense. Until they realize that their moderation policies are going to keep driving away questions that would warrant modern/fresh answers.
For example try searching SO but set your Google to only show content from the last 12 months, the results are simply low quality with half mod-dead. Most of the good content is from two years ago or more, back before the site switched from Q&A to "confused Wiki-site."
if the information in the answer is incorrect as of a certain version of the library / environment, it's perfectly fine for anyone with a web browser to edit that additional information into the post.
Does this allow you to flag a question in a way which means it shows up in the queue of unanswered questions and is thus likely to attract an answer from someone monitoring the relevant tags? I didn't see an obvious way to do this from a quick experiment.
> a change in the types of questions I tend to ask as I have become a more experienced programmer.
That is probably 50% of it. I find myself using google to solve problems about once a day these days.
When I first started, it was easily 5-10x that.
> I have a hard time telling whether this reflects a change in developer culture online over the years
SO no longer really tolerates hard questions that an experienced programmer asks.
For the past 4 years, every question I've had that I couldn't find the answer to I've had the question closed or the answers being badly flawed. Admittedly, my sample size is only ~12 questions.
The reason for this is they really, really want to restrict the playing field to questions that are jr to mid-level with clear, math/code correct answers.
When you get into more complex problems, there is usually trade-offs involved that cause moderators to close questions. (i.e. How do you X as securely as you can while still enabling Y use case that breaks the most secure option available? This isn't ideal obviously but the trade off is acceptable.)
The other problem is this discourages answers for "new" stuff because they'll often close questions as duplicates even if you are asking about Version 8 and the answer from 2 years ago is about Version 7. The problem is, if you are experienced, you already know how to solve answers for Version 7 (because you've used it for 2 years) while Version 8 is new.
Stack exchange has another site called softwareengineering which accepts questions like the one you gave as an example while stack overflow sticks to questions that have an objectively correct answer.
StackOverflow being a wiki is at substantial odds with the way answers are selected.
If StackOverflow is a wiki, then the best answer to a question should be determined by the community, not the asker, and needs to be able to evolve and change over time.
However, StackOverflow simultaneously insists questions can't be duplicated while making answer selection immutable and controlled by the asker. This results in a suboptimal experience.
I currently have the best answer to the question "How can I determine what font a browser is actually using to render some text?". The answer I gave was the best answer in 2010. Things have changed a lot since then, and my answer is no longer the best one on that page.
_But no one can change the best answer, which is insane!_ As a result, you see best answers to old questions being turned into community wikis edited to include better answers in the thread, rather than those answers being selected.
I dont know what they were thinking.. but in any wiki I have used anyone can make corrections and there is a shared responsibility to keep it up to date..
it seems to me that the statement is therefor valid - the basics of what is or is not a good answer is set by the asker not the community, which is how ticketing / Q&A systems work NOT wikis IMHO.
That's mostly a perk for the question asker. Nobody (that I know of) stops reading at the first answer, because there are usually multiple good ways to solve any problem in programming. And if the accepted answer has a fraction of the upvotes of the answer just under it.. that's another strong signal to "keep scrolling"
People definitely stop reading after the first answer, especially if it looks like a reasonable solution. It is a very common experience for me, where I won't realise that there is a much better rated answer below the accepted one, especially if the top answer is long enough so that the second one isn't visible without scrolling.
From a UX perspective, you want to put the most relevant information at the top. The votes of all Stack Overflow users gives a far greater signal than the one 'accepted' flag from the asker.
This is one of my biggest pain points with Stack Overflow.
There's zero evidence that people stop reading at the first answer. Otherwise no other answers would have any upvotes, and you can see that's not the case.
I'm not saying that every single person stops reading at the first answer, just that people drop off over the page, and in my personal experience (and talking with others), it is common to miss that there are higher ranked answers below the accepted one.
What's the value in pinning the OP's selected answer to the top, even if it has -100 votes? Or even if it 100 votes, but the second has 900? Shouldn't the overwhelming will of the community take precedence over OP's selected answer, who may not have bothered to review the answers for years?
Also, I'm sure the claim isn't that everybody stops reading after the first answer, but that the first answer does get a lot more reads than answers further down. I bet it would be possible to prove this with the right analytics.
Wow, time flies (for both the age of SO and how long since Jeff was involved).
So I'm onboard with the concept of SO as Wikipedia. Fine. Weirdly I see no mention of some of the bigger problems (as I see them). And what's weird about these problems is they were completely foreseeable by anyone who paid the tiniest bit of attention to Wikipedia.
1. TMS (Toxic Moderator Syndrome). You have askers, answerers and moderators. All have their purpose but they are not equal.
- People who ask questions mainly derive value from SO by getting answers to their problems and this is how it should be (and the karma system reflects this).
- People who answer questions. This is where most of the value is derived from.
- Moderators. While cleaning up the site has value it should be recognized that this is a utility function. The karma system reflects this but any system like this seems to attract a certain kind of personality who embodies the principle that "those who can, do; those who can't, moderate".
Look at any highly ranked answer (or question) and you'll see a litany of questionable edits (which eventually rob the answerer of any karma when that question or answer gets 30+ edits and goes "community"). I don't have a problem with this kind of pedantry.
What I do have a problem with is closing of using questions because of a culture that has decided completely on its own what qualifies as acceptable content for the site. Anyone who has used SO more than a few times will have come across useful questions that don't have mathematically provable correct answers and are closed as off-topic.
It's like the SO mods feared flamewars that never happened and in the process created an equally bad (if not worse) situation.
2. Accepted answers that are wrong (or were right but are now wrong). Why can't these be edited?
3. What to do with all that VC money. This never made sense to me but this was in the era where some (VCs mainly it seems) thought that Q&A sites like Quora were going to be the next unicorns (I never did and still don't).
This has led to side businesses like SO recruiting, which I never thought was going to go anywhere because if you say contributions to the site were a useful signal in hiring (which I'll accept as valid), last I looked at this (a few years ago) only some ~25,000 with non-trivial amounts of karma. That's not a sufficient market and pales in comparison to, say, Github repos as a signal.
4. How to handle stale information. I still see no solution to this.
I really do wonder what went into Jeff bailing 2 years in (assuming he wasn't pushed out). Joel still seems to be plugging away, which is a bit weird given he's done much better out of, say, Trello.
There's honestly nothing magic about SO. It's just fairly simple software with a clean UI that came about at a time where the alternative was the giant trash heap that was and is EE. Don't get me wrong, it's definitely useful.
The site was launched in late 2008 (hence the blog's congratulations on 10 years), and presumably there was a fair bit of work previous to that. So somewhere between 4 and 5 years.
You can't really get moderator privileges on SO without first being one of the "People who answer questions".
You can't cast a close vote without having 3,000 reputation. Even just downvoting requires 125 reputation. The _least_ experienced [diamond moderator][1] on StackOverflow has over 19,000 reputation. Reputation is earned, primarily, by answering questions. So your assumption that "moderators" are distinct from the other two categories of users is incorrect.
> How to handle stale information. I still see no solution to this.
Since you're down with "SO as Wikipedia" surely you can find the edit button on every answer and question.. which works even in incognito mode when you are not logged in?
Have you ever tried editing answers as not-Jeff? It's rarely a pleasant, rewarding experience, and usually a waste of one's time. Rep-farming wonks run the place and will mindlessly shoot down thoughtful edits.
Thanks for writing this, Jeff! I was very cheered to see a gentle but firm defense of SO's mission -- and of the users who make it happen -- this morning. Doubly so given [the latest nonsense-bomb that SO corp decided to drop][0] on those users this week.
Quick summary of that Medium post for everyone - Some unknown people accused a SE site of... something on Twitter. People got mad about it. A SE employee weighed in in support of the tweeter. Some other people claim the accusation of whatever it is is nonsense. And I don't have the slightest idea what happened or whose side to take.
> And I don't have the slightest idea what happened or whose side to take
Unfortunately most of those involved are at least a little bit right, and I'm not sure that we SE users who are upset have concerns that make any sense out of context. :) They don't have anything directly to do with the original tweet. I probably shouldn't even have linked the article.
The thing I think will be most interesting to understand in retrospect is how much of a filter the SO community has been in terms of blocking and shaping the generation of programmers who've started out since it has become the go-to site for help.
University degrees act as a filter to a certain extent. And many fields have courses at the beginning that are designed to weed out people who are not going to be successful in later coursework. And the result of that filter is a certain homogeneity people that make it through that filter and become successful.
The internet has done a really fascinating end-run around the university filter, and has been described as an an equalizing mechanism in society. But filters and enforced similarities are things that spontaneously emerge from societies--even anonymous ones on the internet.
While it's true that SO doesn't claim to be a learning resource for beginners, most google searches lead there, and that's a real part of its function no matter how much the managers claim it shouldn't be. And the response that beginners get is clear: conform or get out.
I think the social tide in the work place is moving against that kind of attitude. Developers are no longer quite the magical group of secretive wizards that they used to be, and the sort of Linus-style kind of treatment of people who aren't completely on it isn't really tenable in business situations anymore. A lot of the jobs that I want to apply for are more and more frequently focusing on being a good colleague, not just a good programmer.
I think SO has two obvious directions it can take. The first is to allow the core contributors to continue to lay down the law and remain, shall we say, aloof and concerned primarily with maintaining their fiefdoms while gradually shrinking in relevance and contributions. And the other is to, well, not basically.
I don't think either one of those is actively bad. There is value in maintaining the strict order that SO does. But that value comes at a cost. There's a high barrier to entry right now for being an influencer on SO, and that's good if you want to remain the authoritative place to find good answers. It's bad if you want a next generation of leaders to come in and replace the ones who are currently at the top when they wander off to do other things.
I remember reading a story about what happens when you listen too much to how people use your product, and the example case was Excel. It was supposed to be a spreadsheet. But Microsoft--ever the leader at market research--figured out very quickly that people were using it for almost everything but spreading sheets! And Microsoft--also the leader at getting product decisions massively wrong--decided to make Excel do pretty much everything instead of developing a separate product to fill those use cases. And now we're at a point where Excel does basically everything, and getting people to not fucking use it for everything is almost impossible.
So yeah. They need to keep a tight focus.
An interesting counterexample is EvE online. For almost 2 decades now, the games has had a reputation for being hardcore, elite pvp. The weak need not apply. Piracy, scamming . . . being the bad guy in every way is not only allowed, it's encouraged. That community filters itself very effectively. Whining about what's fair or not just makes you more of a target. People farm new player tears as much as they farm space dollars. And it shows. CCP Games has had a tremendously difficult time staying relevant in the MMORPG world and in the last couple of years has been forced to make sudden changes that really disrupted the existing community in an effort to appeal to new players. Nobody really wins there.
It will be interesting to see what happens in the next decade. It's a legitimately difficult management challenge, and I'm not convinced that it's possible to avoid what seems to be the inevitable rise and decline cycle of all social networks.
I think the 2018 Strange Loop talk "The Hard Parts of Open Source" by Evan Czaplicki hits on some things which SO should adopt. relevant screengrab: https://imgur.com/a/5xMRvtf
There was an online game I used to play called "Utopia" (closely related to Earth: 2025). It was structured in "seasons", where every 3 to 6 months, the game would reset from scratch.
I think Stack Overflow would benefit from a similar reset cycle. Perhaps users / badges / moderators can remain the same between seasons, but every 5-years or so, just reset the entirety of StackOverflow.
That means:
1. Making "old StackOverflow" read-only. The goal being, these answers may be stale and no longer relevant.
2. Migrate "fresh" stuff over to the next season. Say, everything within the past year is assumed to be fresh-enough to continue to the next season. This is automatic.
3. Users would only have to worry about duplicates within the current season.
4. Referencing an "old season" of StackOverflow is encouraged. If an old answer is still relevant, then you can ask / answer it in the new season. Provide badges for this easy job so that the community can easily push and "renew" the data to ensure it remains relevant.
5. Historical answers can remain archived. There's a lot of answers which are important for history's sake, but changing the text to be relevant for today's programmers may lose the history of some answers. As such: a historical archive of what programmers thought was best in 2013 is best left alone, but "new answers" which reference the old post + updates with new recent developments would provide context. IE: "Don't use std::shared_ptr<> with new[] in C++" (correct in 2013, but incorrect after C++ 2017, which allows shared_ptr<int[]> to use the correct delete[] operator in these cases). Documenting the history and changes of languages is important too!
--------
Yes, StackOverflow is a lot like Wikipedia. But unlike Wikipedia, the tech world is incredibly fast paced. Answers for Java 1.4 are likely irrelevant in today's world.
I dunno, maybe 5-years is too long, or maybe not often enough. But some "season" cycle would be a good rebirth / renewal period for the website.
Stack Overflow is still far and away the best site of its kind, but it has stagnated significantly over the last several years. The site runners aren't tackling the big meta problems any longer, and they aren't pursuing innovative solutions either, they're just continuing the status quo into the future.
214 comments
[ 365 ms ] story [ 3794 ms ] threadIf the idea is to be the "wikipedia of programming", I wonder if "votes" are enough. Should there be an active initiative to prune stupid/bad questions? Revisit old answers?
That said there's usually an answer further down the page with a more up to date solution, it's just not the accepted or most popular one.
I would wager the majority of C++ users "in the field" are using 11 and below and haven't had a good opportunity to switch to 14 or 17 yet. As such, answers that seem outdated to you may be a good fit for the majority. It's sort of like how any native answers automatically float higher than boost answers - why is this? Because most c++ users are not using boost and have no interest in using boost.
The amount of circle jerking on Stack Overflow is stunning.
"Stack Overflow ultimately has much more in common with Wikipedia than a discussion forum. By this I mean questions and answers on Stack Overflow are not primarily judged by their usefulness to a specific individual, but by how many other programmers that question or answer can potentially help over time."
Personally I would have been much more understanding of the process of using stackoverflow if I knew this, and so would many of the people who get stung expecting an answer to their question.
In reality the user is contributing their question to the community, not asking a question in the traditional sense. That's my take anyway.
One area I wish there were more support in is to aggregate all the knowledge that is split across multiple questions. I think this could be helpful for beginners, but also is extremely specific areas as well.
For example, I imagine that a lot of these bad questions come from beginners. So, aggregating answers about common beginner misunderstandings with a library or system into a wiki page. Or, there could be a "getting started" type page that goes over the basic steps and concepts.
This is obviously getting into the business of writing docs for projects that either don't have them or don't have good ones, but it seems from the existence of stack overflow that this is actually necessary.
Then again, there seems to be tons of questions on projects with really good docs and tutorials. So, maybe you're right and it's just that the people asking bad questions / giving bad answers don't read docs.
[1]: https://meta.stackoverflow.com/questions/354217/sunsetting-d...
I think the game-ification of SO (in the form of badges, scores, privileges and rules) attracts personalities who crave that shit and don't see any problem with being harsh and dismissive to others that don't follow the rules (as they see them).
Regardless of how much SO may say that it's about "the community" rather than the individual, it BECOMES personal when an individual has a genuine problem and gets treated like crap.
The whole stack-exchange scene has become an incredibly weird place to ask a question. I find value in it and use it everyday, but I dread asking a question there.
The rules are exactly what is gamified via the points and badges system. You can’t fault anyone for responding to the incentives they are given, when explicitly set out by the site owners via that system.
The personalities attracted by it are the ones that made it successful, by design. Otherwise it would be just another Yahoo Answers. The “rules” only changed after those contributors had made it a success. Some of those people apparently feel it was a “bait and switch”.
I remember stackoverflow in the early days and it was useful from the beginning. Sure, there were always some persnickety zealots who acted as self-appointed police "protecting" the community from subjectivity and duplicate questions with all the sensitivity of a clock-maker wearing oven mitts.
In the last 5-6 years, however, it has been overrun with such strange behavior. One can't simply ask a question unless it meets an unreasonably high standard-- and even then perfectly good questions get slapped down for no reason at all.
Which could be a positive (it certainly makes sense that the most engaged people should be the community moderators), but when combined with how points are earned, it would naturally lead to weirdness like the swaths of downvoting, reporting and totally unnecessary grammar edits.
All while asking or answering a legitimate question is likely to be worth maybe 2-3 upvotes and risks getting down voted into oblivion.
It's way too common to see exchanges like "The manual for X is factually wrong, so how do I really do it?" "RFTM!" or "I want to Y, which is not covered by similar question X for reasons A, B, C." "Closed, dupe of X!" Or for that matter, "How can I X?" and "I'd like to X, help please?" each closed unanswered as a dupe of the other.
Building for the future, not solving for the moment, is a perfectly reasonable sentiment. I can understand using that argument to close "what's the bug in my code?" questions, or for that matter "how do I X under these self-imposed restrictions?" But in practice, it's frequently wielded like it would be on a nasty mailing list or Usenet group, to tell people that they shouldn't do what they're doing and therefore don't deserve an answer.
What do you mean here? Why does a separate answer to unknown future readers take precedence over the answer the poster (and other future readers) was looking for?
The issue isn't why that is, but the very fact that it is so. It's not obvious, and it's not really how people use StackOverflow, in the same way Kickstarter used to believe (probably still does) it was about investing in indie creators, whereas people really used it as a preorder store and a marketing platform.
My gut feeling is that this worked better in the past because Stack Overflow was at a smaller scale, and the audience was a bit more insular and willing to read stuff about how the systems work on Stack Overflow (programmers love understanding rule systems; it's literally their job most of the time). Now that SO has achieved permanent world scale, the constant influx of new people who don't take the time to learn the ambient norms before posting, and thus cut themselves on what they perceive to be unnecessary sharp edges, is getting .. large.
Most of this could be solved by a very detailed, educational multi-step /ask page in my opinion.
But... I do agree that a detailed, educational multi-step page (with examples!) would be an improvement over the current here-are-the-8-rules-for-asking-ok-now-have-fun page.
When they start, senior players in their field of work laugh at them because they don't have much content. So they try to get as much as possible, trying to get as many new creators on board as they can.
Later, when they have grown enough, the senior players in the field laugh at them because they have mostly garbage content. So they try to increase the quality of their content.
The problem here is, now they accumulated a vast mass of creators who love the site, but only a fraction of them creates quality content.
They unleash a task force of moderators on them that kick out the low-quality creators, which improves quality, but bad for the morale of the whole community.
Wikipedia did this and Stackexchange does this too.
I think, instead of alienating existing creators by deleting their content, they should simply make high quality content more visible.
The social Internet's linchpin has almost always (since as long as I can remember) been that it requires a certain kind of person to be an unpaid community manager (by any name), and nearly every site you visit (wikipedia, stackoverflow, reddit, etc) makes use of these nonployees.
The people who do them end up being people who volunteer to be "paid" with the opportunity to go on a power trip.
I've not had experience of it myself, but I've heard from some people who have worked at high profile charities that a similar thing happens there.
Instead of
"Hunt down bad content and delete it!"
they should use
"Hunt down good content and promote it!"
Why not create a premium version of the product that features only chosen content?
Creators can do what they always did and maybe they're even motivated to become "premium creators".
You're looking for a solution that aligns with your thesis. You're not going to find one.
I mean what should they do?
Write two pages for every article, one where everyone could write and one where moderators accumulate the quality content?
That won't scale.
Maybe they need a VCS based approach, that merges only quality content but keeps all low-quality content in dead-end branches.
I don't know what the solution would be, but the current approach is sub-optimal. Not because it's not nice to delete the work of people, but because they don't motivate people to do a better job.
Oh man I volunteered to moderate on a large gaming related forum ages ago. The amount of BS you deal with along with personal attacks and etc is pretty high. I never felt emotionally upset by it as I felt you had to maintain an even keel .... but it certainly is not a job for everyone and the rub is the folks who WANT to do it the most are often the worst at it. Being a good moderator is not a skill everyone has, but it's also not valued in any real way by most communities / companies.
Really the most frustrating aspect were the non trouble users who seemed to go to bat for the folks who were truly bad actors because of some perceived injustice (lie)... and all the meta that goes into that.
- an administrator completely shutting the board down overnight because of a romantic encounter that went down poorly.
- a prolific troll - who finally finally got enough of his accounts, sub-accounts, and sock puppet accounts banned that he effectively lost access to the site - texting me late at night demanding an explanation for why he was banned.
- people being outraged that we asked them to donate a small amount of money (somewhere around a hundred dollars, collectively) to help run the server, then offering to run it on their spare computer in their basement
- discovering that due to a relatively unknown feature of PhpBB, we had a whole secondary parasite community that didn't show up in user registrations, and that had a whole private forum set up that nobody else on the board was aware of. It was like opening up a basement closet and discovering that it's a secret night club.
I hate the word "entitlement" because I think it gets used wrong a lot, but oh man folks perspective when it comes to the internet ... a lot of that. Users just feel it should be free and even a minute of downtime and they want answers, about a gaming forum (god help them if they just went to play games for a bit).
As for the prolific troll thing, one site I worked (well volunteered) was a popular commercial gaming site back in the day. Threats, fake accounts claiming to be lawyers, etc. The site made money and all and had some really dedicated trolls. One they actually took legal action against. I assumed it was just some kid with too much time. Turned out to be a dude in his 40s.... in fact many of the most dedicated trolls turned out to be adults. Kinda shocking to me at the time as I was younger then and just assumed they'd be young dumb kids like me...
The handful of actual legal actions never were well known, it was amusing as the dedicated trolls talk big about every perceived injustice or slight or straight up lie they would make. Even posting on other sties about it.
But the only legal actions I was aware of, word never got out. I suspect when it gets real they get quiet fast, or their lawyer tells them to shut up.
Edit: Actually this link probably makes more sense: https://kotaku.com/the-secret-douglas-adams-rpg-people-have-...
This is correct.
As someone who has run forums for a number of years, I can honestly say I've fired 70% of the volunteers for exactly that reason. They wanted to impress their clique and use the power. In reality, it is more about using that power as little as possible except for things that might create a legal issue. (i.e. DMCA)
The other 30% I got rid of were due to activity. (i.e. Would go inactive for 30+ days without notice)
So, is it kind of like if you desire to be a politician (or any position of power), you are definitely not the kind of person who should be a politician?
There's another even more fundamental problem though which emerges at every stage. The people who want to participate the most at any stage are not the most qualified, and the people who are qualified to answer are busy doing instead of answering. It's not just that inevitably you need to kick out bad content, it's that the people doing the kicking out don't know enough to judge what is good and what is not.
So by the time you get to the recruiting moderator stage most of the people interested in becoming gatekeepers/moderators are not at all the people you actually want to be gatekeepers (those people are generally too busy or not very good at such things), and your moderators are a self-selecting group who are more interested in form and adherence to rules than content.
Not following, SO has always had pretty strict rules on quality from 2009 forward. There's no inflection point here.
> What should Stack Overflow be when it grows up? Whatever we make it, together.
It's more of a historical overview than a vision for the future.
Listening to Jeff try to describe what stack overflow is and the “fundamental misunderstanding” by all of us millions of unwashed masses is amazing.
It’s also a bit like listening to a muskox describe why it decided to grow long hair after so much time in the snow; IOW, a complete and total lack of understanding of emergence and a rewriting of history at the behest of Jeff’s enormous ego.
This is what happens when you raise massive amounts of money for what is a simple question and answer site and you have to find some kind of philosophically transcendent exclamation of what it is that you have created. Instead of saying “we created yahoo answers for programmers, but with a better interface”, you come up with something like “We’ve created a valuable resource for the future of the planet and all the programmers hereafter”.
Stack overflow is and always was a question and answer site. To attempt to take credit for the following value of search results containing stack overflow questions that have already been answered that sound like what you’re asking is to take credit for search engines and to take credit for your users’ hard work.
That last bit doesn’t surprise me at all, given that Jeff’s post ends with an insulting meme that implies we are a dumb mob.
"I am honored and humbled by the public utility that Stack Overflow has unlocked for a whole generation of programmers. But I didn't do that.
You did, when you contributed a well researched question to Stack Overflow.
You did, when you contributed a succinct and clear answer to Stack Overflow."
You did, when you edited a question or answer on Stack Overflow to make it better.
Also, Jeff is not trying to take credit for the users' hard work, I'm a contributor and I don't feel that way, especially after reading this part:
> I am honored and humbled by the public utility that Stack Overflow has unlocked for a whole generation of programmers. But I didn't do that.
> You did, when you contributed a well researched question to Stack Overflow.
> You did, when you contributed a succinct and clear answer to Stack Overflow.
> You did, when you edited a question or answer on Stack Overflow to make it better.
The issue that I have is the attempt to pretend to have guided the course more than was the case. SO was a Q&A with a tremendous UX, and the users used it to help each other. That’s it.
Even this nonsense of “gamification” is just ego-driven marketecture. Up and down voting has been a staple of the Internet for a long time. Voting up an answer is not gamifying it. The only thing even remotely game like about SO is that each question can have just one selected “corrct” answer... which is also basically the case on most Q&A sites, including yahoo answers.
Also, the extent to which Jeff and Joel attempted to curate this process is the exact extent to which the process tended to get in our way; deleting questions because they are “off-topic”, even though hundreds of people up vote them and want to know the answer, etc.
These are the decisions that ruined SO for manny developers.
Are you kidding me? Have you never seen the wall of badges?
Perhaps SO is not the knight in shining armor, as it may have seemed then, but it certainly helped change the landscape for the better.
it's CA-BY-SA IIRC. In other words if you copied and pasted a snippet from SO you now need to open source your project (the SA part of CC-BY-SA). I'm surprised someone hasn't written some ransomware that scans SO for snippets and compares them to github and starts sending out the "pay up" notices.
- Gameify all metrics to an absurd degree, using gold-star-sticker style incentives for every given interaction type.
- Take the metrics a seriously as possible, creating a baroque network of norms and code that a user is always, somehow, in violation of.
So if it gets upvoted too much, it SHOULD be flagged as community wiki. There was a long discussion where users were complaining about answers that were posted too fast, preventing the complainers from getting points. If you misclick, then retract it, you can't vote again. Why? Because users were downvoting everyone who competed with them to float their answer to the top, then retracting.
The overall culture the site has a deep aspect of working the referees as much as possible, and the extreme hands on nature of how they regulate people's Fake Internet High Scores is to blame for it.
I don't know man ... while I can kind of agree with the general "thing" you're trying to convey here (that of SO hard-headedly blaming users for "doing it wrong"), this particular point is one that I'll have to defend him/them on -- SERP-as-an-interface was a primary consideration from day one. I listened to all the podcasts they did during development, and they were pretty explicit about it in all the blog posts. They knew that most people would arrive at a previously asked question via search engine, and they optimized the experience for that reality. That's why they wanted each question and answer page to be an "artifact", something that grows over time, gets edited, improved ... precisely because they thought of this ahead of time ;)
https://xkcd.com/979/
Virtually sadistic.
Maybe today you go directly to SO to search like you go directly to Amazon for product search, but at the time being open and leveraging Google was genius.
Again, stack overflow is just a better UX for the already proven Q&A model that’s worked for ages.
But StackExchange is incredibly different from a "Yahoo Answers for Programmers". A Yahoo Answers for programmers would be an endless stream of "How is Hello World babby formed?" For all the times I've stumbled on Yahoo Answers, it has almost never helped me solve a problem. StackExchange helps me almost every day, in spite of the fact that I'm not the one asking the question.
Having an environment where contributors compete, askers are held to high standards, and moderators are aggressive can be harsh, but I have yet to see a gentle system that gets quality content out of anonymous volunteers on the internet.
I spent quite a bit of time on elisp questions. For example:
https://stackoverflow.com/questions/2170528/writing-hello-wo...
I think I had close to 200 questions at one point.
You want to throwdown enough breadcrumbs from hello world to any topic you might wish to know to get things done in a language. More of a cookbook.
Some other sites like Quora have a full question "merge" feature which SO needs, it would cut down the duplicates and allow a single question thread to become more useful.
One major problem is that merging two very similar questions that are about the same concept would still end up with answers that seem out of place because they address a slightly different version of the question.
Most cases should be solved by closing as duplicate, as that will create a link to the canonical answer. Anonymous users will also be automatically redirected to the canonical answer if there are no answers present on the duplicate.
Most of the time, there are existing answers and "closing as duplicate" leaves up all of them as a separate question thread that just confuses everyone. The links between them and the duplicate message are not intuitive and easily overlooked, leading to an expectation of unfinished answers.
Quora meanwhile has completely reversibility, and allows the community to do it. It's caused some problems but overall has cleaned up many common and repetitive questions.
I think it's worse than the uniqueness problem, multiple duplicate _good_ questions/answers don't actually harm, misguide, or delay anyone looking for an answer; one _wrong_ one does.
And of course, if you try to ask a question again because you think the old one might be outdated (if you were _sure_, you wouldn't have to ask probably), it'll likely get closed as a duplicate. :)
Quora has recently introduced secondary voting mechanisms where answers will randomly have a "is it still relevant" toggle for users to continue providing signal beyond the initial vote.
If a better answer comes along in a question that is then marked as a repeat of a question that has a worse answer, forget it.
At any rate if a better answer comes along it should rise to the top in the matter of <24hrs.
But for SO, where voting is never locked and content 'ages' at different rates, it's not so clear there's a downside. The "closed as duplicate" issue still stands, but rising user count is probably helping the problem.
And then the newest users can come and see based on the LATEST version which is the most upvoted answer.
The issue is that relevancy has a time-component, so there needs to be way to age scores as well to make sure the best answer for that time period is at the top.
The chosen answer was not the best, so my answer ended up reaching the top. But note that after 7 years, my answer, although still correct, is no longer the most efficient way to do things. Better alternatives are rising up.
I'm not sure what the deciding factor is now, perhaps there is a more complicated scoring system happening in the background or it recently changed?
Microsoft's decision to drop those technologies from Edge was kind a mixed bag. From a security perspective it was the right decision. But it has also stuck many of us developing for a non-evergreen browser, even while our users are on Windows 10.
IE11 is the new IE6.
I think Microsoft has made a mistake by stopping the addition of standards-compliant features to IE11. They should keep supporting it and modernizing it until the userbase has moved to Win10 on its merits, instead of trying to use IE11's aging as a lever to force Win10 adoption.
I do think a mistake was that IE11 was included at all in Windows 10 to appease corporations, instead of just ripping off that particular band-aid. But doubling down on it and allowing corporations to default to nothing but IE11 via group-policy is the biggest mistake. GPO footguns like that are why corporate America can't have nice things, and I'm increasingly of the opinion that it's time Microsoft started dropping footguns from GPO.
(Also, note that the root problem in this particular workplace remains Oracle and their web apps that are stuck in IE6 worst practices but cost millions of dollars each year to continue to operate. Oracle is the real villain here.)
Huge swathes of features appear at transition points like MySQL 5.5 -> 5.6, which means lots of answers are now viable but no longer the best option. And since they are still correct, it's hard to write up new questions which won't be closed: instead of saying "Answer X no longer works", users have to say "Is Answer X still the best approach?" and get closed for duplication or subjectivity.
Worse still, lots of databases still have multiple versions in active use, so "worked great for me! - posted yesterday" isn't even a helpful reference.
If I'm lucky someone left a comment regarding the version I'm on, but not often.
Almost all answers recommend using os rather than pathlib, many answers recommend using cmp functions rather than keys for sorting, etc. Not to mention all the print statements.
In the original vision of StackOverflow, that accepted and highly voted answer would be converted into a wiki. Then when it gets stale, it would be revised.
Not saying they do a good/bad job of this, just that, that's how it was supposed to work. And ya it would be totally frustrating as a new contrib because if the canonical answer was not converted to wiki yet, you can't really contribute.
This could happen if somebody asks how to do something using some library. If the library actually has a builtin facility to solve the problem, but then the answer gets down-voted due to documentation link rot; then another answer explaining how to built that facility from scratch may become the 'best' answer, even though the re-implementation of existing library functionality is a bad idea.
That's not a big problem. Questions and comments can be edited by other users, which includes adding and altering tags that reflect software versions.
Yes, it really is. Tags are used to filter results. Stackoverflow specifically lets users run searches only on specific tags, or even exclude certain tags from the search results. As tags reflect technologies and their versions, stackoverflow enables users to run queries only on specific versions.
99% of people use Google as the search interface to stack overflow.
I'll often find answers to questions which are outdated and haven't been improved. I agree they have a mechanism in place to fix it, but are users actually fixing answers en masse? SO could introduce an age out mechanism that requires an answer to be maintained semi regularly? Do they already have this today?
Editing an answer substantially upsets the entire up/down vote system, as well as the comments. A better system would be something like question/answer versioning. In general it's a problem that has received far too little effort.
Do you really believe that adding a tag with a version number to a post is something that can be classified as a very aggressive move, particilarly if it's an old post?
Otherwise, how is it "not a big problem"? Is it the sort of thing where "in theory" it's not a big problem, even though in actuality it significantly effects the usefulness of the site to many people?
As someone who primarily interacts with SO via search engine results, it's one of the biggest problems with SO. The number of top voted/accepted answers that are 'wrong' in one way or another keeps going up and thus the chance of me finding the 'right' answer on SO keeps going down.
https://stackoverflow.com/questions/36747293/how-to-specify-...
The question is tagged for ASP.NET Core 1.0 so there's answers that are applicable to that version. Then things changed in 2.1, which removes some friction when adding custom view locations, and another user posted an answer specifically for that version.
As a cautionary example, see https://stackoverflow.com/questions/5021456/how-does-mongodb.... The question was why MongoDB was by default able to avoid the equivalent of SQL injection attacks. My answer took what was in their FAQ at the time, and expanded upon it based on advice from D.J. Bernstein - who is famous for his ability to write secure by default code.
Then it was discovered that PHP volunteered to create security holes in MongoDB. Then it was discovered that multiple other languages and libraries likewise volunteered to do so. Had they followed the good advice that I was quoting, the problem wouldn't have happened. Despite the other faults of MongoDB itself, in this case it was truly innocent. The security problem wasn't in it, but in the libraries that were written around it. It made it easy to write secure code and they didn't.
But the result? From the point of view of a naive programmer, not long after my answer appeared it was revealed as misleading for PHP programmers. A few years later, it was actively misleading for other languages. And while the advice remained technically correct - which is why I left it - it has been criticized on reasonable grounds by several other people since.
For a long time I thought that the comment that I left in 2011 after the PHP bug was sufficient. Remembering it today I edited the answer at the same time that I posted here.
Now I could be faulted for not having responded to the comments in 2015. However I was taking an extended break from stack overflow after getting annoyed at the moderation of https://stackoverflow.com/questions/11314077/algorithm-for-e.... When I came back, dealing with the variety of things that could have further annoyed me while I was gone did not seem worthwhile, so I didn't. (It remains a pet peeve that a lot of moderators remain quick to close algorithm questions because they do not recognize DP-type problems as things which are more likely to be answerable by people with a CS background than a math one.)
It is amazing the number of replies in this entire HN thread that have no idea every single question and answer on Stack Overflow is editable, even by an anonymous user. The first item in my list was Stack = wiki for a reason!
Stackoverflow badly needs a system for people (moderators?) to be able to 'obsolete' answers, possibly mark them with a highly visible "valid only up to version x.y of 2010" tag or something.
It's not discussed because the solution is kinda obvious.. wikis mean editing, right? Even by anonymous users? That's also how it works on Stack Overflow. Edit the answer to make it better, more up to date, or add a disclaimer at the top that it only applies to very specific versions as needed.
This is strongly discouraged because then the existing votes become a lie.
> or add a disclaimer at the top that it only applies to very specific versions as needed
This I think is allowed, but is extremely rare.
I think there is a critical mass after which the site's focus changes from creation to protectionism, and then it becomes stagnant.
The solution to out-dated answers might be obvious, but apparently obvious isn't stopping it from being a problem... it's a big problem.
If it's obvious, why is it still a problem? If the answer is "because the userbase isn't doing what I want", then _that's_ a problem to which the answer is apparently not obvious. To the extent that SO has been succesful, it is of course that figuring out how to structure the software so as to get the userbase to do useful things _is_ the problem, not an "exersize left to the reader".
When SO was new, there was incentive for people with expertise to contribute it. Now there is more incentive for Wikipedia-types to go around smashing others' contributions with their rejection hammers. It's a waste of time for those who actually have something to contribute.
My edit was quickly rejected by a user who had no knowledge whatsoever of the technical domain in question, claiming that my edit went against the spirit or intention of the original answer's author. I then submitted mine as a separate answer, where it languishes at the bottom of the page, rarely noticed by users who come looking for the answer (and it's virtually the only hit on Google for the question, has been for years). They all see the outdated, poorly organized one instead.
So my work was a waste of time, shot down by an ignorant, mindless policy wonk whose only goal is to farm reputation points.
I have not contributed to SO since. I have better things to do with my time, like publish my own documentation on readmes on GitHub.
But thanks for the shout out, for all my contributions on SO. It's amazing, I really feel like an indispensable cog now. /s
However, keeping Documentation[1] would have really accelerated the progression of SO. But whatever... I don't run it.
This really isn't all for ourselves though; the Stack Exchange community is more impressive to me. I really enjoy the Parenting, Money and Music SE's.
[1] https://meta.stackoverflow.com/questions/354217/sunsetting-d...
Where in a typical engineering profession you would have a somewhat defined checklist on how to diagnose an issue and a proven method to fix it, in software engineering you have a million possibilities: "- Did you check x? - Was this nth specific step for this specific framework followed? etc.."
It's messy because the problem space can't be as easily enumerated.
Software has always had the problem of information being outdated before the books even reach retailers. However, this is one of my big frustrations with SO. There are so, so many c++ questions with accepted answers that are now 'wrong' due to changes in the language. That, and the fanatical insistence to close questions that are opinion based closes off a lot of questions more experienced programmers will have.
This section in particular stands out to me:
> This is why I cringe so hard I practically turn myself inside out when people on Twitter mention that they have pointed their students at Stack Overflow. What you'd want for a beginner or a student in the field of programming is almost the exact opposite of what Stack Overflow does at every turn:
> * one on one mentoring * real time collaborative screen sharing * live chat * theory and background courses * starter tasks and exercises
> These are all very fine and good things, but Stack Overflow does NONE of them, by design.
If this were on the official SO blog, I would be very surprised.
Not at all, at least, that is not my intent. I do feel like the key items articulated there (SO as wiki, duplicate danger, competitive system of peer review, for practicing programmers) are not well understood by outsiders and peripheral members of the community, though.
Note that the Stack Overflow tour (which was and is quite good!) that explains what Stack Overflow is was perma-demoted to the footer... well, that used to be true, but actually I just checked now and it's gone altogether? The word "tour" doesn't appear on the SO homepage in incognito mode, at all. You can visit "help" (which is in the footer) and then, and only then, will it appear as a topbar.
https://stackoverflow.com/tour
I have a hard time telling whether this reflects a change in developer culture online over the years, or a change in the types of questions I tend to ask as I have become a more experienced programmer.
Questions I have are more specialized to the domain I'm working in rather than general programming questions.
No longer of the kind "X in language Y". Most of the questions about the system that I'd have nowadays can also be answered by colleagues over slack with the domain knowledge.
For example, if you find a question from 2015, with all out of date answers, if you ask it again today it will be flagged as duplicate with a link to the 2015 answers and no further discussion is allowed. The older SO gets the worse the content gets.
They're trying to make a "Wiki site" but in a Q&A format, it doesn't work and doesn't make sense. Until they realize that their moderation policies are going to keep driving away questions that would warrant modern/fresh answers.
For example try searching SO but set your Google to only show content from the last 12 months, the results are simply low quality with half mod-dead. Most of the good content is from two years ago or more, back before the site switched from Q&A to "confused Wiki-site."
I'm starting to think that calling the edit button "improve this answer" and "improve this question" was a mistake..
That is probably 50% of it. I find myself using google to solve problems about once a day these days.
When I first started, it was easily 5-10x that.
> I have a hard time telling whether this reflects a change in developer culture online over the years
SO no longer really tolerates hard questions that an experienced programmer asks.
For the past 4 years, every question I've had that I couldn't find the answer to I've had the question closed or the answers being badly flawed. Admittedly, my sample size is only ~12 questions.
The reason for this is they really, really want to restrict the playing field to questions that are jr to mid-level with clear, math/code correct answers.
When you get into more complex problems, there is usually trade-offs involved that cause moderators to close questions. (i.e. How do you X as securely as you can while still enabling Y use case that breaks the most secure option available? This isn't ideal obviously but the trade off is acceptable.)
The other problem is this discourages answers for "new" stuff because they'll often close questions as duplicates even if you are asking about Version 8 and the answer from 2 years ago is about Version 7. The problem is, if you are experienced, you already know how to solve answers for Version 7 (because you've used it for 2 years) while Version 8 is new.
If StackOverflow is a wiki, then the best answer to a question should be determined by the community, not the asker, and needs to be able to evolve and change over time.
However, StackOverflow simultaneously insists questions can't be duplicated while making answer selection immutable and controlled by the asker. This results in a suboptimal experience.
Here is an example question highlighting this: https://stackoverflow.com/questions/884177/how-can-i-determi...
I currently have the best answer to the question "How can I determine what font a browser is actually using to render some text?". The answer I gave was the best answer in 2010. Things have changed a lot since then, and my answer is no longer the best one on that page.
_But no one can change the best answer, which is insane!_ As a result, you see best answers to old questions being turned into community wikis edited to include better answers in the thread, rather than those answers being selected.
You're thinking of wikipedia. A wiki doesn't determine what the "best content" in it is. It's just a collaborative way to edit text together.
I dont know what they were thinking.. but in any wiki I have used anyone can make corrections and there is a shared responsibility to keep it up to date..
it seems to me that the statement is therefor valid - the basics of what is or is not a good answer is set by the asker not the community, which is how ticketing / Q&A systems work NOT wikis IMHO.
[1]: https://meta.stackoverflow.com/q/326095/1157054
[2]: https://meta.stackoverflow.com/q/283456/1157054
[3]: https://meta.stackoverflow.com/q/272651/1157054
[4]: https://meta.stackoverflow.com/q/253752/1157054
From a UX perspective, you want to put the most relevant information at the top. The votes of all Stack Overflow users gives a far greater signal than the one 'accepted' flag from the asker.
This is one of my biggest pain points with Stack Overflow.
Also, I'm sure the claim isn't that everybody stops reading after the first answer, but that the first answer does get a lot more reads than answers further down. I bet it would be possible to prove this with the right analytics.
So I'm onboard with the concept of SO as Wikipedia. Fine. Weirdly I see no mention of some of the bigger problems (as I see them). And what's weird about these problems is they were completely foreseeable by anyone who paid the tiniest bit of attention to Wikipedia.
1. TMS (Toxic Moderator Syndrome). You have askers, answerers and moderators. All have their purpose but they are not equal.
- People who ask questions mainly derive value from SO by getting answers to their problems and this is how it should be (and the karma system reflects this).
- People who answer questions. This is where most of the value is derived from.
- Moderators. While cleaning up the site has value it should be recognized that this is a utility function. The karma system reflects this but any system like this seems to attract a certain kind of personality who embodies the principle that "those who can, do; those who can't, moderate".
Look at any highly ranked answer (or question) and you'll see a litany of questionable edits (which eventually rob the answerer of any karma when that question or answer gets 30+ edits and goes "community"). I don't have a problem with this kind of pedantry.
What I do have a problem with is closing of using questions because of a culture that has decided completely on its own what qualifies as acceptable content for the site. Anyone who has used SO more than a few times will have come across useful questions that don't have mathematically provable correct answers and are closed as off-topic.
It's like the SO mods feared flamewars that never happened and in the process created an equally bad (if not worse) situation.
2. Accepted answers that are wrong (or were right but are now wrong). Why can't these be edited?
3. What to do with all that VC money. This never made sense to me but this was in the era where some (VCs mainly it seems) thought that Q&A sites like Quora were going to be the next unicorns (I never did and still don't).
This has led to side businesses like SO recruiting, which I never thought was going to go anywhere because if you say contributions to the site were a useful signal in hiring (which I'll accept as valid), last I looked at this (a few years ago) only some ~25,000 with non-trivial amounts of karma. That's not a sufficient market and pales in comparison to, say, Github repos as a signal.
4. How to handle stale information. I still see no solution to this.
I really do wonder what went into Jeff bailing 2 years in (assuming he wasn't pushed out). Joel still seems to be plugging away, which is a bit weird given he's done much better out of, say, Trello.
There's honestly nothing magic about SO. It's just fairly simple software with a clean UI that came about at a time where the alternative was the giant trash heap that was and is EE. Don't get me wrong, it's definitely useful.
Also,
> Jeff bailing 2 years in
The site was launched in late 2008 (hence the blog's congratulations on 10 years), and presumably there was a fair bit of work previous to that. So somewhere between 4 and 5 years.
You can't cast a close vote without having 3,000 reputation. Even just downvoting requires 125 reputation. The _least_ experienced [diamond moderator][1] on StackOverflow has over 19,000 reputation. Reputation is earned, primarily, by answering questions. So your assumption that "moderators" are distinct from the other two categories of users is incorrect.
[1]: https://stackoverflow.com/users?tab=moderators
Since you're down with "SO as Wikipedia" surely you can find the edit button on every answer and question.. which works even in incognito mode when you are not logged in?
This is such an out of touch statement it's hilarious. Stackoverflow is a wiki in the same way my dog is a heater.
+1 thank you for this comment.
[0]:https://medium.com/@cellio/dear-stack-overflow-we-need-to-ta...
Unfortunately most of those involved are at least a little bit right, and I'm not sure that we SE users who are upset have concerns that make any sense out of context. :) They don't have anything directly to do with the original tweet. I probably shouldn't even have linked the article.
University degrees act as a filter to a certain extent. And many fields have courses at the beginning that are designed to weed out people who are not going to be successful in later coursework. And the result of that filter is a certain homogeneity people that make it through that filter and become successful.
The internet has done a really fascinating end-run around the university filter, and has been described as an an equalizing mechanism in society. But filters and enforced similarities are things that spontaneously emerge from societies--even anonymous ones on the internet.
While it's true that SO doesn't claim to be a learning resource for beginners, most google searches lead there, and that's a real part of its function no matter how much the managers claim it shouldn't be. And the response that beginners get is clear: conform or get out.
I think the social tide in the work place is moving against that kind of attitude. Developers are no longer quite the magical group of secretive wizards that they used to be, and the sort of Linus-style kind of treatment of people who aren't completely on it isn't really tenable in business situations anymore. A lot of the jobs that I want to apply for are more and more frequently focusing on being a good colleague, not just a good programmer.
I think SO has two obvious directions it can take. The first is to allow the core contributors to continue to lay down the law and remain, shall we say, aloof and concerned primarily with maintaining their fiefdoms while gradually shrinking in relevance and contributions. And the other is to, well, not basically.
I don't think either one of those is actively bad. There is value in maintaining the strict order that SO does. But that value comes at a cost. There's a high barrier to entry right now for being an influencer on SO, and that's good if you want to remain the authoritative place to find good answers. It's bad if you want a next generation of leaders to come in and replace the ones who are currently at the top when they wander off to do other things.
I remember reading a story about what happens when you listen too much to how people use your product, and the example case was Excel. It was supposed to be a spreadsheet. But Microsoft--ever the leader at market research--figured out very quickly that people were using it for almost everything but spreading sheets! And Microsoft--also the leader at getting product decisions massively wrong--decided to make Excel do pretty much everything instead of developing a separate product to fill those use cases. And now we're at a point where Excel does basically everything, and getting people to not fucking use it for everything is almost impossible.
So yeah. They need to keep a tight focus.
An interesting counterexample is EvE online. For almost 2 decades now, the games has had a reputation for being hardcore, elite pvp. The weak need not apply. Piracy, scamming . . . being the bad guy in every way is not only allowed, it's encouraged. That community filters itself very effectively. Whining about what's fair or not just makes you more of a target. People farm new player tears as much as they farm space dollars. And it shows. CCP Games has had a tremendously difficult time staying relevant in the MMORPG world and in the last couple of years has been forced to make sudden changes that really disrupted the existing community in an effort to appeal to new players. Nobody really wins there.
It will be interesting to see what happens in the next decade. It's a legitimately difficult management challenge, and I'm not convinced that it's possible to avoid what seems to be the inevitable rise and decline cycle of all social networks.
full talk at https://youtu.be/o_4EX4dPppA
I think Stack Overflow would benefit from a similar reset cycle. Perhaps users / badges / moderators can remain the same between seasons, but every 5-years or so, just reset the entirety of StackOverflow.
That means:
1. Making "old StackOverflow" read-only. The goal being, these answers may be stale and no longer relevant.
2. Migrate "fresh" stuff over to the next season. Say, everything within the past year is assumed to be fresh-enough to continue to the next season. This is automatic.
3. Users would only have to worry about duplicates within the current season.
4. Referencing an "old season" of StackOverflow is encouraged. If an old answer is still relevant, then you can ask / answer it in the new season. Provide badges for this easy job so that the community can easily push and "renew" the data to ensure it remains relevant.
5. Historical answers can remain archived. There's a lot of answers which are important for history's sake, but changing the text to be relevant for today's programmers may lose the history of some answers. As such: a historical archive of what programmers thought was best in 2013 is best left alone, but "new answers" which reference the old post + updates with new recent developments would provide context. IE: "Don't use std::shared_ptr<> with new[] in C++" (correct in 2013, but incorrect after C++ 2017, which allows shared_ptr<int[]> to use the correct delete[] operator in these cases). Documenting the history and changes of languages is important too!
--------
Yes, StackOverflow is a lot like Wikipedia. But unlike Wikipedia, the tech world is incredibly fast paced. Answers for Java 1.4 are likely irrelevant in today's world.
I dunno, maybe 5-years is too long, or maybe not often enough. But some "season" cycle would be a good rebirth / renewal period for the website.