Not All Rubber Ducks are Created Equal

Programmers often refer to themselves as "rubber ducks" whenever a colleague asks them for a hand and then proceed to solve the problem in the process of explaining it. One would think that the psychological benefit that is observed in this exercise would, in fact, be manifested in any being—sentient or not—so long as the problem-solver was able to convince themselves that it was a good listener. Well, I don't see a lot of rubber ducks sitting on desks in my office, and this experience today helped me see why.

It was one of those pesky problems where I felt that my thinking was perfectly clear and the code was just broken. It was a simple scenario. One thing happens which causes another thing—yet, the other thing never happened. I was pairing with an apprentice at the time, and I meticulously shared this begrudging conundrum with him, making my frustration with the nonsense apparent. 30 minutes passed and no progress was made. Fine. It was time to bring in the craftsman to bail me out.

The call was started and my screen was shared. I proceeded to spend about 3 minutes describing the brokenness to him with eager expectation of his genius mind exposing the secrets of the universe to me. And then the worst thing happened to me that could ever happen in that scenario. I realized the problem. Not only that, I realized the pronounced simplicity and obviousness of it. My colleague had not said a word yet, and with an obligatory chuckle and, "quack," they left to resume other duties. And there I was. "Duh."

So, the lesson for me was this: Not all rubber ducks are created equal. Sometimes you need the smartest person in the room to hear you out. It causes you to, "think up" to their level. And what do you know? You get smarter yourself.