What is rubber duck debugging?
It’s a problem we all face. You’re working on a task and you hit a hurdle. You’ve spent hours poring over the Internet and posting on chat groups trying to find a solution.
You feel like you’re hitting your head against a metaphorical brick wall. You’re ready to throw your laptop out of the window. Just then, your partner asks what the problem is. In the process of explaining it, you hit on the answer.
In software development circles, this process of thinking aloud about a problem is often called rubber duck debugging.
Rubber ducks and software development may, on the surface, have very little in common. But, in this blog, we’ll be looking at how ‘rubber duck’ debugging helps A2Z Cloud’s software developers solve their toughest client problems.
Getting your ducks in a row
Rubber duck debugging was an idea first introduced in a book called The Pragmatic Programmer, by Andrew Hunt and David Thomas.
Essentially, a developer will use rubber duck debugging if he or she hits a specific coding or programming challenge on a client project. The idea is that the developer will explain the coding issue, line by line, to the rubber duck.
The act of explaining the problem will, in many cases, help the developer to see the bigger picture. He or she can work through the issue, assess the different options and find a solution.
So, the task could be:
- Automate a client’s emails to sales prospects who have completed a certain activity (added an item to their cart, for example).
- Talk through the coding process you’ve used.
- Explain where the issues lie.
This process forces you to organise your thoughts in a very logical way – in a similar way to a computer.
“Rubber duck debugging just enables you to look at an issue from another angle”, explains Jake Holland, Software Developer from A2Z Cloud.
“Software development can be solitary work at times. When you’re concentrating on a problem for too long, you can start to go down rabbit holes. Rubber duck debugging prompts a shift in your way of thinking that changes your perspective and helps you see things differently.”
“When a new developer joins the team, I often suggest that they try rubber duck debugging when they get stuck on a particular issue to help them find a solution.”
Removing roadblocks to success
Jake explains that there are lots of different forms of rubber duck debugging.
“If I’ve been working on a coding challenge for more than an hour, then I know it’s time to try a different approach”, he says. “I often share challenges on the internal group chat and the act of writing out the problem can also help identify where the issues lie.”
Rubber duck debugging goes well beyond brainstorming within the team at A2Z Cloud. As Jake points outs, rubber duck debugging is right at the heart of their work with clients.
“Often we’re brought in to solve a tricky problem that’s holding back a client’s business or preventing them from scaling up”, says Jake.
“Our job is to look at our client’s business, ask them to explain the problem and help them streamline their processes. So, we’re even doing rubber duck debugging when we’re working directly with clients”, he adds.
The eureka moment
So, you may ask, why does it need to be a rubber duck? Well, it doesn’t. The duck is just an inanimate object for you to explain your thought processes to – it could equally be a fluffy toy, cat or even a person.
If you’re talking the problem through with a friend or a family member, he or she could even ask you questions. This person doesn’t need to have any knowledge of programming or software development.
They’re just acting as a sounding board to push you towards that ‘eureka’ moment when you hit upon the right solution.
So, if you hear a developer talking about rubber ducks, he or she probably hasn’t taken leave of their senses. They may well just have found their ‘aha’ moment on a particularly tough client challenge.
A2Z Cloud’s resident ducks
Share this article
Join the A2Z Angle
Looking to stay ahead of the curve in the fast-paced world of tech? Look no further than A2Z Cloud's monthly newsletter. Join us today for exclusive access to deep dives on all the techie subjects you crave, with must read content from our top partners, plus exciting event announcements and inspiring customer stories.
It's all delivered straight to your inbox, once a month only, so you never miss a beat. Sign up below.