Rubber Duck Debugging

Gummientendebugger

Oft sind es die unkonventionellen Mittel, die uns helfen unsere Aufgaben und Probleme zu lösen. Insbesondere dann, wenn man so richtig auf dem Schlauch steht. Bei Softwareentwicklern kann das debuggen von Code so ein klassischer Fall von den Wald vor lauter Bäumen nicht sehen sein.

Der Wald und die Bäume

Die Aufgabenstellung ist klar, die Lösung fest im Blick und dennoch verweigern die getippten Befehlszeilen die Ausgabe des erwarteten Ergebnisses. Auch das zehnte Überarbeiten jeder einzelnen Zeile sorgt nicht für einen zufriedenstellenden Output. In solchen Situationen hilft es oft, eine weitere Person an dem Problem teilhaben zu lassen. Dabei ist es nicht wichtig ob diese Person programmieren kann oder nicht. Sobald man laut über die zu erwartende Funktionalität spricht und danach Zeile für Zeile die Handlungsanweisungen erläutert, stellt sich früher oder später ein Moment der Erleuchtung ein. Das einfache in Worte fassen von Logik bringt dabei oft die Differenz zwischen dem Soll und Ist zu Tage.

Ersatz

Was aber tun, wenn kein humanoider Debugging-Partner greifbar ist? Die Antwort ist schnell gefunden: Rubber Duck Debugging.1

Zugegeben

Die Vorstellung, einer Gummiente seinen Sourcecode zu erklären, mag etwas verstörend sein. Letztendlich geht es aber nur darum, seine Gedanken in Sprache oder auch Text zu übersetzen, um einzelne Details bewusster wahrzunehmen. Dadurch werden automatisch andere Gedankenwege verfolgt und so die festgefahrene Denkweise gelöst. Funktioniert.2

tl;dr

Ein nerviger Bug lässt sich mal wieder nicht finden? Vielleicht hilft es, einer Gummiente das Problem zu erklären.

  1. Stack Overflow: What is this particular type of revelation called? 

  2. Bei komplizierten Problemstellungen einfach weitere Gummienten hinzuziehen :)