# Rubberducking
The act of [[Debugging]] by speaking a problem out loud, pretending to be talking to another person. It apparently really originates with [[BOOK - The Pragmatic Programmer - Andrew Hunt, David Thomas]].
A useful [[Software Engineering]] technique.
Kind of the corollary of [[ZK - 4a2a - Writing is thinking]] and [[ZK - 4a2b - Writing is different than speaking]], so the two complement each other well.
See also: [[ZK - 4a2c - Rubberduck with yourself through writing and speaking]].
## Links
This goes into why explaining to a duck helps clarify the problem, as the duck won't have the contextual understanding that you have. This reframes the problem and might expose the solution. This can be linked to [[Jean Piaget]]'s theory of [Cognitive Development](https://en.wikipedia.org/wiki/Piaget's_theory_of_cognitive_development).
- [The Psychology Underlying the Power of Rubber Duck Debugging | Press Up](https://web.archive.org/web/20140709011039/http://pressupinc.com/blog/2014/06/psychology-underlying-power-rubber-duck-debugging/)