Solve Your Problems With the Rubber Duck Trick
Have you ever started asking someone to help you solve a problem, and halfway through it, you figured it out yourself? This is wonderful. It’s even better when you learn to do it on purpose – and when you learn to do it without wasting another person’s time.
In the programming world, this is called “rubber duck debugging.” This is when you are faced with a problem and instead of rushing to ask for help right away, you think about your problem. Since coders are weirdos, they have a tradition of asking the rubber duck.
In one version of the rubber duck story, there is a boss who orders his subordinates to talk to a stuffed duck . He makes them ask the duck questions he is tired of answering. And one engineer finds that by simply explaining their question to the duck, they find the answer. All they had to do was put their problem into words.
You will learn to better solve your problems if you learn to ask questions . Coder Jeff Atwood has built this concept into his Stack Overflow and Stack Exchange sites. He wanted to make sure people ask their questions in a way that others can actually answer, without a bunch of additional questions. Therefore, he wrote several requirements for a good question . Here is an adapted version to help you solve your problem. Each step can be the last. But if you’re still stuck, move on to the next one.
1. Formulate your question in words
Sometimes you just need to slow down your thoughts and you will find the answer. You do this by phrasing the problem by saying it out loud or writing it down.
You cannot deceive this – if you are trying to silently “speak in your head,” you will have to waste energy focusing on your own thoughts. Enter it in your notes app, or talk to your voice memos, or just pretend to be on the phone if that makes you feel less stupid.
2. Add details
Spare. What were you doing before the problem occurred? Move forward. What will you do first if your problem cannot be resolved?
Look at every word of your question and see if you can define a layman. (Imagine explaining a problem to your parents or your children.)
Add context. For technical questions, you should always indicate which browser, device and OS version you are using, as well as which plugins, extensions, applications, or peripherals may interfere. Extend this to any question. If you have trouble managing time, list all of your time commitments. If you have a money problem, please include your income, expenses, debts, payment delays, etc.
Record all of these answers in your original question. Sort them in some coherent order.
3. State your goal.
Sometimes you explained what was wrong, but you didn’t explain what was right. Explain what you hoped did not happen and why the current situation is undesirable.
Consider what solution you want and what you will do with it when you have it. Explain which solutions do not work for you. (The tech support forums are inundated with inappropriate “solutions” rejected by the requester.)
4. Share your research
You need to do some research, of course. You are not the kind of nerd who asks a question instead of searching on Google. List the places you looked for, the resources you went to, the information they had and didn’t have.
If you have already asked someone for help, explain what they have achieved and what they have not achieved, or why they did not understand your problem.
5. Ask your question
You have done a lot of work by now, and if you haven’t answered your own question, you are disappointed. The good news is that you wrote down a very good version of your question and can now ask a colleague, boss, advisor, or forum.
And if the problem is solved? Take your review and make it a blog post, Reddit post, or tweet with a screenshot of your Notes app. May everyone bow to your wisdom. You are a thought leader .