One of those topics occasionally bantered about in chat, and with a bit more frequency lately is about how we close with duplicates and what these questions should be.
The idealized flow with closing for a duplicate is one of:
a1. Vote to close as a duplicate
and then either:
b2. Poster rewords question to address the "not a duplicate nature"
b3. Revised question is a good one, reopened, and life continues
c2. Poster says "yep, that is it" (or sufficient other voters agree)
c3. Remaining question is either good (as a sign post for future) or poor (and eventually deleted)
The post is correctly closed as a duplicate path (c)
There is no problem with the 'c' path other than the possibility of eventually cluttering up the linked questions with duplicates that aren't good sign posts. For an example of this see the 2,200 posts linked to Stack Overflow's NullPointerException question - that really doesn't help anyone. And while we don't have 2k NPE questions here, having 20 or so questions linked to a post diminishes its value unless those are good questions to begin with.
One can see the most linked questions with this data.se query along with some other statistics. Our most duplicated questions often have long discussions and lots of views.
Closing as a duplicate of these locked or closed questions says "we once accepted this, but we don't any more" which indirectly leads to further confusion of scope (that these discussions, debates, holy wars, polls are appropriate here), too broad, etc... and misplaced nostalgia back to earlier times.
My opinion: A duplicate vote implies that this is also a discussion and... well, my take is that aren't good posts in the first place (especially if one looks at sorting by AnswerCount). Interesting, yes... but these are blog posts and reddit threads instead. Maintaining these massive answer collections makes it harder to say 'this isn't a good question.' and provide appealing targets for discussion targets that are tangentially related.
When the close vote is a stretch (a)
One problem occurs when a1 is a stretch - that it is an "this post addresses the question." This is contentious because if the "this addresses the question" is the threshold for an answer on a question, then posting an answer from the other question as is would be a viable answer... which is one of the criteria for determining if one would vote to close the question as a duplicate.
However, the other criteria for a close vote as a duplicate is that it asks the exact same question.
And thus, one of the two sets of statements here should be considered proper
- An answer should answer the question, not just address the question
- A duplicate post must be an exact duplicate, so that the answers on the duplicate target exactly answer the question here. A duplicate question should be a strong candidate for merging.
- An answer should address the question, but does not need to answer it fully
- A duplicate post must lead the asker of the question in the proper direction to solve their problem. A duplicate question is a sign post on the road to understanding the entire picture.
When the (revised) question isn't good (b')
Not a good question in the first place (b2')
The other problem with this is when the question itself is really unclear, too broad, or primarily opinion.
We've effectively done that with writing a specific off topic reason with "we won't debug your code" rather than writing a canonical duplicate that such questions get (unhelpfully?) duplicated to. The off topic clearly indicates that we will not answer those questions here. The duplicate... not so clearly.
While we might find that duplicating the question to another one that was asked that is the correct duplicate, it leaves poor questions in its place... and it also makes the duplicate target that much harder to remove in the future.
Not a not so good, but clearly not duplicate (b3')
There is also the situation where a question is modified to be clearly not a duplicate, but still isn't a good question. With the number of close voters that are active on the site, this poses a special problem for trying to close questions and keep poorly written ones closed.
When the question isn't a duplicate, they do get reopened - even if they aren't good questions. And as the duplicate took five votes to close, it takes another five votes to close again from other users. This may mean the question never gets closed a second time, leaving poorly asked and written questions open on the site.
Unfortunately, this situation is often the case on Programmers.SE - a question is closed as a duplicate of another opinion or too broad question, addresses the "this is not a duplicate" but remains a question that is primarily opinion, too broad, or is still unclear.
The resulting situation isn't good - the original post (if it remains closed) is no longer a duplicate of the target dup (bad for future readers). Alternatively, if it is reopened, it remains a not-good question.
And so, the best case for this is possibly pretend the other question doesn't exist when closing a question that isn't a good fit in the first place, especially in situations where one would be casting a down or delete vote on the question anyways - it isn't a good sign post and will ultimately be deleted.
- Close with the 'real' reason: opinion, too broad, or unclear
- Make mention of the related question in comments
While this may hinder our SEO, it presents a better appearance to the random person coming from google. It also means that more questions (and answers) that are not good fits for the Stack Exchange Q&A format are likely to end up deleted.
The guidelines for this would be:
- Don't duplicate to a question that should be deleted
- Don't duplicate a question that should be deleted
This should also include a critical look at the questions that we are closing as a duplicate of and consider if these are things that we want on the site and delete them too. I will also point out that historical locking them makes it harder to justify not closing these questions as a duplicate of the historical lock as the historical lock contains the text that this is not a good question for the site and they are difficult to search otherwise that duplicate votes to historically locked questions are less likely to be spurious.
There's another wrinkle into this. While Programmers.SE doesn't have any yet, gold tag badge holders can close as a duplicate with a single vote. This is very useful on other sites as it reduces the necessary votes to close a question. However, this is sometimes used as a "I can either close as a spurious duplicate now or I can cast a too broad, wait two hours and hope that it gets closed before anyone gives an answer."
That hope for the "no one answers" is often in vain. This results in ultimately deleting the question, reputation loss for people who answered, and an increased unease with the Stack Exchange Q&A platform.
However, that is the tool and in the face of "close it fast or create worse experiences for more users" the close it fast may be the right answer, however wrong it is. At least under the current system.