Rubber duck debugging
Code debugging method
- 1 min read
- 3 chapters
Related on Lably
Through Debugging, Natural language and Computer science
Origin and definition
The name is a reference to an anecdote told in The Pragmatic Programmer by Andy Hunt and Dave Thomas. The book described rubber ducking as the method of explaining a problem to another party who does not "need to say a word; the simple act of explaining, step by step, what the code is supposed to do often causes the problem to leap off the screen and announce itself". The term referred to a research assistant, Greg Pugh, who carried around a rubber duck to which he could address such explanations. Variations of the practice use other objects or even pets; teddy bears are especially common.
Sign in to keep reading
2 more chapters are free with a Lably account.
Approach
Programmers often discover solutions while explaining a problem to someone else, even to people with no programming knowledge. Describing the code, and comparing to what it actually does, exposes inconsistencies. Explaining a subject also forces the programmer to look at it from new perspectives and can provide a deeper understanding.
The programmer explaining their solution to an inanimate object (such as a rubber duck) has the advantage of not requiring another human, but also works better than thinking aloud without an audience. This approach has been taught in computer science and software engineering courses.
In popular culture
On 1 April 2018, Stack Overflow launched an April Fools' Day joke called Quack Overflow. A rubber duck avatar appeared in the bottom right corner of the screen, listened to user problems, and pretended to type solutions, only to respond with a simple "quack" sound. It referenced rubber ducking as a powerful method for solving problems.

