Never Question The Rubber Duck
The lesson I learned today at work really snuck up on me. I thought I understood the value of a rubber duck. I thought I knew when I needed one and when I didn’t. A co-worker of mine very kindly and perhaps accidently, showed me that I was mistaken.
If you’re not familiar with the concept of a rubber duck, its a (brilliant - in my opinion) method of solving a problem by explaining it to a listener in a thorough manner. The listener is really only there to let you work out the problem. Their job is so simple in fact, that you could even use a rubber duck, hence the name. I first learned of the idea from one of my favorite books: The Pragmatic Programmer by Andy Hunt and Dave Thomas. To be honest, I’ve never tried using an actual rubber duck (or any other inanimate object for that matter). I feel like I wouldn’t actually explain my problem well enough to a rubber duck. I have used people to serve this purpose, however. Many people. It works because I genuinely try to give my helper enough information that they might be able to solve the problem for me.
Usually, before I get through the entire explanation, BAM! I realize what is wrong. It really is a magical experience. Reading about it is one thing, doing it provides a much more thorough understanding.
Today I was testing a fairly complex feature that a teammate and I had put together. I ran into some trouble but it wasn’t anything I was worried about. I could handle it.
I was making slow but steady progress when a co-worker came over and asked me if I would like a rubber duck. I told him I didn’t need one. The problems I was having were not that big of a deal and I was doing okay. Thanks, but I’m good.
He tactfully continued to ask a few simple questions until I unwittingly gave in to the offered rubber duck session. Within a few short minutes of explaining the problem, I discovered the problem. We both smiled at each other and I offered a different sort of thanks than I did before.
One of the most valuable tools you might have at your disposal while troubleshooting any problem, is a rubber duck. I would have eventually arrived at the solution without help. But I cannot say how long it would have taken. I am sure it would have taken at least twice as long. I am very grateful for his help today, and the broader lesson he provided.
When offered a rubber duck, do not turn it away.