Der Bestätigungsfehler beim Debugging

Beim Debugging bilde ich häufig sehr früh eine Hypothese:

  • Das muss am Cache liegen.
  • An der Änderung kann es nicht liegen, weil...
  • Die neue Library hat etwas verändert.

Ab diesem Moment verändert sich meine Suche. Ich sehe Logzeilen, die zu meiner Vermutung passen. Hinweise, die dagegen sprechen, erkläre ich zu Nebeneffekten oder Sonderfällen.

Das Problem ist nicht, dass ich Hypothesen bilde. Ohne Hypothesen könnte ich komplexe Systeme kaum untersuchen. Problematisch wird es, wenn aus einer vorläufigen Vermutung unbemerkt eine Überzeugung wird. Eine einfache Gegenmaßnahme besteht darin, nicht nur zu fragen:

Was würde meine Annahme bestätigen?

Sondern ausdrücklich:

Welche Beobachtung würde zeigen, dass meine Annahme falsch ist?

Manchmal schreibe ich vor einer größeren Untersuchung mehrere mögliche Ursachen auf. Das verhindert nicht, dass ich mich in eine davon verliebe. Aber es macht wenigstens sichtbar, dass es Alternativen gibt.