What do rubber duckies have to do with web development? At first glance, not much. However, the rubber ducky seems to have migrated from its natural habitat, children’s bathtubs, to tech offices around the world. Upon closer inspection, it turns out that rubber duckies have been associated with programming since its infancy.
The rubber ducky began as an allusion to a story depicted in Andrew Hunt and David Thomas’ influential 1999 software engineering guide, The Pragmatic Programmer. In the anecdote, an enthusiastic programmer spends his days writing lines and lines of code, until he gets stumped. Frustrated, he turns to his coworker for help. As he starts explaining the background information, he pauses for a minute, and says “never mind, I figured it out”.
The next day, as he works on an entirely different issue, he is stumped once again. he decides to enlist his coworker’s help once more. This time, his coworker interrupts him before he has a chance to speak, and says “ I have a solution for your problem” and produces a rubber duck on the table. “Explain your problem to the duck”, he continues. Brushing aside the inherent absurdity, the programmer begins explaining his problem to the duck, and as before, figures out the solution.
The rubber duck story is more than a common anecdote that programmers tell each other. This parable has applications in every-day life. Most problems we face tend to be in areas that we take for granted. It helps to spell out the puzzles we face to someone (or something) that has no experience in the field. Doing so might produce an ‘Eureka’ moment.
Programmers have discovered that keeping a rubber ducky around as a stand-in for an audience helps the debugging process. Programmers typically force themselves to explain their code line-by-line to the duck until they discover their own errors.
The rubber ducky technique is actually backed by science. Psychologists have observed that learning by teaching can lead to impressive results. This is because of the vastly different way that humans and computers think. While computers are incredibly precise, humans are more likely to forgive sloppy code.
Humans typically think faster than we speak. Verbally laying out the problem line by line forces us to slow down our thoughts. Furthermore, assuming that the other party (in this case, the duck) doesn’t understand the subject matter pushes the speaker to explain in detail. Fresh thinking allows us to uncover the logical lapses in our code.
Since the rubber ducky has made his nest at Concept Studio, we’ve been turning out cleaner and more beautiful websites for satisfied customers.