Rubber Duck Debugging

Unsere heimlichen Helferinnen

Entwicklung
Von Sebastian Müller
Rubber Duck Debugging

Habt ihr euch schon mal gefragt, was die gelben Quietscheenten auf den Schreibtischen der Developer machen? Unscheinbar verweilen sie neben dem Computer und blicken ihren Developer mit runden, gespannten Augen erwartungsvoll an. Sobald dieser sich die Haare rauft, auf seinen Code starrt und den Fehler einfach nicht finden kann, bietet das gelbe Entchen seine wertvollen Dienste an. Geduldig hört es dem verzweifelten Developer zu, während dieser Zeile für Zeile seinen Code erklärt.

Wie bereits Momo in Michael Endes Roman – das Mädchen, das den Menschen so zuhören konnte, dass ihnen plötzlich gute Ideen kamen – muss die Ente dabei kein einziges Quietschen von sich geben, um von großer Hilfe zu sein. Nicht das Sagen oder Fragen bringt unsere Developer bei nova auf die besten Ideen, manchmal brauchen sie einfach jemanden, der mit größter Aufmerksamkeit und Anteilnahme zuhört. Und so wie sich unsere Gummienten auf das Zuhören verstehen, ist es ganz und gar einmalig. Auf diese Weise stehen sie unseren kompetenten Developern als Mentorinnen stets bei jedem kniffligen Codefragment sowie großen und komplexen Funktionen zur Seite.

Wieso eigentlich Rubber Duck Debugging?

Diese alternative Anwendung einer Quietscheente haben wir uns allerdings nicht selbst ausgedacht. Das sogenannte Rubber Duck Debugging entstammt dem Buch “The Pragmatic Programmer” von Andrew Hunt und David Thomas und ist eine beliebte und weit verbreitete Methode beim Programmieren. Während seines Studiums am Imperial College in London arbeitete David Thomas viel mit einem Forschungsassistenten namens Greg Pugh. Dieser trug mehrere Monate lang eine kleine gelbe Gummiente mit sich herum, die er während des Programmierens auf seinen Schreibtisch legte. Es dauerte eine Weile, bis David den Mut aufbringen konnte, ihn danach zu fragen. Als er sich schließlich dazu aufraffte, entstand die Bezeichnung für eine einfache, aber besonders nützliche Technik, um die Ursache für ein Problem zu klären: Das Rubber Duck Debugging.

Bei nova haben die kleinen Helferchen erst am Anfang der Corona-Pandemie Einzug gefunden, als wir alle ins Homeoffice zogen und unsere Kollegen und Kolleginnen am Tisch nebenan nicht mehr einfach um Hilfe bitten konnten. So alleine am Schreibtisch fehlte es uns an Partner:innen, die mal schnell über die Schulter schauen und den Code aus einem anderen Blickwinkel betrachten. Da kam uns die beliebte Rubber Duck Debugging-Methode mit den quietschenden Entchen gerade recht. Auch wenn sie nicht wie ein Kollege oder eine Kollegin mit Rat und Tat zur Seite stehen, sondern sich mehr aufs Zuhören konzentrieren, möchten wir sie nun nicht mehr missen.

Wie funktioniert Rubber Duck Debugging?

1. Begebe dich auf die Suche nach deiner treuen Mentorin. Keine Sorge aus der Vielfalt der Quietscheentchen – egal ob in einfacher gelber Variante, mit Wimpern oder ohne, in grün, blau oder rot, als Feuerwehrente, Anwaltsente oder Sonnenblumenente getarnt – sobald du deine Ente gefunden hast, wirst du automatisch wissen, dass sie die richtige Mentorin für dich ist.

2. Platziere deine Quietscheente neben deinem Computer und bitte sie höflich darum, dir durch Zuhören beim Lösen deines Problems zu helfen.

3. Erkläre der Ente deinen Code Zeile für Zeile, gehe ins Detail und beschreibe ausführlich, was dein Code beabsichtigt. Dabei kannst du deinen Finger oder den Cursor benutzen, um auf den gerade diskutierten Teil zu zeigen.

4. Ab einem bestimmten Punkt findest du schließlich die Stelle, an welcher der Code nicht das macht, was du deinem Quietscheentchen erzählt hast. Du hast die Stelle im Code gefunden, die alle deine Probleme verursacht hat! Oft reicht es schon aus, das Problem Stück für Stück in einfachere Begriffe zu zerlegen, um es zu erkennen. Obwohl es nicht die Ente ist, die das Problem gelöst hat, sondern du selbst, wird sie gelassen da sitzen, lächeln und sich darüber freuen, dass sie dir auf deinem Weg geholfen hat.

Was macht Rubber Duck Debugging so erfolgreich?

Wie David Hayes in seinem Blog Thoughtful Code beschreibt, verwenden wir Enten oder andere Stellvertretende, weil es einen großen Unterschied zwischen der Denkweise der meisten Menschen und der von Computern gibt. Computer sind sehr genau, wohingegen Menschen ungenau und formlos denken.
Dies führt zu einer Diskrepanz beim Programmieren, besonders wenn man an einer Hürde stolpert und nicht weiter kommt. Um darüber hinweg zu springen und ein Problem im Programm zu lösen, genügt es oft, sein Vorgehen klar und deutlich zu formulieren. Da wir davon ausgehen, dass die Quietscheente keine Ahnung von dem Code hat, ist unsere Erklärung detaillierter und präziser.
Dabei formulieren wir nicht einfach nur die Funktion des Codes, sondern lernen gleichzeitig, wie wir effizienter programmieren. Forschung konnte immer wieder nachweisen, dass das Erklären und Unterrichten eines anderen das eigene Wissen und die Fähigkeiten stärkt. So können nicht nur Mauern, gegen die man regelmäßig stößt überwunden werden, man wächst auch über sich hinaus und wird Schritt für Schritt ein besserer Developer.

Wenn du also das nächste Mal mit deinem Code zu kämpfen hast, halte tief inne, atme durch, lasse den Frust los und erkläre deiner Quietscheente den Code Schritt für Schritt. Indem du ihr hilfst, das Problem zu verstehen, betrachtest du es aus einer anderen Perspektive, was schließlich zu deinem “Aha!”-Moment führt.

Sebastian Müller - Project Owner
Sebastian MüllerTeamlead Development
Sebastian Müller - Project Owner
Sebastian MüllerTeamlead Development