What Does the Future Hold for Our Rubber Duck?

Danilo P. De Luca
4 min readJun 5, 2023

In recent months, we have witnessed significant advancements in AI-powered tools that enhance efficiency in various tasks, including finding answers, translating text, and even generating summaries of news articles, blog posts, or similar content. These tools have become invaluable in saving time and effort by eliminating the need to read through lengthy pieces in their entirety.

While the future role of AI in our work remains somewhat uncertain, it has undeniably made its presence felt in software development. As developers, we are the creators of tools and apps that utilize AI mechanisms behind the scenes.

We already have access to highly advanced tools in our domain, such as ChatGPT, Github Copilot, and Tabnine, which significantly assist in source code creation and help to boost our Coding Flow. However, since I began utilizing these tools to enhance my pull requests in projects, I noticed that my Rubber Duckies weren’t too happy about it.

But what exactly is a Rubber Duck?

If you’re not familiar with the term, I recommend reading “The Pragmatic Programmer,” a book that introduces several important concepts for becoming a proficient programmer.

One of them is the practice of Rubber Duck Debugging. This concept suggests that every developer should have a Rubber Duck by their side and engage in the process of debugging and reviewing their code by asking questions and explaining each line to the duck.

It works similarly to pair programming, except there is no human partner involved, where in many cases it’s challenging to find someone available to assist it. While it may not be a perfect substitute, using a rubber duck enables us to anticipate and prevent many code-related issues that would otherwise require the input of another person at a later stage (code review), and probably waiting for it would break your coding flow.

Thinking about new terms and areas that have been created in the last years in a software development area, I would venture to say that the Rubber Duck Debugging method is the first DevX tool designed to boost the Coding Flow. Taking a look at the three dimensions of DevEx, it is in the middle of it

These 3 dimensions consist in:

  • Feedback Loops: as it happens in Agile methodology, feedback helps us to have fast interactions over what we did in a short time, and then improve it to a better result over and over.
  • Flow State: Have you ever found yourself in a coding rhythm where you had your headphones on and didn’t even notice the songs change or time pass? So this is the flow state, an immersive, focused, and enjoyable mental state that amplifies your productivity.
  • Cognitive Load: It’s the mental processing when we need to think about how to transform the requirements of new features in code. In this process, after writing a bunch of code, verbalizing what the code does helps identify new paths to explore, leading to fresh insights about the work done and areas for improvement.

So, what does AI have to do with the future of our Rubber Duckies?

As I mentioned, when I started using AI tools to anticipate code improvements and simplify the creation of boilerplate code — those repetitive pieces that nobody enjoys writing — I found myself having fewer interactions with my rubber duckies. It’s not because I forgot about them, but rather because AI-powered tools offer real-time insights for enhancements, making the use of Rubber Duck Debugging less frequent.

This leads me to question how AI might impact our ability to stimulate cognitive thinking through problem-solving? Or even to reach the flow state for more time? Maybe who knows to improve the feedback loop? While the use of a Rubber Duck may seem amusing initially, its representation and utilization have been used for years to help developers to improve their cognitive thinking, flow state, and feedback loops, but in a very meticulous way.

As a fellow developer, have you used any AI tool to help solve a problem? If so, have you noticed any improvement in any of these three DevX dimensions? Which one?

If you haven’t, I encourage you to give it a try! Install one of these AI-powered tools and feel this experience!

--

--

Danilo P. De Luca

One craftsman in the mass of software development. Programming and architecting as a craft.