Lang gesucht und doch gefunden
Von Carsten
In den letzten 3 oder 4 Tagen war ich auf der Suche nach einem verzwickten Bug. Eine Funktion ging von heute auf morgen kaputt – so sah es jedenfalls aus. Was monatelang funktioniert hat und eine zentrale Funktion der Software ist, an der ich seit über 12 Monaten arbeite, ist kaputt gegangen.
Natürlich nicht nach einem erkennbaren Muster, sondern anscheinend völlig willkürlich. Und selbstverständlich gab es keine offensichtlichen Fehlermeldungen in den Logs oder Crashes. Die Software hat diese Funktion für einige Nutzer einfach nicht ausgeführt.
Heute mittag hab ich dann aus Verzweiflung im Zuge meiner gründlichen Analyse meine Suche auf weitere Bereiche ausgedehnt und tatsächlich eine änderung ausserhalb meiner Software gefunden, die eine Auswirkung haben konnte. Ich habe ungefähr 1 Minute gebraucht, um die Stelle im Code eines anderen zu finden, die bei mir einen Fehler ausgelöst hatte.
Das es diese Abhängigkeit gibt, war mir nicht mehr bewußt. Sie war auch dem Entwickler nicht bewußt, der die änderung gemacht hat. Hinterher war allen klar, daß diese änderung natürlich Auswirkungen auf andere haben kann. Aber hinterher ist man ja immer klüger. Und die Korrektur hat ungefähr 2 Minuten gedauert…
Was ich aus dieser Episode schließe: wenn man schon Abhängigkeiten zu anderen hat, muss man diese so deutlich wie möglich markieren. Und man muss sie so klein wie möglich halten.
Und morgen früh schreibe ich als erstes einige Tests, mit denen ich solche Probleme beim nächsten Mal ausreichend dokumentiere. Ich muss mir also einen Weg einfallen lassen, bei einer änderung in der Zukunft meine Tests so fehlschlagen zu lassen, dass ein anderer Entwickler daraus genug Informationen bekommt, um die Abhängigkeit zu finden und den Fehler sofort zu erkennen.
Ja, und ich werde daran arbeiten, die Abhängigkeit aufzulösen. Aber manchmal muss man mit solchen Sachen leben.