Talk:Rubber duck debugging

Latest comment: 1 year ago by Jidanni in topic Add example dialog

Proposed deletion edit

The following discussion is closed. Please do not modify it. Subsequent comments should be made in a new section. A summary of the conclusions reached follows.
The Proposed Deletion was declined

Why is this marked as not being notable? It is a very popular method in various forms for finding problems with code. Bostonvaulter (talk) 21:33, 10 March 2009 (UTC)Reply

This is one of the most important methods for software engineering principals. It goes under many names and any person who has been dealing with software development know about this in some way or another. Perhaps redirect other pages like "code blindness" etc to this page. Given this argument I strongly oppose the deletion of this page. Mazenharake (talk) 07:41, 11 March 2009 (UTC)Reply

It is really only one of a number of related terms for the same basic thing - "cardboard programmer" and "cardboard cutout dog code-reviews" have been around for decades as jokes and actual, for-real processes. It's certainly notable. A straw poll of a dozen programmers from wildly different backgrounds where I work showed that almost all had heard of the term (or some small variation on that theme) and more than half had actually used the technique of explaining code out-loud to inanimate objects (and in one case, the cleaning lady!)...it does actually work, and it's useful. When it comes to debugging, we programmers will take whatever we can get! SteveBaker (talk) 13:26, 9 February 2011 (UTC)Reply
The proposed deletion was removed almost a year ago: [1] It was up for about 90 minutes. No need to continue discussing it. TJRC (talk) 19:32, 9 February 2011 (UTC)Reply
The discussion above is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.

The inventory of Rubber Duck Debugging, unmasked! edit

Really? An apocryphal story of an unnamed expert? I know who the expert programmer was! It was... wait for it... Ernie! https://en.wikipedia.org/wiki/Ernie_(Sesame_Street)

In the show(s), Ernie regularly explains things to his rubber ducky, like why Bert organizes his paper clips or why you should be extra careful when clipping your nails.

I leave it as an exercise to the reader to find documentation of this sufficient to include it in the article.

Re:

"The name is a reference to an apocryphal story in which an unnamed expert programmer would keep a rubber duck by his desk at all times, and debug his code by forcing himself to explain it, line-by-line, to the duck." — Preceding unsigned comment added by 70.79.74.100 (talk) 05:21, 13 May 2012 (UTC)Reply

A better way to describe it edit

The lede for this article seems to imply that the inanimacy is part of the magic. This is not the origin of the idea, the origin is when you ask a coworker for help, they sit next to you, and while you are explaining the set up, you realize what your error is. You say "thank you" to them, and they say "I didn't do anything". The substitution of an inanimate item is to save the trouble (and a bit of the "boy do i feel stupid" feeling). We used the term while coding professionally in the 1970's in a different way, and we called it "teddy bear" rather than rubber duck. We used that term to describe the 2nd human being: "could you come be my teddy bear for a minute" with the full expectation that the answer would probably emerge during the initial phase of the conversation, and if it didn't, the other person would be prepped to actually help. I don't add this to the article because you'd call it original research... of course, original research is how everything of value is discovered, so I guess you'll have to wait for me to publish. The team I worked on at that time came out of MIT's Draper Labs doing factory automation, if somebody is inspired to actually research this origin. 96.224.32.111 (talk) 14:41, 20 August 2012 (UTC)Reply

It's pretty clear that this idea has come about independently in at least half a dozen places. The idea that when you review some code with someone, they typically glaze over and the value of it comes not from them making comments but from you slowing down and explaining something and thereby seeing the problem in a new light. That leads many of us to think "Why did I need a real person to explain this to?"...and from there we get the idea that talking to a rubber duck, a teddy bear, a cardboard-cutout, a dog or (in one memorable case) a blow-up sex doll. The wide variety of choices of inanimate object strongly suggests an series of independent inventions rather than one key idea that spread. But this is mostly programer lore - and as such doesn't get notable enough to show up in WP:RS. SteveBaker (talk) 14:58, 20 August 2012 (UTC)Reply
I don't agree with you that the idea necessarily came about independently, the world of computer programmers was a lot smaller back in the day, it would be easy for an idea to flourish from a single origin. But in any case, I'm not arguing that my information be included, I just put it in as a point of interest. I'm arguing that this article is incorrect to suggest that explaining something to an inanimate object is somehow different than explaining to a person. And I point out that when I first heard it it was actually used to describe people, not objects, "you could have figured that out by talking to your teddy bear". The article is misleading currently. 71.190.75.107 (talk) 21:39, 20 August 2012 (UTC)Reply

"Talk to the Bear" edit

There was a very short third paragraph in revisions prior to mine of 17:70, 7 September 2014 that began This concept is also known as "Talk to the Bear" and went on to cite p 123 of The Practice of Programming. The phrase "Talk to the Bear" does not occur in Kernighan & Pike, and of the top 10 Google hits for the phrase, the first is this Wikipedia entry, and only one of the others pertains to debugging. (Most of the others are advice for encounters with actual bears.) I kept the citation, but now discuss it as "teddy bear debugging." A locution which, in addition to actually being widely used, better describes the anecdote on p 123 of The Practice of Programming. — Preceding unsigned comment added by Xela (talkcontribs)

Maybe we should get rid of the "Similar terms" section entirely? It's there just begging for listcreep and I don't see much value being added to the article. -- intgr [talk] 19:23, 8 September 2014 (UTC)Reply

Is the image of a rubber duck beside a laptop really needed? edit

That's kind of taking it literally. Really the meaning of "Rubber Duck Debugging" has nothing to do with rubber ducks in practise. I'd doubt that most programmers using it keep an actual duck on their desk? It almost seems as if it was added as a joke. — Preceding unsigned comment added by Ozzyofpi (talkcontribs) 22:38, 28 May 2017 (UTC)Reply

I think it's a reasonable enough illustration. The origin story of the term involves a literal rubber duck, and it's not entirely uncommon for a toy (not necessarily a duck) to be used for this purpose. ApLundell (talk) 15:20, 31 May 2017 (UTC)Reply
Even if the origin involved an actual rubber duck, having a photo of one does nothing to aid in any sort of understanding, and it is in fact a bit misleading. As such, I've removed it. –Deacon Vorbis (carbon • videos) 17:49, 17 April 2018 (UTC)Reply
The rubber duck + laptop image captures the absurdness of this whole concept. I mean it sounds pretty stupid to think that talking to a rubber duck solves anything -- yet it does. And this is why there's a rubber duck: to create an image that seems utterly stupid, so the reader will think "Whaaaat?", and start thinking about it. The image is indeed sarcastic, but this is exactly why it is helpful for the reader. Maybe a clarification could be added to the caption, e.g. "Rarely used with actual rubber ducks." And another thing: the image helps non-native English speakers as well. So I'm in favor of keeping it. I.gabesz (talk) 19:10, 23 January 2020 (UTC)Reply

psychological explanation on how this works? edit

Sorry if I missed it in the article, but I think it would be helpful to detail the psychology behind on how this works. --Ayjazz (talk) 21:06, 26 April 2022 (UTC)Reply

Other terms edit

Should the article mention further terms for it, eg "debugging by talking to the wall", or any of the other objects mentioned by Steve above?

ChatGPT (!) also offers "debugging out loud" and "explaining it to the computer" as common synonyms. Jheald (talk) 21:17, 8 December 2022 (UTC)Reply

Add example dialog edit

It seems an example short dialog is missing. That might make it clearer. Jidanni (talk) 00:24, 29 January 2023 (UTC)Reply