This post was written by Tim Froberg, one of our EduSource Apprentices. He attends Cedarville University and chats with his rubber duck regularly.
How many industries can you think of where a rubber duck helps you to do your job well? We won’t count the rubber duck manufacturing industry—much too easy. Are you coming up blank? I don’t blame you. All I could come up with was parenting and one salaried job: programming.
Now I know what you’re thinking: “Aren’t rubber duckies the ones that make bathtime lots of fun? How can they help with programming?” Well I’m glad you asked. Rubber duckies are what programmers use in rubber duck debugging. Essentially, it’s talking to an inanimate object to process the code we write, and can be extremely effective.
Personally, I love the concept of rubber duck debugging and I’m trying to incorporate it more and more into my programming style. By talking to the duckie, (or even just talking to myself) I can force myself to focus better on the code I’m writing and the process I’m using to write it.
I find that if I just read code by looking at it, I only see what I expect to see. But if I read my code out loud, I get contradictory information: I’m not hearing what I think I’m seeing. There have been many times where I’ve asked someone for help, but as I’m explaining my issue, I realize I’ve found the problem just by saying it out loud. While this isn’t a huge issue, it does hurt efficiency: I just pulled someone away from their work to fix a problem that barely even existed, and now they have to spend a lot of time refocusing and remembering what they were doing before I interrupted them.
Fortunately, my duck has very few responsibilities around the office and plenty of free time (I’m not bitter), and can listen away. Rubber duck debugging can save your time, save your coworkers’ time, and improve productivity in the workplace.
Additionally, there’s a certain aspect of humbling oneself that comes with conversing with a rubber duck. Generally, talking to inanimate objects isn’t a sign of sanity (then again, who said programmers were sane to begin with?), and there’s a certain feeling of “what am I doing” that comes with the process. Nonetheless, sometimes the craziest ideas are the best.
Sometimes people are forced to try unorthodox solutions to get results, and I believe that rubber duck debugging is one of those unorthodox solutions. At the same time, there’s also very real humor in talking to a rubber duck to sort out your problems. I’m just starting to really step into the adult world, and having a job to perform well, having rent, etc. is more stressful than having a few tests a month in school. EduSource does a good job emphasizing team culture and keeping things light, but it’s still a job and I need to get things done. We have software we need to deliver and I don’t want to be the one holding that process up, so I feel some stress when I’m in a coding quagmire. But at the same time, I’m talking to a rubber duck, so how bad can things really be?
If you’re not the type of person who learns best from talking out your problems, maybe rubber duck debugging isn’t for you. But if it’s caught your fancy and you think you’d benefit from it, give it a shot. I’ve found that its effectiveness is worth the silliness.
Sometimes people are forced to try unorthodox solutions to get results, and I believe that rubber duck debugging is one of those unorthodox solutions.