The StackOverflow community is going through some interesting times right now. I’ve been following in great detail both because the community is an extremely useful resource to me as a programmer and because I’m in charge of using their commercial offering, StackOverflow for Teams, at my job. (Appropriate disclaimer: this post is written in a personal capacity only and does not represent the opinions of my employer or anyone else.)
StackOverflow recently came under new management, and one of the things they decided they wanted to tackle was that new users often felt unwelcome. Great deal: nobody likes feeling unwelcome or turning people away from a community that’s supposed to be helpful. Unfortunately, almost everything except the idea has been, to put it charitably, a complete fiasco, and it’s led me to some important ideas about the nature of online communities.
The StackOverflow Fiasco
A little background. Over the past 12 years, the question-and-answer site StackOverflow has grown into an essential part of virtually every professional and hobbyist programmer’s problem-solving process. It is so influential and full of useful information that typing a few words about a problem or question into Google is now more likely than not to result in a previously asked question on StackOverflow describing the solution to your problem. Low-quality StackOverflow answers floating to the top of search-engine results are uncommon, and if you can’t find an answer already on the site and you’re really at your wit’s end, posting a well-crafted question is likely to get you a solid answer.
It’s ultimately that “well-crafted question” part that’s at the center of this fiasco. For all its benefits, StackOverflow has been vilified for being “unwelcoming,” especially for beginners and minorities underrepresented in computing. The central problem is that, in order to maintain that high quality, the inevitable low-quality questions need to be improved or, failing that, deleted. If you doubt this need, you have only to look at Yahoo! Answers back when it was popular, which accepted and indexed every question: the signal-to-noise ratio was so low you could rarely find any useful information on it at all. Yet if you don’t know anything about StackOverflow or the subject matter you’re asking about and you show up there and try to ask an honest question, having your question summarily closed is indeed pretty frustrating. The correct path forward is to attempt to improve the process so that people are more aware of the way the site expects them to ask questions, so that it’s more obvious how to improve “bad” questions (i.e., those that don’t fit into the site’s standards), and so that people are treated kindly when they ask bad questions. Some meaningful strides have been made in this direction, recently including a new question-asking wizard that guides new users through many of the elements expected in a good question, but much more experimentation can be done and is worth doing.
Instead, StackOverflow management has gone off in another direction entirely. They started by updating the Creative Commons license used for contributions, including retroactively relicensing all existing content users had contributed – an act which is, as far as anyone who has looked closely at the license is concerned, flat-out illegal – and nobody at SO has commented on why they think it is acceptable. This raised the ire of quite a few users. Next the official code of conduct was updated as part of the “welcoming” initiative. The primary source of contention here was a new requirement to use all users’ chosen pronouns. There does not seem to be any evidence that this was actually a problem before, and the wording of the new code left much to be desired, leading to a discussion, during which a well-respected moderator who voiced concerns about this aspect of the code but did not in any way violate the code – which, by the way, was not yet even in effect – was summarily dismissed for unspecified “code of conduct violations.” Further, SO management publicized a one-sided, inaccurate version of this story using the moderator’s real name, which eventually resulted in said moderator suing them for slander and settling for unspecified terms under a gag order. Meanwhile, management showed a shocking lack of respect or concern for the remainder of the community, which was trying to understand exactly what was happening, and the community managers employed by SO were also let go. A couple of nominally positive things have happened in the last two weeks, but many of the moderators and most experienced users of the platform have resigned and left for good in the meantime – a loss which many say has already become apparent in decreased question and answer quality. As of now, it still looks like far too little, too late.
The lack of attention to the community’s opinions and needs is especially astounding when you consider that it’s the only reason SO has a business at all. All value on the platform comes from users of the platform; StackOverflow the company does not create any content. And people who show up and ask questions are important, sure, but nobody would keep coming if it weren’t for those experienced users volunteering their time day after day to answer questions with nothing in return except fake internet points (i.e., “reputation”). Sure, a few less experienced people might contribute occasionally as they walk by the site or a question and happen to have something to add – I do this myself – but without that experienced group which was showing all the concerns, the site is highly liable to fall apart. Nobody comes to a question-and-answer site that only occasionally has answers!
Side note: The other curious component here is that all SO contributions are licensed under that Creative Commons license mentioned earlier (whether it’s the old one or the new one that’s valid now!). That means that a competitor could legally import the entire StackOverflow database into a new site they spun up, if they can find a way to get a copy of the whole thing without violating the SO terms of service (and where there’s a motivated software developer, there’s a way). The only market advantage SO has right now is that it has a gigantic archive and a solid user base, but if enough disgruntled users want to leave for something else and the archive can come along with them, that advantage is mostly gone.
The Core Group
So you might be wondering when I’ll stop telling ridiculous stories, which seem to be a dime a dozen nowadays, and get around to the point. I see several interesting points here.
One is that it’s critical to listen to your users, and to a specific group of your users in particular. We haven’t seen the full fallout of this episode yet, but I’d be willing to place a modest bet on it not being pretty for StackOverflow, entirely because of their lack of attention to this specific group. In a fantastic 2003 essay titled “A Group Is Its Own Worst Enemy”, Clay Shirky writes about the importance of the core group in online communities. The core group has a greater-than-average personal stake in the community. You know who they are in any communities you participate in: you recognize their names even if the group has thousands of members, they’ve been around for years, they have gigantic “upvote” or “reputation” or “post count” numbers next to their name and get more of them no matter what they write, people move aside when they show up in a thread. They’re a tiny portion of the number of users on the site, but they have a large amount of influence.
As you might suspect from its title, Shirky’s essay discusses some social theory: groups of any significant size tend to eventually pull themselves apart due to various forces, and need stabilizing practices and institutions to prevent that from happening. Groups are formed around common purposes of some kind: create some kind of political change, observe religious practices, develop and market a new product, discuss works of philosophy, and so on and so forth. But groups have a natural tendency, as they expand and change membership, to lose their focus, become scattered, and eventually change so completely that they cease to be a place anyone wants to participate. This is a particular problem on the web, because it’s more common than not for anyone, anywhere in the world, to be able to join the group and start changing it. One of the biggest stabilizing forces is that core group. Their opinions count for more than others – not because they somehow have more intrinsic worth, but because a) they’ve been around and seen what works and what doesn’t, and b) if they become dissatisfied and stop participating all at once, a gigantic vacuum of power and meaning is created which the group will likely never recover from in anything like its original form.
StackOverflow has failed to account for this force. As I pointed out above, the site is in big trouble without this group. Even if this group is wrong about StackOverflow’s approach to welcoming and moderation – which it isn’t, not entirely anyway – it needs to be placated in some way or another, not systematically ignored. It needs to have a privileged place in decision-making, and for the health of the community, its needs must outweigh those of the people who show up and sometimes feel unwelcome, even if they’re much fewer in numbers. That doesn’t mean SO needs to give up on making people feel more welcome, but if they can’t retain the core group while doing so, the site can’t make anyone feel welcome: a question-and-answer site full of low-quality or nonexistent answers is not welcoming either. (And which would you rather have as a resource, a site where people outright insulted you but still gave you the right answer to a problem you’ve been struggling with for days, for free, or a site where everyone was unfailingly kind but had no useful information whatsoever for you? I thought so.)
Another basic issue that has gone unacknowledged is that a group cannot include everyone, make everyone feel welcome, all the time. I don’t know whether those leading this poorly managed “welcoming” charge understand this internally, but they have utterly failed at sharing whatever understanding they have with the community, which has repeatedly expressed its concerns over this exact problem. As noted a moment ago, groups are brought together by a common purpose and maintained by staying focused on that common purpose. People with needs and motives which are not focused on that common purpose will both be disappointed by and detract from the group. People with somewhat different motives and ideas can help to reshape the group over time in a beneficial way, but too different and the group tries to be all things to all people, starts fighting, and loses its cohesion and meaning.
In high school and college, I did part-time technical support for the flashcards program Anki. It was a fantastic useful, flexible job and taught me a whole lot about software, design, and even more importantly human behavior. The distribution of posts I responded to was probably about 75% questions that were answered in the manual or FAQ but the user hadn’t found their way to, 10% feature requests, 10% great questions, and 5% rants and complaints. Each of these types of posts poses its own social and technical challenges and set of interesting tradeoffs, but today I want to look at the complaints. One of the complaints that came back again and again was something to the effect of, “This software is too complicated! I don’t want scheduling or any of this spaced repetition junk, I just want to review my 50 flashcards for my exam tomorrow and be done with it!” And the right answer is this: You’ve misunderstood what this product is. This product is not for you to review 50 flashcards for your exam tomorrow and be done with it – it’s for effectively remembering things over years. Can you make it work for reviewing your 50 flashcards? Sure, but don’t be surprised if it’s hard to use for that. It’s like trying to hang a picture with a nail and a screwdriver, or using a semi-truck to go down the street for some groceries.
This is, in a disguised way, precisely what’s happening when someone asks a “low-quality” question on StackOverflow and becomes frustrated with the result. StackOverflow is not a site where you show up and ask any question you want and people who feel like driving by and answering it do so, as much as someone who doesn’t understand the site may think it is. It’s a place where questions that meet some quite specific criteria are answered, with the goal of producing a healthy community that retains and motivates talented answerers and creates a high-quality, permanent, up-to-date archive of answers.
The problem here, in other words, is not that the purpose of the site is wrong – in fact, the “ask any question you want” site has been tried in various forms since the Internet’s inception, and the results have been highly disappointing compared to SO, suggesting that SO’s purpose is a more effective one. The real problem is that people aren’t aware of the purpose and don’t know how to work their questions into that form.
This is not to say that all approaches to greeting new users are equal. For instance, the old-school approach to open-source support goes as follows: Alice, a new user, posts a question on a mailing list which the developers subscribe to. If it’s a “good” question (in largely the same sense as on StackOverflow), she gets an answer and solves her problem; if it’s a bad question, she gets snarky answers, one-word responses telling her to “RTFM” (read the effing manual), or insults. This model is not necessary to produce effective groups and unnecessarily hurts people. Similarly, Linus Torvalds’ habit of screaming at people who submit bad code to the Linux project is neither kind nor necessary. Torvalds has famously argued that “on the internet, nobody can hear you being subtle”; but there’s being direct and there’s being abusive, and Torvalds has pretty clearly crossed the line on a number of occasions. (To his credit, he seems to have had a change of heart in recent years.) So there is a middle ground to be found here. But it doesn’t involve reducing the standards, it involves making it easier to adhere to the standards and kindly helping people learn about the standards and fix up their questions and attitudes when they don’t. Torvalds shouldn’t accept the bad code and include it in Linux (imagine if people considered others’ feelings more important than having, say, your airplane’s flight-control software free of bugs!) but it doesn’t have to be sent back in flames either.
Ultimately, though, from personal experience, particularly from my support years, I guarantee some people are going to be affronted no matter what. The only way to make everyone feel welcome would be to make the group so widely applicable that it became insipid and ineffective and nobody would use it. We need to cultivate a sense of perspective as we move ahead with group identity.
A Sense of Perspective
One way to do that is to clearly define what the group is and what it is not, and stick to it. Shirky suggests a constitution of some kind as an effective way to accomplish this. Many online communities already have rules or codes of conduct, but they too often speak mostly of specific things you shouldn’t do, rather than sitting you down to think about what the group’s purpose is.
Groups inherently have to exclude some people and kinds of interaction. Exclusion is a dirty word, but it’s not all bad; the question is whether the exclusion is arbitrary or part of the group’s mission. If we tell someone he can’t join a knitting club because he’s a man, that’s irrelevant to the group, arbitrary, and discriminatory. If we tell someone he can’t join a support group for women because he’s a man, few people are going to be offended: that’s just not the point of the group. If we ask people not to talk about football in a forum about the Qur’an, nobody is going to claim they’ve been wronged. My general Kantian rule here is that if you can’t explain logically why someone or something doesn’t belong in the group in a sentence or two without feeling awkward about it, you’re probably being arbitrary. If you can do that, you can stand up to anyone who confronts you on it, too.
So it need not be problematic to close StackOverflow questions that don’t follow the standards of the site, as long as the standards are applied equally to everyone and people are offered assistance, to the best of the ability of the community and the software, in meeting those standards. That’s real welcome: inviting people and helping them learn to belong in the community, should they choose to accept the invitation. Welcome does not consist of alienating your core group by firing people over disagreements over redundant code-of-conduct clauses, making your community a less valuable resource, or blogging feel-good platitudes about welcome.
We’ve had Internet communities on the scale of StackOverflow for less than 20 years. We still have a lot to learn, but we’re also ignoring plenty of the lessons we should have learned by now. I hope more communities can stop to think about what it takes to keep a community working, because right now it seems like all the ones that succeed do so by accident.