Talk:Rubber duck debugging

From Wikipedia, the free encyclopedia
Jump to: navigation, search
WikiProject Software / Computing  (Rated Start-class, Low-importance)
WikiProject icon This article is within the scope of WikiProject Software, a collaborative effort to improve the coverage of software on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
Start-Class article Start  This article has been rated as Start-Class on the project's quality scale.
 Low  This article has been rated as Low-importance on the project's importance scale.
Taskforce icon
This article is supported by WikiProject Computing.
 
WikiProject Psychology (Rated Start-class)
WikiProject icon This article is within the scope of WikiProject Psychology, a collaborative effort to improve the coverage of Psychology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
Start-Class article Start  This article has been rated as Start-Class on the project's quality scale.
 ???  This article has not yet received a rating on the project's importance scale.
 

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 above discussion is preserved as an archive. Please do not modify it. Subsequent comments should be made in a new section.


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

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[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)

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)