DEV Community

loading...
Cover image for Rubber Duck Debugging in 100 Seconds

Rubber Duck Debugging in 100 Seconds

Richard Wynn
πŸ‘‹ Hi, I'm Richard Wynn, a Senior Full-stack Software Engineer with a joy of Coding, Writing and Sharing knowledge
・2 min read

πŸ¦† What is Rubber Duck Debugging?

Rubber Duck Debugging refers to debugging your code with the aid of a rubber duck. You describe and explain each step of your code, in detail, to the duck, until you notice the problem that's been causing the unexpected behavior.
Rubber Duck Debugging 1

πŸ‘€ Origination

The name Rubber Duck Debugging is a reference to a story in the book The Pragmatic Programmer in which a programmer would carry around a rubber duck and debug their code by forcing themselves to explain it, line-by-line, to the duck.

Rubber Duck Debugging 2

πŸ“‹ How to apply

The rubber duck debugging method is as follows:

  1. Beg, borrow, steal, buy, fabricate or otherwise obtain a rubber duck (bathtub variety).
  2. Place rubber duck on desk and inform it you are just going to go over some code with it, if that’s all right.
  3. Explain to the duck what your code is supposed to do, and then go into detail and explain your code line by line.
  4. At some point you will tell the duck what you are doing next and then realise that that is not in fact what you are actually doing. The duck will sit there serenely, happy in the knowledge that it has helped you on your way.

(Extracted from rubberduckdebugging.com)

Rubber Duck Debugging 3

⭐ Why Rubber Duck Debugging?

  • Help you develop the skill of describing things in simple, clear and concise language.
  • Engaging in metacognition: Assessing your understanding of a problem, assessing the strategies you've tried and generating new approaches.
  • Force you to make serious attempts at solving the issue yourself before asking for help.

πŸ‘΄ Quotes

  • "Insights are often found by simply describing the problem aloud." (Duck, Quack Overflow)

πŸ“ Side Notes

  • Don't have a rubber duck? Any inanimate object will work equally well.
  • If you're in a quiet office and don't feel comfortable talking to rubber toys, go out and talk to yourself or writing down your problem can also help.

Rubber Duck Debugging 4

πŸ“° Others

Be interested? πŸ˜ƒ You can visit the links below read my other posts in your next 400 seconds, too 😊

πŸ“± Keep in Touch

If you like this article, don't forget to follow and stay in touch with my latest ones in the future by following me via:

Discussion (1)

Collapse
siddharthshyniben profile image
Siddharth • Edited

Don't have a rubber duck? Any inanimate object will work equally well.

Even computers work well. I find myself visting stackoverflow to write a question, and as soon as I finish the question, the answer pops into my mind