Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 158 Stack Exchange communities.

What is meta?
Here's how it works:
  1. Any Stack Exchange user can ask a question
  2. The community provides support, votes on ideas, and reports bugs
  3. Your voice helps shape the way Stack Exchange operates

Once in a while, I come across an answer, often flagged as not an answer, that says something along the lines of:

After fiddling with my code for a bit, I found that changing the Foo() calls to Bar() calls solved the problem.

Can someone explain to me why Foo() didn't work to begin with?

These are usually self-answers, but occasionally someone might find a solution to someone else's problem and not understand why it works either. (Such answers could take the form of a code snippet rather than prose.)

If this answer consisted only of its first paragraph, it would be just like any other answer and never have been flagged as NAA to begin with. However, the second paragraph is essentially a question about the content of the answer. I can see flagging such an answer as NAA as others may post answers to the question addressing the question in the answer, turning the whole thing into a forum thread. On the other hand, I don't agree entirely with deleting the actual answer either.

It doesn't seem like I should convert it to an edit, especially if it's also been accepted by the asker, since as mentioned the first paragraph does actually answer the question (or offer a solution to the problem). At the same time, removing the second paragraph entirely could give the author the impression that it's not OK to inquire about the solutions you find to your programming problems.

What I would do if this had been my own answer to my own question, is to post the first paragraph as an answer, and ask for clarification as a comment (or a separate question entirely). I can't do this with other people's posts, though, because mods can't convert answers to comments on themselves since it means deleting the answers in the first place.

Alternatively, if I feel that enough people could benefit from it as a separate question, I can find a way to express it generally, and go ahead and post a brand new question, linking to the answer for context if necessary.

But how should we deal with the existing answers, as moderators and as community members?

share|improve this question
    
no matter, self-answer or not one can't go wrong applying Exit strategies for “chameleon questions” when question goes like that: "I call them "chameleon questions" because they change every time you submit or edit an answer..." – gnat May 17 '12 at 12:12
up vote 12 down vote accepted

If the answer does in fact solve the problem as stated in the original post, don't remove it. The closing question can be edited, something like this:

Before:

After fiddling with my code for a bit, I found that changing the Foo() calls to Bar() calls solved the problem.

Can someone explain to me why Foo() didn't work to begin with?

After:

I'm not sure why this worked, but after fiddling with my code for a bit, I found that changing the Foo() calls to Bar() calls solved the problem.

Then, post a comment to the effect of, "If you have a new question, please use the Ask Question link. Don't post questions in answers."

Mark the flag either way, I personally think it's not helpful if the post does in fact contain an answer.

share|improve this answer
4  
If it's the flag that prompted me to perform the edit, I'll probably mark it as helpful. – BoltClock's a Unicorn Dec 23 '11 at 10:13
1  
Up to you, probably a good idea to mark it "helpful". I only say it isn't because "Not an answer" should be reserved for posts that don't answer the question, not answers that happen to contain an additional question. Most people who would think to flag the post should also have the capacity to edit the post and/or explain to OP why not to tack on additional questions. – Wesley Murch Dec 23 '11 at 10:15
    
Ah yes, that's true. – BoltClock's a Unicorn Dec 23 '11 at 10:16

Just putting this out there:

  1. Leave the answer portion of the answer intact
  2. Create a new question with the question portion of the answer, linking to the original question, perhaps explaining this has been done on behalf of the OP
  3. Add a comment on the answer with a link to the new question

What do people think about this as an option?

share|improve this answer
    
I find this a particularly complex solution. – Kris Dec 23 '11 at 10:02
3  
Closing with another question? Flagged as "not an answer". – Wesley Murch Dec 23 '11 at 10:02
1  
@Kris: I wouldn't mind doing this for my own answers (see the "ninja" edit I made). – BoltClock's a Unicorn Dec 23 '11 at 10:03
    
Seriously though, posting new questions on behalf of other people is not gonna fly. – Wesley Murch Dec 23 '11 at 10:03
    
@Madmartigan: Agree, unless I can express it generally enough that it doesn't matter who asks it. (More likely than not, I can't.) – BoltClock's a Unicorn Dec 23 '11 at 10:04
    
@Madmartigan - Closing? Where did I suggest closing anything? Or flagging? – Oded Dec 23 '11 at 10:11
    
I meant in your "closing" statement, i.e. your last paragraph. It was just a joke :) – Wesley Murch Dec 23 '11 at 10:11
    
@Madmartigan - fair enough... I was wondering if I should do that ;) – Oded Dec 23 '11 at 10:25

The answer used as example seems more an edit for the question, than an answer.
To be an answer, it should explain why replacing the function call with another one solved the problem; as it is, it doesn't help future readers, who could understand that Bar() should always be called instead of Foo(). As it, the answer seems more a "try and see what happens" solution.

I would leave the part about replacing the function call, if nobody else can give an explanation of why replacing the function call worked, or can give another solution for the problem reported by the OP.
Maybe the answer can be split between an answer, and a comment for that answer (the part about wondering why it worked).

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .