Rubber duck debugging: waarom developers tegen een badeend praten (en waarom het werkt)
Vraag een zaal vol developers of ze een badeend op hun bureau hebben en je ziet verrassend veel handen omhooggaan. Het is niet alleen een grap. Het is een debugmethode, en die heeft een naam: rubber duck debugging.
Wat is rubber duck debugging?
Als je code niet werkt en je niet ziet waarom, leg je hem hardop en regel voor regel uit aan een badeend. Wat elke regel zou moeten doen, wat hij echt doet, welke waarde je verwacht. Ergens halverwege hoor je jezelf iets zeggen dat niet klopt. Dat is de bug.
Waar het vandaan komt
De term werd populair door The Pragmatic Programmer van Andrew Hunt en David Thomas (1999). Daarin staat het verhaal van een programmeur die altijd een badeend bij zich had en zijn code debugde door hem aan de eend uit te leggen. Het idee zelf is ouder: je begrijpt iets pas echt als je het kunt uitleggen.
Waarom het werkt
- Je gaat langzamer. Als je code in je hoofd leest, scan je. Als je hem uitlegt, kun je geen regel overslaan.
- Je moet je aannames uitspreken. Bugs zitten meestal precies in datgene waar je zeker van was.
- De eend onderbreekt je niet. Een collega zou er meteen een gok tussendoor gooien. De eend laat je je gedachte afmaken.
- Het scheelt je collega's tijd. De helft van de vragen die je wilde stellen, is al beantwoord voordat je ze stelt.
Zo doe je het
- Zet de eend ergens waar je hem kunt zien. Ja, echt.
- Vertel hem in één zin wat de code hoort te doen.
- Loop de code regel voor regel door en zeg wat elke regel doet.
- Zodra wat je zegt en wat de code doet niet meer overeenkomen, heb je hem gevonden.
- Bedank de eend. Optioneel, maar aanbevolen.
Het werkt voor meer dan code: spreadsheets, een lastige mail, een plan dat net niet helemaal klopt.
Kies je debug-eend
Elke eend werkt, maar met een eend met karakter praat je makkelijker.
Danny Developer is de favoriet van onze eigen developer, Einstein is voor als het probleem groter voelt dan het is, Peter Project voor de projectmanager die de bug ook wil snappen, en Sleepy voor de deploy om 2 uur 's nachts.
3 eenden −10%, 5 of meer −15%. Alles mixen mag; de korting gaat automatisch in je winkelwagen. Bestel je voor €35 of meer, dan krijg je er gratis een Sharky-sleutelhanger bij. Binnen 1–2 dagen verzonden, 14 dagen bedenktijd.
Een badeend is ook een top welkomstcadeau voor een nieuwe developer in het team. In de collectie Beroepen vind je er ook een voor de rest van het kantoor.
Veelgestelde vragen
Werkt rubber duck debugging echt?
Ja. Als je een probleem stap voor stap uitlegt, moet je elke aanname checken, en daar zitten de meeste bugs nu juist. Veel developers vinden de bug al voordat ze klaar zijn met uitleggen.
Moet ik hardop praten?
Hardop werkt het best, maar fluisteren of de uitleg uittypen helpt ook.
Waar komt de naam vandaan?
Uit het boek The Pragmatic Programmer (1999), waarin een programmeur zijn code debugt door hem uit te leggen aan een badeend.
Wat is een leuk cadeau voor een developer?
Een badeend voor op het bureau is een klassieker. Handig, een leuke gespreksopener en elke developer snapt de grap.
Danny Developer
Einstein
Peter Project
Sleepy