{"id":1601,"date":"2019-02-27T00:00:00","date_gmt":"2019-02-26T23:00:00","guid":{"rendered":"https:\/\/demo.sidekick.be\/itenium\/rubber-duck-debugging\/"},"modified":"2025-11-28T13:31:45","modified_gmt":"2025-11-28T12:31:45","slug":"rubber-duck-debugging","status":"publish","type":"post","link":"https:\/\/demo.sidekick.be\/itenium\/blog\/productivity\/rubber-duck-debugging\/","title":{"rendered":"Rubber Duck Debugging"},"content":{"rendered":"<p>Most likely the duck will just sit there and appear to have done exactly nothing. Does it get satisfaction every time it assists someone in finding a solution? We will probably never know.<\/p>\n<h1 id=\"more-frivolous\">More Frivolous<\/h1>\n<p>My family somehow turned Rubber Duck Debugging into \u201cgive Wouter as many ducks as humanly possible\u201d.<\/p>\n<p>The most magnificent duck I\u2019ve received so far:<\/p>\n<figure class=\"imagewrapper\" style=\"max-width: 360px\"><img decoding=\"async\" src=\"https:\/\/itenium-be.github.io\/blog-posts-new\/assets\/blog-images\/rubber-duck-programming-big-duck.jpg\" alt=\"Ducky!!\" title=\"Ping hasn't pushed much code though\" class=\"img-responsive\" \/><figcaption>At the office. The name is <a href=\"https:\/\/en.wikipedia.org\/wiki\/The_Story_about_Ping\">Ping<\/a>, ask her anything!<\/figcaption><\/figure>\n<h2 id=\"rubber-duck-prank\">Rubber Duck Prank<\/h2>\n<p>Warning: This stuff is hilarious.<\/p>\n<figure class=\"youtubemovie\">\n<div class=\"iframewrapper\"><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/uYOmtEcZ1lk\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\"><\/iframe><\/div><figcaption>Not at all relevant to rubber duck debugging but still very funny!<\/figcaption><\/figure>\n<h1 id=\"further-reading\">Further Reading<\/h1>\n<h2 id=\"pragmatic-programmers\">Pragmatic Programmers<\/h2>\n<p>The original idea was to blog about the Pragmatic Programmer Tips. The blog turned out quite differently however. Still, here we are, Rubber Duck Problem Solving, yet another thing I learned from the Pragmatic Programmers.<\/p>\n<p class=\"notice--info\"><strong>Tip 3: Provide Options, Don\u2019t Make Lame Excuses<\/strong><br \/> Before you approach anyone to tell them why something can\u2019t be done, is late, or is broken, stop and listen to yourself. <strong>Talk to the rubber duck<\/strong> on your monitor, or the cat. Does your excuse sound reasonable, or stupid? How\u2019s it going to sound to your boss? &#8211; <em>Andrew Hunt and David Thomas<\/em><\/p>\n<p>One final tip (in this context!) from them pragmatic programmers: \u201c<em>Don\u2019t be afraid to ask, or to admit that you need help.<\/em>\u201d No one knows everything.<\/p>\n<h2 id=\"coding-horror\">Coding Horror<\/h2>\n<blockquote>\n<p>The effort of walking an imaginary someone through your problem, step by step and in some detail, is what will often lead you to your answer. \u2026 Even if you don\u2019t get the answer you wanted, forcing yourself to fully explain your problem will frequently lead to new insights and discoveries. &#8211; <em>Jeff Atwood<\/em> in <a href=\"https:\/\/blog.codinghorror.com\/rubber-duck-problem-solving\/\">CodingHorror &#8211; Rubber Duck Problem Solving<\/a><\/p>\n<\/blockquote>\n<p>StackOverflow also did a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Rubber_duck_debugging\">April Fools\u2019 Day joke<\/a> in 2018 about this. Displaying a duck in the corner which, after some apparent thinking &amp; writing, produced a quack.<\/p>\n<h2 id=\"wikiwikiweb\">WikiWikiWeb<\/h2>\n<p>At WikiwikiWeb they also have a <a href=\"http:\/\/wiki.c2.com\/?RubberDucking\">RubberDucking<\/a> page. They originally called it the <a href=\"http:\/\/wiki.c2.com\/?CardboardProgrammer\">CardboardProgrammer<\/a>:<\/p>\n<blockquote>\n<p>You\u2019ve just spent the whole day trying to solve a problem, a design problem, a bug, etc. You know the solution is simple but you just can\u2019t see it.<\/p>\n<p>A colleague walks past and notices your anguish: \u201cWhat\u2019s up?\u201d. \u201cOh, I\u2019m \u2026\u201d. You explain the problem and what you have done so far. However you suddenly discover the solution before you have finished speaking! So far your colleague has been as useful as a cardboard cutout.<\/p>\n<\/blockquote>\n<p>Other, similar techniques:<\/p>\n<ul>\n<li><a href=\"http:\/\/wiki.c2.com\/?ReflectiveArticulation\">ReflectiveArticulation<\/a><\/li>\n<li><a href=\"http:\/\/wiki.c2.com\/?ThinkingOutLoud\">ThinkingOutLoud<\/a><\/li>\n<li><a href=\"http:\/\/wiki.c2.com\/?AskTheCode\">AskTheCode<\/a> aka <a href=\"http:\/\/wiki.c2.com\/?UseTheSourceLuke\">UseTheSourceLuke<\/a><\/li>\n<\/ul>\n<p>And to finish this post, a business idea from the RubberDucking wiki page:<\/p>\n<blockquote>\n<p>You can even pair program with a rubber duck.<br \/> It would be perfect if you added a little voice chip that asked, \u201c<em>Did you write the test?<\/em>\u201d<\/p>\n<\/blockquote>\n<h1>Extras<\/h1>\n<p><b>Other interesting reads<\/b><\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/atleastimtrying\/rubber_duck\" class=\"github\"><img decoding=\"async\" src=\"https:\/\/img.shields.io\/github\/stars\/atleastimtrying\/rubber_duck.svg?style=social&#038;label=Star\" \/><\/a><a href=\"https:\/\/github.com\/atleastimtrying\/rubber_duck\">atleastimtrying\/rubber_duck<\/a>: A tool for one person pairing.<\/li>\n<li><a href=\"https:\/\/rubberduckdebugging.com\">Rubber Duck Debugging.com<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<h1 class=\"hide-from-excerpt\" id=\"talk-to-the-duck\">Talk to the Duck<\/h1>\n<p>When confronted with a problem, don\u2019t ask the person next to you for help right away, he\u2019s probably doing something important as well!<\/p>\n<p>Instead, first tell the duck about it &#8211; out loud. If you don\u2019t get to a solution, start explaining your problem in more and more detail until it hits you. If the mere explanation led to a solution, you avoid unwillingly turning your colleague into a <a href=\"http:\/\/wiki.c2.com\/?CardboardProgrammer\">CardboardProgrammer<\/a>.<\/p>\n","protected":false},"author":1,"featured_media":2085,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[19],"tags":[28],"class_list":["post-1601","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-productivity","tag-debugging"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Rubber Duck Debugging - Itenium<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rubber Duck Debugging - Itenium\" \/>\n<meta property=\"og:description\" content=\"Talk to the DuckWhen confronted with a problem, don\u2019t ask the person next to you for help right away, he\u2019s probably doing something important as well!Instead, first tell the duck about it - out loud. If you don\u2019t get to a solution, start explaining your problem in more and more detail until it hits you. If the mere explanation led to a solution, you avoid unwillingly turning your colleague into a CardboardProgrammer.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/demo.sidekick.be\/itenium\/blog\/productivity\/rubber-duck-debugging\/\" \/>\n<meta property=\"og:site_name\" content=\"Itenium\" \/>\n<meta property=\"article:published_time\" content=\"2019-02-26T23:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-28T12:31:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/rubber-duck-programming-duck-slippers.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"360\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Usdevelop\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Usdevelop\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/productivity\/rubber-duck-debugging\/\",\"url\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/productivity\/rubber-duck-debugging\/\",\"name\":\"Rubber Duck Debugging - Itenium\",\"isPartOf\":{\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/productivity\/rubber-duck-debugging\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/productivity\/rubber-duck-debugging\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/rubber-duck-programming-duck-slippers.jpg\",\"datePublished\":\"2019-02-26T23:00:00+00:00\",\"dateModified\":\"2025-11-28T12:31:45+00:00\",\"author\":{\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/#\/schema\/person\/6ab401ce01e858184ee4a8667fe0f022\"},\"breadcrumb\":{\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/productivity\/rubber-duck-debugging\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/demo.sidekick.be\/itenium\/blog\/productivity\/rubber-duck-debugging\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/productivity\/rubber-duck-debugging\/#primaryimage\",\"url\":\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/rubber-duck-programming-duck-slippers.jpg\",\"contentUrl\":\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/rubber-duck-programming-duck-slippers.jpg\",\"width\":360,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/productivity\/rubber-duck-debugging\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/demo.sidekick.be\/itenium\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rubber Duck Debugging\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/#website\",\"url\":\"https:\/\/demo.sidekick.be\/itenium\/\",\"name\":\"Itenium\",\"description\":\"We build software. We build careers.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/demo.sidekick.be\/itenium\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/#\/schema\/person\/6ab401ce01e858184ee4a8667fe0f022\",\"name\":\"Usdevelop\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cc8cf9b9e9d5bbe7e8d247907cc9ac8457bbfa2854b52eaddf6529adfe88ceab?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cc8cf9b9e9d5bbe7e8d247907cc9ac8457bbfa2854b52eaddf6529adfe88ceab?s=96&d=mm&r=g\",\"caption\":\"Usdevelop\"},\"sameAs\":[\"https:\/\/demo.sidekick.be\/itenium\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Rubber Duck Debugging - Itenium","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Rubber Duck Debugging - Itenium","og_description":"Talk to the DuckWhen confronted with a problem, don\u2019t ask the person next to you for help right away, he\u2019s probably doing something important as well!Instead, first tell the duck about it - out loud. If you don\u2019t get to a solution, start explaining your problem in more and more detail until it hits you. If the mere explanation led to a solution, you avoid unwillingly turning your colleague into a CardboardProgrammer.","og_url":"https:\/\/demo.sidekick.be\/itenium\/blog\/productivity\/rubber-duck-debugging\/","og_site_name":"Itenium","article_published_time":"2019-02-26T23:00:00+00:00","article_modified_time":"2025-11-28T12:31:45+00:00","og_image":[{"width":360,"height":300,"url":"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/rubber-duck-programming-duck-slippers.jpg","type":"image\/jpeg"}],"author":"Usdevelop","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Usdevelop","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/demo.sidekick.be\/itenium\/blog\/productivity\/rubber-duck-debugging\/","url":"https:\/\/demo.sidekick.be\/itenium\/blog\/productivity\/rubber-duck-debugging\/","name":"Rubber Duck Debugging - Itenium","isPartOf":{"@id":"https:\/\/demo.sidekick.be\/itenium\/#website"},"primaryImageOfPage":{"@id":"https:\/\/demo.sidekick.be\/itenium\/blog\/productivity\/rubber-duck-debugging\/#primaryimage"},"image":{"@id":"https:\/\/demo.sidekick.be\/itenium\/blog\/productivity\/rubber-duck-debugging\/#primaryimage"},"thumbnailUrl":"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/rubber-duck-programming-duck-slippers.jpg","datePublished":"2019-02-26T23:00:00+00:00","dateModified":"2025-11-28T12:31:45+00:00","author":{"@id":"https:\/\/demo.sidekick.be\/itenium\/#\/schema\/person\/6ab401ce01e858184ee4a8667fe0f022"},"breadcrumb":{"@id":"https:\/\/demo.sidekick.be\/itenium\/blog\/productivity\/rubber-duck-debugging\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/demo.sidekick.be\/itenium\/blog\/productivity\/rubber-duck-debugging\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/demo.sidekick.be\/itenium\/blog\/productivity\/rubber-duck-debugging\/#primaryimage","url":"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/rubber-duck-programming-duck-slippers.jpg","contentUrl":"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/rubber-duck-programming-duck-slippers.jpg","width":360,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/demo.sidekick.be\/itenium\/blog\/productivity\/rubber-duck-debugging\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/demo.sidekick.be\/itenium\/"},{"@type":"ListItem","position":2,"name":"Rubber Duck Debugging"}]},{"@type":"WebSite","@id":"https:\/\/demo.sidekick.be\/itenium\/#website","url":"https:\/\/demo.sidekick.be\/itenium\/","name":"Itenium","description":"We build software. We build careers.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/demo.sidekick.be\/itenium\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/demo.sidekick.be\/itenium\/#\/schema\/person\/6ab401ce01e858184ee4a8667fe0f022","name":"Usdevelop","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/demo.sidekick.be\/itenium\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/cc8cf9b9e9d5bbe7e8d247907cc9ac8457bbfa2854b52eaddf6529adfe88ceab?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cc8cf9b9e9d5bbe7e8d247907cc9ac8457bbfa2854b52eaddf6529adfe88ceab?s=96&d=mm&r=g","caption":"Usdevelop"},"sameAs":["https:\/\/demo.sidekick.be\/itenium"]}]}},"_links":{"self":[{"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/posts\/1601","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/comments?post=1601"}],"version-history":[{"count":3,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/posts\/1601\/revisions"}],"predecessor-version":[{"id":2298,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/posts\/1601\/revisions\/2298"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/media\/2085"}],"wp:attachment":[{"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/media?parent=1601"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/categories?post=1601"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/tags?post=1601"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}