I believe there are still some issues with self-answers, particularly near-immediate self-answers, which are not addressed by the current system. This could be remedied by imposing an automated restriction on how soon self-answers will be displayed in the thread. Allow users to submit self-answers at any time, but do not display them until certain reasonable conditions (a relatively short timeout, or the posting of a competing answer) are met.
This thread covers a good deal of the concerns surrounding self-answers, and some mechanisms in place to prevent "bad" self-answers from new users and other abuse of the self-answer system.
As I understand it, the following restrictions apply:
- Users with <100 rep cannot self-answer within 8 hours of posting a question.
- Self-answers cannot be accepted within 48 hours of posting.
- Self-answers do not provide rep from being accepted.
- Accepted self-answers are not pinned to the top of the thread.
This does a good job of preventing users from posting answers which should probably be comments (or not posted at all), allows superior answers to rise above accepted self-answers, and prevents some other abuses of the system.
However, there is a less tangible element of self-answers which this does not address:
Self answers are a disincentive to other users who may otherwise be willing to post more accurate, detailed material stemming from broader or deeper knowledge and/or experience than the asker has.
When someone posts an answer to their own question, it presumably means that the problem which spawned the question is solved to their satisfaction. This is fine for the purposes of sharing information with the community, but it deters others from providing solutions to the question which may be more complete or accurate since there is not so much likelihood that the self-answerer will accept a competing answer.
Worse, in the case of near-immediate self-answers, this can remove the incentive for other users to gain reputation via up-votes because the asker has an unfair head-start. Unless everyone is required to view new answers to questions where they have already voted on an answer, most people probably vote on a good answer and never look at the question again. This can put (potentially) better answers at a disadvantage even when the head-start is within an hour.
Add a delay to the posting of self-answers. The delay should be the least of these:
- Until a competing answer has been posted.
- A reasonable amount of time to allow competing answerers a chance to post, without preventing self-answers outright. (Suggestion: 2 hours)
To better facilitate this, and avoid completely turning people off from appropriate self-answering, I suggest the delay be handled through automation more than user limitation. That is, the user should be allowed to submit the self-answer at any time. But the answer will not actually be displayed to other users until one of the above conditions have been met. This could also be applied to the existing 8-hour delay for low-rep users.
T:0 - A user finishes resolving a tough problem, just before he would have gone to SE for assistance, and decides to share his new-found knowledge with the community. He posts a question describing his problem.
T:5 minutes - The user then posts a self-answer. There has not yet been another answer posted to the thread. The user is given a notice describing the restrictions in place regarding self-answers, and the answer is submitted into the database but not displayed to other users. (Similar to how suggested edits are only displayed to the user suggesting them, until they are approved.)
T:1 hour, 15 minutes - Another user sees the unanswered question, and posts their answer. Their answer is displayed immediately, and the self-answer is now also displayed.
T:2 hours - Had the second answer not been posted, the self-answer would automatically be displayed after this point.