The current comment system is an essential tool for making our Stack Exchange Q&A sites work. However, it can be improved; some comments are ephemeral, like those asking for information. That's great, but once that info is provided, 9 times out of 10, the comment sticks around, being pointless. Sure, you can go bug a moderator to take care of it, but that's a waste of a mod's time.
Also, comments can be unproductive, becoming detrimental to the site. Yes, mods can delete them, but it's better to solve the problem directly. After all, isn't that what the SE Q&A model is all about? We ditched the discussion forum model of getting help by rearchitecting it so that subjective noise and pointless discussion is minimized, thus focusing on producing worthwhile content.
I submit that the best way to resolve the issues with comments is to ditch the comment model entirely and replace it with something else. The way to do this is by understanding what kinds of comments are productive and finding a way to do the same thing, but without allowing for the possibility of unproductive comments.
There are 3 kinds of comments which can be productive:
- Requests for info/clarification. These are mostly used for questions, but sometimes answers need more information.
- Providing more info/clarification. These are mostly used for answers.
- Discussion about the accuracy/validity of one or more points of the question/answer.
I'm of the opinion that if the comments aren't of one of these three kinds, then they're irrelevant if not actively detrimental.
Note: I'm aware of a fourth kind that you might consider beneficial. The "I downvoted you because you need to do X" kind. I'll cover how we deal with that later.
Let's look at each category, and how we go about implementing a new system that handles it.
Request for info/clarification (RFI)
This is very simple. There should be a button that says, "request info." You get to add a little 600 character request asking for information. It will appear under the question/answer.
The differences between comments and RFIs are:
- No talking. No @ communication or notifications. You're talking directly to the person who made the post, and they're the only ones who are notified when you give an RFI.
- The person who wrote the question/answer is notified when they get an RFI. They can then:
- Edit their question/answer and mark the RFI as "resolved".
- Mark the RFI as "not needed" if they feel that the question/answer already contains the information requested.
- If you seen an RFI on a question and upvote it, you will be notified as discussed below.
- When one of your RFIs is marked resolved (or one you upvoted is), you are notified and can thus verify that it was resolved to your satisfaction. If it was not, you may add another RFI and start the process over again.
- RFIs marked "not needed" do not notify the person requesting the RFI.
- Once an RFI is marked, whether resolved or not needed, it disappears. It's gone. Thus, the owner of the question/answer decides when these are relevant.
RFIs can be flagged just like comments. Of course, unlike comments, RFIs can also be removed by the questioner/asker.
Making an RFI should require about the same rep as commenting does now.
Providing more info/clarification
We don't need comments for this, and we haven't needed them since everyone gained the power to edit. If you have more information to add to an answer, add the information to the answer. Or make an RFI asking them to put it into their question/answer.
If information isn't supposed to exist in comments, let's make it harder for people to put information into comments. Let's encourage editing the question rather than making a comment.
Though we tend to frown on it on Stack Exchange, discussion is sometimes a very useful tool for getting certain things done. The problem is that it can either spiral out of control (becoming a flame war) or start getting into minutiae that are irrelevant to the actual question/answer at hand.
Thus, I propose the following: we employ our chat facilities. Just under the RFIs is a button for creating/entering a chatroom for the question, similar to the "take it to chat" messages that can pop up in long comment chains. Each question/answer can have its own independent chatroom, where people can discuss whatever needs to be discussed.
It should work like chat does now, with the exception that the question/answer associated with the chatroom can always see it and participate. Also, the chatroom should never expire.
Chat can also be used to discuss RFIs. Perhaps the RFI post can have a button that will bring up a chat window, with the @ notation to notify the person making the RFI.
We could add some UI niceties, like a button that shows the last 5 posts in chat. Or maybe have them appear automatically, like comments now.
More often than not, these are just RFIs with a "-1" in them. Once you get notified that the information has been provided, just remove the downvote. Plain and simple, and far more likely to get rid of downvotes.
Other downvote explanations tend to be more about providing instruction. "This kind of question is not appropriate for SO" kinds of things. We have the chat thread for that.
Ultimately, I don't see any truly productive educational comments that wouldn't be served by chat. Especially if we show the most recent chat postings below the question.
I've obviously never used this system, so I can't claim that it's perfect. But here are some potential issues:
- Because marking an RFI as "not needed" makes it disappear, it is not obvious to a third person that the questioner/answerer has discarded the RFI. It simply disappears. So someone coming to the question after the RFI has been marked as "not needed" may simply think that nobody submitted an RFI on it before. Thus, the person would have to keep marking RFIs when he doesn't want them.
- A possible solution is for the person marking them as "not needed" to be able to keep them around to let people know that this was considered and rejected.