Talk:Rubber duck debugging
![]() | This page was proposed for deletion by 128.163.245.27 (talk · contribs) on 10 March 2009 with the comment: Created spuriously (tinyurl.com/arcyxw), not notable It was contested by 132.205.55.156 (talk · contribs) on March 10, 2009 with the comment: (no reason given) |
![]() | This article is rated C-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||||||||||||||||||||||
|
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)
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)
- 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)
- 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)
The inventory of Rubber Duck Debugging, unmasked!
editReally? 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)
A better way to describe it
editThe 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)
- 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)
- 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)
"Talk to the Bear"
editThere 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 (talk • contribs)
- 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)
Is the image of a rubber duck beside a laptop really needed?
editThat'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 (talk • contribs) 22:38, 28 May 2017 (UTC)
- 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)
- 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)
- 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)
psychological explanation on how this works?
editSorry 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)
Other terms
editShould 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)
Add example dialog
editIt seems an example short dialog is missing. That might make it clearer. Jidanni (talk) 00:24, 29 January 2023 (UTC)
"Cone of answers" listed at Redirects for discussion
editThe redirect Cone of answers has been listed at redirects for discussion to determine whether its use and function meets the redirect guidelines. Readers of this page are welcome to comment on this redirect at Wikipedia:Redirects for discussion/Log/2024 August 26 § Cone of answers until a consensus is reached. 1234qwer1234qwer4 03:07, 26 August 2024 (UTC)