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

Beginning to ask a question on Stack Overflow actually helps me debug my problem myself, especially while trying to formulate a coherent and detailed enough question body in order to get decent answers.

Is this common?

share|improve this question
Since this question is linked to a post from Jeff Atwood, I guess you'll get soon a gold badge :-) – Luc M Mar 14 '12 at 16:32
@LucM Thats true! Before reading Jeff Atwood's post, I didn't know there is a meta stackoverflow ;-) – Yeameen Mar 15 '12 at 4:48
up vote 23 down vote accepted

This technique is known as Rubber Duck Debugging -

The process is to meticulously explain code to an inanimate object, such as a rubber duck. It is expected that when the programmer comes across a piece of code that is incorrect, she will realize this.

share|improve this answer
Thanks for putting a name to it! Although I prefer doing this on stackoverflow, because if I haven't found the problem by the end of my post, I can just hit "Post your question" and expect / receive answers. And talking to a rubber duck seems ... whacky :) – Marcel Oct 27 '10 at 12:46
It's from a book titled "The Pragmatic Programmer" @ – user151803 Oct 27 '10 at 12:49
Where I work we call it the FIP effect. "FIP" is a stuffed boarder collie who is named after a poorly named variable. You could use this to your advantage by still asking the question and then posting and accepting your own answer. – Beth Whitezel Nov 20 '10 at 4:12
'She' meaning the duck, of course... – Andriy M Mar 30 '11 at 14:34

Often times this will happen when I'm preparing to ask a question on SO. My question will be far too specific to my code, so I'll be working out how to generalize it. More often than not, the process of generalizing a problem makes me aware of a mistake or design flaw in my "real" code, and hence solves my problem.

share|improve this answer

You must log in to answer this question.

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