Factionalism: Site or Tag?

by Jeff Atwood

on September 28, 2010

Let's say I told you we were going to create a programming website that merged all the C#, Java, Ruby, Python, and PHP programmers, so they could all ask their questions together -- and simply tag those questions with the appropriate language. You'd probably get a response like this one:

I disagree with merging. I think [Java] should be a niche site that will attract the relatively expert crowd that doesn't usually care (or not as much) about other types of developer language questions. Yes, I'm talking specifically about myself, but also know about several others I know in the community who can speak for themselves if they wish.

By not merging it, we are giving a good one place to find answers only about [Java], with the ability to have a very engaged and focused expert crowd ready to answer, and benefiting from specialized "rank" in this specific field.

It might sound superficial, but I think we're more likely to see the likes of [Java Expert #1] and [Java Expert #2] in a separate, unmerged [Java] site than in a broader developer site.

By this logic, Stack Overflow itself should not exist! We should have created a separate site just for the Java faction, and yet another for the PHP faction, and yet another for the C# faction ...

Just replace the word Java, above, with Developer Testing, and this is exactly the situation we're facing right now.

Joel and I are deeply opposed to letting the community split itself into factions in this way. We would rather have a few large sites on reasonably broad topics that use tags to differentiate subtopics, instead of two dozen tiny ultra-niche subsites that only a fraction of people interested in that broader topic will ever see.

While the Stack Overflow community has historically come down quite hard -- honestly a lot harder than either Joel or I originally intended -- on the side of the non-subjective question, we believe that programmers.stackexchange.com site is the place where the more subjective "there's no right answer, but let me share my professional experiences with you" questions can live and prosper.

Let's consider the sample questions from the Developer Testing site proposal, and where those questions might live.

  1. How do I unit test threaded code? Non-subjective; already exists and has 70 upvotes under the [multithreading] and [unit-testing] tags

  2. How do I mock a database? Non-subjective; already exists and has 7 upvotes under the [unit-testing] and [mocking] tags

  3. How do I test private methods? Non-subjective; already exists and has 60 upvotes under the [unit-testing] tag.

  4. is it OK to have multiple asserts in a single unit test? Subjective; fits on programmers.stackexchange.com under the [unit-testing] tag

  5. How to start unit testing for a large scale application with no unit testing support at all? Subjective; fits on programmers.stackexchange.com under the [unit-testing] tag

Immediately we have a huge problem: every question in this proposal is a good fit on an existing site! Now compare that with, say, questions about gmail on Super User, or questions about search engine optimization on Stack Overflow -- neither of which had a good home until webapps and webmasters were launched.

In other words, the whole point of launching new sites is to give interesting questions that currently have no place to go a decent home.

I'm sensitive to the subjective versus non-subjective divide. There are entire classes of questions that are totally valid concerns for professional programmers which can no longer survive on Stack Overflow in practice. That's why I supported the programmers.stackexchange.com proposal in the first place; good-but-subjective questions were being closed because they had no home. They needed a home. Now that programmers.stackexchange.com has been created ... they have a home.

None of the example questions in the Developer Testing proposal lacks a home. Therefore, acquiescing to the factionalism demanded by some elements of the community and creating this site would by definition create a "duplicate" as defined by Area 51:

duplicate

This proposal would tend to drain audience from another Stack Exchange site.

If you asked the Java factions and the C# factions if they needed separate sites, of course they would tell you that they absolutely must have their own sites. But the proof is in the pudding: the Java factions and the C# factions live side-by-side, right now, today, in Stack Overflow tags and learn a ton from each other. And so can the Developer Testing folks.

So my advice to you is this: join or die.