🐤

Static Testing Website

Ronnie Harshbarger

JMU CS Student

Lorem ipsum dolor sit, amet consectetur adipisicing elit. Ab eaque deserunt rem. Vitae provident, impedit, alias optio architecto facere beatae voluptatem, eaque placeat earum minima? Explicabo facere deserunt ipsam dolorem.

Objective: Lorem ipsum dolor sit, amet consectetur adipisicing elit. Nihil perferendis quaerat necessitatibus ipsa minus dignissimos, quam molestiae cumque minima quod. Ab quisquam modi tempore delectus voluptas omnis rem sit. Doloremque.

Projects

Recent Work

  1. Find your duck - Get a rubber duck, or any inanimate object that can serve as your patient listener
  2. Explain the problem - Tell the duck what your code is supposed to do
  3. Go through your code - Explain your code line-by-line, describing what each part does
  4. Identify the issue - Often during this explanation, you'll spot the problem or gain new insights
  5. Test your solution - Apply the fix and verify it works

Benefits

🧠 Clarifies Thinking

Verbalizing your thoughts helps organize and clarify your mental model of the problem.

🔬 Reveals Assumptions

Speaking out loud forces you to examine assumptions you might otherwise take for granted.

⏱️ Saves Time

Often faster than lengthy debugging sessions or waiting for colleague availability.

🧘 Improves Focus

The act of explanation requires focus and attention to detail.

When to Use It

  • When you're stuck on a bug and can't see the issue
  • Before asking a colleague for help (you might solve it yourself!)
  • When reviewing complex code logic
  • During design phase to think through algorithms
  • When you feel like you're missing something obvious

Beyond the Duck

While a rubber duck is traditional, you can use any object: a houseplant, a stuffed animal, or even a printed photo. Some developers prefer explaining to a pet or even recording themselves. The key is having a patient, non-judgmental "listener" that won't interrupt your thought process.

References and Further Reading

The Pragmatic Programmer: From Journeyman to Master
Hunt, A., & Thomas, D. (1999). Addison-Wesley Professional.
The book that popularized the term "rubber duck debugging" in software development.
Available from Pragmatic Programmers
Rubber Duck Debugging
Wikipedia Contributors. (2024). Wikipedia, The Free Encyclopedia.
Comprehensive overview of the technique and its variations.
Read on Wikipedia
"Debugging: The 9 Rules"
Agans, D. J. (2002). AMACOM Books.
Systematic approach to debugging that includes explanation techniques.
Official Website
"Code Complete: A Practical Handbook of Software Construction"
McConnell, S. (2004). Microsoft Press, 2nd Edition.
Discusses debugging strategies including talking through problems.
Microsoft Press Store