We answer a huge number of duplicate questions here on UA. There are good and not so good reasons:
- It’s often quicker to just answer the question than search for a good answer.
- Searching often doesn’t find a good answer. I’ve searched for things that I know have been answered a bizillion times, but haven’t found a good answer on the first page or two of search results. Even when I’ve been the one to create the answer, I often have difficulty finding the post in UA.
- There are lot of beginning programmers seeking help on UA…perhaps even a majority of the questions are from beginners…and the answers need to be far more focused and complete. That is an answer that can easily be adopted to solve an experience programmer’s problem, will often stumps a beginning programmer.
- References to old answers are far less likely to get acknowledged than answers specific to the question asked, even with the specific answer is less accurate or complete.
- There is a reluctance on the part of moderators to close duplicate questions (myself included).
As a partial solution to duplicate questions, I propose that we create “once-and-for-all-time” answers for common questions. These question would differ from our current questions in three ways:
- Completeness - The answer would strive to address the question in more breadth and depth than our common answers. They may point out multiple ways to solve the problem. Ideally source code would be in both C# and UnityScript (perhaps as a comment to preserve the flow of the answer). And they may have links to related or support material that we might not bother with answering a common question.
- Tagged - like we use [META] now, the beginning of the title would be tagged. I propose using [OAFAT]. It stands for “Once And For All Time.” The term was uncommon when I did a google search, and combined with the term ‘unity3d,’ it produces only a single hit.
- Contrived - Typically the person answering the question would be the one asking the question. That is typically the person creating an OAFAT answer would open a new question, answer their own question, and then accept the answer.
Hopefully OAFAT answers would get more scrutiny by the community. People would comment on them, pointing out errors or weaknesses, or providing links to expanded material. Answers may take many formats. While I primarily see them as technical answers, they may instead be a collection of links to other answers or materials. For example, it would be nice to have a legal OAFAT that includes a disclaimer, a link to the license agreement, and then an annotated list of old answers on what is legal with Unity and Unity provided resources. Or a single OAFAT question with an annotated list of material on Unityscript/C# translation. And I’m sure there are old answers in UA that meet the OAFAT standard of breadth and depth. If the titles of these old questions can still be changed, it would be beneficial to add an [OAFAT] to the beginning. If not, it would be nice to have a placeholder question pointing to these great answers.
Having OAFAT answers would help us in several ways:
- It would make it much easier (at least for me) to close questions as duplicate. And I think the person asking the duplicate question would feel better about having the question closed as well.
Assuming the moderation queue ‘send message’ functionality ever gets fixed, it would make it easier to reject questions before they hit the list.
- These answers would provide a good resource for other answers, simplifying the answering of many question that are based on but beyond the standard OAFAT answer.
- Because they would be linked to frequently, they would come to the top of the Google searches, which means more people would find good answers and not ask the questions in the first place.
This idea does not require any changes to UA, just an agreement that it is appropriate way to use UA. I don’t see the number of OAFAT answers being huge…may measured in hundreds over time. But the idea has the potential to have a big impact on reducing the number of questions that we answered again and again.
Ironically, I believe we’ve already had a meta question discussing duplicates
Anyway here’s my two cents.
- You’re definitely right. It’s hard to find a good answer to a previously answered question. That’s one issue, but I want to expand upon a point you made about providing specific answers. The biggest reason I tend to answer duplicate questions is that more than likely I could direct someone to a good answer, but 9 times out of 10, they couldn’t apply that answer to there own problem. Even something simple like a
NullReferenceException raises so many questions, and is so case specific that it’s hard to say look at this page and figure it out.
- In this example, it raises multiple questions before we even get to solving the specific case. What’s a reference? That leads into the next question. What’s not a reference. Then, why’s it
Null? What even is
Null? So if they figure all of that out then they need to figure out how all that applies to what they did. The line number can usually tell you what’s null, but then you need to go back and figure out why its null when the mistake is 100 lines before the line giving the error.
- Sorry for a bit of a drawn out example, but I think it helps make my point. For a beginner programmer, there’s so much to learn and then apply that reading a generic answer doesn’t always help. I remember when I first learned to program the Unity Manual said
GetComponent(YourComponent). So I copied that line into my script then wondered why I got an error saying
YourComponent doesn’t exist :).
- Hence more often than not, I just answer the questions as they pop up. That way I can explain to them exactly what’s causing the error in their specific case, and usually give them all the relevant information that they need as well.
Now having said all of that. I think that your OAFAT answers could definitely be useful. I see it as almost a wiki to answer the most frequently asked question on the site. I have done something like this here. Given, that’s not nearly as a thorough as I’d like it to be. It’s a start, and I’ve seen other questions with a similar goal. I think people will always need more help than a generic one-type-fits-all answer so I could imagine answers turning into:
“Here’s an answer page describing/explaining your problem (i.e. OAFAT). Now here’s how you apply that to your case.”
And my last point. The biggest thing is I don’t believe its fair to reject questions in moderation until the SendMessage feature is fixed (exempting spam/hate speech). Without anyway to direct someone towards the right solution, rejecting their question may keep UA clean, but that person will likely have no way of solving their problem. So until that’s fixed I strong hesitate to reject almost anything.
So feel free to argue or disagree, or I can clarify anything I just said.
I do really hope this is still an active post because I think you have something good in the works here, but I think we need to analyze why these kinds of problems are occurring and find the root of the problem instead of just dealing with the consequences.
I read all the posts here and I may be summarizing what has been said in the following paragraphs.
Problem number one has to be duplicate questions. I don’t think any of you can disagree with that. I also do not believe this is something that UA community can fix on their own. You have to sit and think of why a person decides to post a question before they look for other similar/related questions that have already been answered. Most of the time the kind of people that will do this will be new users that are just plain and simple lazy. You can’t “fix” lazy people so what do you do? You make it easier for them to find the answer to their question than it is to post a new question. Perhaps Unity can add some new functionality that uses the tags and other keywords either in the title or the question that helps them “suggest” posts to look at before allowing them to post their question. If they decide that none of the previously answered questions provide enough information to help them solve their problem then it seems only fair that a new question is allowed to be posted. Then perhaps once it has been answered we determine that it can be aggregated to one of those [OAFAT] questions. This would help expand them to contain more and more of the edge cases for a particular problem. Then the next person that wants to post a question dealing with that very same problem has yet more information at their disposal.
Problem number two is a lack of a forced entry tutorial. There is this video tutorial that Unity provides for people as a “here, check this out if you are interested”, but how many new users do you think actually watch this video? Not very many because I have also given up on telling people not to post comments as answers. If they are trying to use Unity Answers as a medium to solving their Unity problems then you can be sure they ARE interested in knowing how to use this tool. I think forcing them to learn how to use Unity Answers properly seems only fair.
I will be continuously updating this post, btw. I’m just at work so I won’t be able to write all my thoughts all at once.
There are a few things I keep in mind when I deal with duplicates.
If it has already been approved and I spot the question is a duplicate posted by the SAME user, I link the Original QA to the duplicate and close the duplicate (or close the one with the least answers), but the linking is important.
If it is a duplicate QA by the SAME user, sat in the mod queue, I Reject.
If it is a popular question, in that it is asked over and over by Different users (technically not a duplicate), accept or reject follows different criteria :-
Have they taken time to do some research? No → Reject
Yes → Is it case specific and requires a new question? Yes → Accept
No → Is it a New User’s First Post? Yes → Accept and explain ‘rules’
No → Reject.
There are also special cases like THIS GUY who posts the SAME question over and over with slight variation. The trouble here is that each QA has been answered. Rather than each answer all being contained in the same QA they are scattered far and wide. The only thing I can think of here is closing Accepted QA and rejecting future Duplicates. However, as they are varied it can be hard to judge at a glance if they do require a separate question or if they should be rejected, or linked and closed.
Possibly one of the biggest factors to
consider is the difference between a
Google search and Unity Answers
in-built search. Google will find
everything. UA internal is absolutely
firkin RUBBISH and it is hard to say
people haven’t done their research if
they used this. They just simply haven’t gotten any results!
Implementing an advanced search system?