Rubber duck programming is a way to talk through a programming problem. The idea is that by trying to explain your problem and attempted solution, you might uncover the issue holding you back by yourself. The phrase originates from a programmer who would talk to a rubber duck he had on his desk.
If you’re stuck, talking through it is one of the best ways to get by. However, if you work in an open office setting like me, talking to yourself might not be the most politically helpful move. So let’s go over the ways to subtly do Rubber Duck Programming at work. I’ll give some methods for both developers working in teams, and those working solo.
Attempt to write a Stack Overflow question
This is my favorite way of getting through tough nuts if I’m solo. As all programmer’s know, StackOverflow is the source of answers to many of our answers. But sometimes, the answer you need can’t be found, especially if you are talking about more algorithmic questions compared to basic technical ones. Therefore, I attempt to write out exactly what I am trying to get done in a post. I make it a point to to be very understandable, and really simplify things and give visual examples. I want the question to be approachable enough that anyone would get the problem. I don’t do this just so I’m making it easier for any potential answers to come about, but rather because I’m taking the effort to explain it in a simple fashion because I will often figure out the answer myself and never have to post.
Instant message someone or a group
If the problem is more basic, this is the best way to get an answer. If you’re working in a team, send an IM to a coworker who is disposed to solving the kind of issue you’re having. If you’re solo, or the colleague doesn’t know, find someone outside of your organization to talk to! Many of the technologies you work with have support sources with live chat. Even open source software will often have IRC channels, or otherwise provide a support community.
Blurt something out
If you’re working with team, you can blurt something out about how X technology is stupid and start going into the problem you’re having. If you’re in an open office and have nice coworkers, they will think about what you’re asking and attempt to assist you. If you have the luxury of having private offices, similar to the previous suggestion, go to someone who might know the answer and start complaining to them about your problem.
Channel your inner Google Fu spirit
Let’s face it, there’s almost never anything new under the sun. Whatever problem you’re having, its almost guaranteed someone else has had that problem. I can’t count the amount of times some random tiny comment buried in some page lead me to discovery. This last suggestion is a different way of approaching your problem. Here, you want to come up with names and phrases related to what you’re trying to do. Rather than trying to find answers, try to find the name of the problem you’re having.
Honestly, I didn’t know where I should put Google in this list. I think the best way to use Google is to treat it like the bread in a Big Mac. You have bread at the top, in the middle, and at the bottom. You should always be using it to solve a problem, whenever you have a new idea of something to search, try it!