community April 17, 2009

The Stack Overflow Question Lifecycle

Apparently some users who really should know better are confused about the way Stack Overflow works. I take this as a sweeping indictment of our current FAQ (both official and unofficial) and I will work to correct this situation — starting with this blog post. Stack Overflow is, at its heart, a Question and Answer…
Avatar for Jeff Atwood
Co-Founder (Former)

Apparently some users who really should know better are confused about the way Stack Overflow works. I take this as a sweeping indictment of our current FAQ (both official and unofficial) and I will work to correct this situation — starting with this blog post.

Stack Overflow is, at its heart, a Question and Answer site. So the lifecycle of any given question is, by definition, how the site works. I’ve documented it in a series of blog posts over the last few months, but let’s put it all together in Reader’s Digest form right here:

Stack Overflow is a community of programmers

Right off the bat, if your question is not programming related, it shouldn’t be on Stack Overflow. What is a programming related question? Here’s a solid set of guidelines generated by the SO community itself:

  • Questions intended to resolve a specific programming problem that have multiple possible answers. The “correct” response is subjective.

  • Questions intended to resolve a specific programming problem that have only one correct answer. A “specific programming problem” can be defined as a problem that exists in code and that can be resolved with correct code (or cannot be resolved at all). These questions are normally language-specific.

  • Questions about language-agnostic algorithms for hypothetical problems that have potential real-world applications. For example, traveling salesman or BSP.

  • Questions about best practices and other aspects of programming, including use of software tools used in the development process, standards for maintenance and readability of code, advice to avoid potential coding pitfalls, etc.

  • Questions about software tools that, while not directly related to software development, involve some scripting or programming themselves, for example, Excel or Matlab.

Look at the above guidelines, and ask yourself: Does my question fit? If you believe it does, awesome! Ask away! If it doesn’t fit, it doesn’t mean that you’re a bad person for wanting to ask that question. It just means that you should probably ask it elsewhere. If, however, you ask a question that is not a good fit for Stack Overflow, then..

Who decides what questions don’t fit?

Trusted members of the Stack Overflow community decide which questions belong on Stack Overflow. Every question goes through a community vetting process:

  1. You see a question that is inappropriate for Stack Overflow because it’s not programming related.

  2. You have 3,000 reputation, the minimum required to cast close or open votes.

  3. You vote to close this question.

  4. Four (4) other users also vote to close this question, reaching a total of five (5) closure votes (or, a moderator votes to close — moderator votes are binding.)

  5. Once closed, the question can be reopened by voting to open in the same manner. If the question garners five (5) votes to reopen, the process starts over at step #3.

  6. If question remains closed for 48 full hours, it is now eligible for deletion.

  7. You have 10,000 reputation, the minimum required to cast deletion votes.

  8. If the question gets three (3) deletion votes (or a moderator vote), the question is deleted.

  9. Note that deleted questions are invisible to typical users — but can be seen by moderators and users with 10,000+ reputation.

  10. The question can be undeleted at any time by voting for undeletion in the same manner. If the question garners three votes for undeletion, the process starts over at step #7.

No, it is not a perfect process, because not everyone agrees all the time. If this surprises or shocks you in any way, I’d like to gently remind you that the earth you’re currently living on is populated by these things we call “human beings”. And disagreement is, believe it or not, normal. Expected, even. As one Stack Overflow user said:

Congratulations…you’ve found an inconsistency in the world. If only there were some way for you to reconcile it.

If you’re looking for a perfectly consistent system, you’ll need to invent robots to implement that system, first. As long as people are involved, the only constant is this: there will always be inconsistency.

(And just for the record, it is OK to have fun mostly-programming-related questions that the community likes every now and then — as long as the system isn’t overrun with the things.)

Why do you allow content to be deleted?

Just like death is an unfortunate but normal part of life, I believe deletion is also an unfortunate but normal part of living websites.

Who can delete posts?

  • Post authors can delete their answers. But they can only delete their questions when there are no significantly upvoted answers to the question.

  • Users with 10,000+ reputation can delete questions that have been closed for 48 hours, if they cast three (3) votes for deletion. Questions can be undeleted through the same process in reverse.

  • Moderators can delete anything.

Why would you delete a question? Isn’t closing it enough?

  • Some questions are of such poor quality that they cannot be salvaged. They’re literally nonsense. Not every byte of data that is created in the world is infinite and sacred.

  • Some questions are so incredibly off topic that they add no value to a programming community.

  • The mental cost of processing these closed questions is not zero, particularly for users who are actively engaged and scanning questions to find things they can help answer.

  • If users see a lot of closed questions, they’ll note that we don’t enforce the guidelines, so why should they? Without any final resolution, asking questions that get closed becomes something we are implicitly encouraging — a broken windows problem. If this goes on for long enough, we’re no longer a community of programmers who ask and answer programming questions, we’re a community of random people discussing.. whatever. That’s toxic.

  • If enough of these closed questions are allowed to hang around, they become clutter that reduces the overall signal to noise ratio — which further reduces confidence in the system.

Let me be clear: we do not seek out deletion, by any means. But we believe not having the guts to cull some of your worst content is much, much more dangerous to your community than letting it sit around forever in the vague hope that it will magically get better over time.

Hopefully this clears up the bulk of any confusion about the lifecycle of a question on Stack Overflow. As I said, I’ll try to get the essential parts of this in the faq.

Podcast logo The Stack Overflow Podcast is a weekly conversation about working in software development, learning to code, and the art and culture of computer programming.


The Loop Curved Logo
community September 30, 2020

The Loop-September 2020: Summer Bridge to tech for kids

In response to COVID-19 and its impact on SYEP, over 50 nonprofits and technology companies came together to design the Summer Bridge 2020 plan to continue the program. As one of Summer Bridge’s partners, Stack Overflow designed a workplace challenge to give students a taste of what it’s like to work in the tech industry and to give us a chance to learn more about how students engaged with our developer community.
Avatar for Jon Chan
Engineering Manager, Public Platform