When I get an answer that seems correct, I accept it, whether it has been days or just a few minutes. But it made me wonder. Should I leave the question open for a bit longer, to encourage others to come in and read the question? Is there a general best practice that could be followed or wouldn't it matter too much?
I get your concern — accepting an answer can sometimes drive users with good (or better) answers away from answering the question. I've refrained from accepting answers myself once or twice too (here and here, for instance), but in these instances my main reason for not accepting answers was actually that neither of the ones posted really made me feel like the questions were completely answered, so I felt shouldn't just accept the best "good enough" answer.
Is there a general best practice that could be followed or wouldn't it matter too much?
There really isn't a best practice to follow. Accepting answers, much like voting, is completely up to the individual. Accepting an answer is — in sites that use the SO model but really don't have questions about solving problems — the closest thing to saying "Thank you! This answer was helpful (and answers my question, of course)". If you feel an answer fully addresses the question(s) you posed, feel free to accept it — or not! Nothing prevents you from retracting the vote at a later time if new answers come in, or to just leave the answers unaccepted and wait for other answers. And aside from that, you can always start a bounty if you feel better answers are out there.
Now, for some numbers to try to help better visualise the situation:
- We have 5,346 questions on our site;
- Of which 2,900 have an accepted answer (meaning about 54% of the questions have accepted answers);
- Of which 446 distinct questions (about 15% of the above) have received new answers after having cast (and not retracted) their most recent accept vote. To be more precise, there were at least 748 answers posted to questions where the most recent accept vote was not retracted after that accept vote was cast (which means that the 446 questions I mentioned before have an average of 1,67 answers);
- I estimate that up to 20% of the questions with accepted answers have received new answers after having accepted an answer. The query I link to above does not account for all of the cases, since the data available does not give us the precise time an answer was accepted (you can read more about it in the description of the query, and in the comments throughout it). As such, I've only accounted for answers that were posted in the day after an answer was accepted. This leaves out answers like this one (picked just because it's a recent case that was still clear in my mind) that were posted in the same day the answer was accepted. It also does not account for cases in which the accept vote was changed (like here, in which my answer had been accepted at one point, and then new answers came in, and the accept vote was changed).
These numbers help you get a better understanding of the situation, but we obviously have no way of knowing if the other 80%-85% of questions that have not had new answers posted since an answer was accepted have not had them because of the accepted answer (correlation does not imply causation). It could be that other users thought the question was indeed answered, and they could add nothing new, regardless of the fact that there was an accepted answer. However, the numbers illustrate that there have been a lot of new answers posted in questions with accepted answers.
Bottom line: accept an answer if you feel it fully addresses the questions posed. Or don't, if you feel something better is out there.
The above numbers are based on public queries, because I had decided it's be useful for other users to be able to access the queries and potentially contribute with more feedback or smarter ways of getting more accurate numbers or whatever. Nevertheless, I remembered I can also run this query on data that's not publicly accessible, if I just give the community the numbers I get from it. As such, I reran the above queries to give some more accurate numbers, and the results are as follows (note that some numbers have, naturally, changed; but I'll keep the old numbers above for reference):
- We have 5,599 questions on our site (that's an increase of 253 since the day I posted this);
- Of which 3,017 have an accepted answer (meaning about 54% of the questions have answers; same as above [which now shows 3,002, an increase of 102]);
- Of which 510 distinct questions (about 17% of the above; meaning 2% more than the above [which now shows 465, an increase of 19]) have received new answers after having cast (and not retracted) their most recent accept vote. To be more precise, there were 847 answers (that's 99 more than the above [which now shows 788, an increase of 40]) posted to questions where the most recent accept vote was not retracted after that accept vote was cast (which means that the 510 questions I mentioned have an average of 1.66 answers; a decrease of 0.1 when compared to the above numbers). Both of these numbers are regarding questions that have not changed their accept vote after the answer(s) was posted and disregard answers that were posted after the accept vote was cast but were afterwards deleted (as I had a quick look at the results and figured most of these were low-q or spam, so not worth keeping around [if they were taken into account the numbers would be 744 and 1483 respectively]). This point addresses the main focus of the question, in the way that it shows that 17% of the questions with accepted answers receive 1.66 new answers posted after their most recent accept vote was cast (and that vote was not retracted);
- From this point on, I'm introducing new data that I wasn't able to get in the queries from before the edit (some of the above data is also new, and the numbers are significantly different). There are 302 answers that have had their accept vote retracted at some point (either because it was changed to another answer [more precise numbers for this below], because it was simply retracted to leave the question unanswered, or replaced on the same answer because the user was testing the buttons or something of the sort);
- There are 70 questions that had their accepted answer changed to another answer that was posted after the first answer had been accepted, and these got 116 answers that were posted after that vote was changed. If my head is not starting to malfunction, these 70 can be added to the above 510, to get a total count of 580 question that got new answers after they had accepted other answers, of which 12% where actually changed to the new answer. This means just a little over 2% of the questions with accepted answers have actually changed their accept vote to an answer posted after the accept vote had been cast.
So the bottom line here (in terms of numbers, and not in terms of what you should do) is that 54% of our questions have accepted answers, and 19% of these have had new answers posted since another answer was accepted, and just a little over 2% have changed their answer to one of those new answers. A total of 963 answers have been posted after an answer had been accepted, which means 12.6% of our answers were posted after another answer had been accepted on the question in which they were posted.
Additional to what JNat said, it might be worth mentioning that accepting too soon, might indeed influence people from visiting your question. They might be scarce at this point in time, but I can't help but think that there might be people out there, who are not too bothered with every question on this SE. Those people would just browse through all unanswered questions from their favourite tags and if you had accepted prematurely, the question might never pass the eyes of such people, who might be able to give a better answer then already presented.
I post an answer if I have something substantial to contribute which is not covered by other answers already posted (if any). It doesn't bother me if one of the other answers is already accepted.
It has been a while since I stopped caring about reputation, but let me put that aside and look at it from the perspective of someone who does care about the reputation (which, by the way, includes my former self):
If I have a useful answer to a question which already has an accepted answer, what do I lose by not posting it? A measly 15 points1, because the asker rarely unaccepts an answer to accept another one. However, 2 upvotes to my answer makes up for that loss! Thus, you see, even if you care about the reputation points, it is still beneficial to post an answer if you have one.
1 On a somewhat pedantic note, this is not really a "loss" because one cannot assume that my answer would definitely be accepted if there wasn't an accepted answer already.