CodeSOD: Ein Jahresbericht Notiz

CodeSOD: Ein Jahresbericht

Michael hatte die Aufgabe, Mainframe-Berichte zu modernisieren, was das Entschlüsseln von altem Intelligent Query-Code beinhaltete. Das Ziel des Projekts war es, das exakte Verhalten des alten Systems mit einem neuen zu replizieren, wobei Tests auf Basis von Ausgabe-Vergleichen durchgeführt wurden. Nach der Konvertierung eines Berichts stimmten die Ergebnisse nicht mit dem Original überein. Michael entdeckte eine Diskrepanz in einer Variablen namens TODAYS-365, die in einem Bericht mit dem Titel "Annual" verwendet wurde. Während der aktualisierte Bericht korrekt Daten aus einem Jahr zog, enthielt der ursprüngliche Code eine eigenartige Zeile: SUBTRACT TODAYS-DATE MINUS 426 GIVING TODAYS-365. Diese Berechnung bedeutete, dass der ursprüngliche Bericht tatsächlich Daten aus dem Vorjahr plus ungefähr zwei Monate erfasste. Es wird vermutet, dass eine Änderung der Berichtsanforderungen, vielleicht im Zusammenhang mit Geschäftsjahren, zu diesem irreführenden Variablennamen und dieser Berechnung führte, die jahrelang unbemerkt blieb. Die Korrektur war unkompliziert, aber das zugrundeliegende Problem war die Anhäufung von unklarem und irreführendem Code im Laufe der Zeit. Dies verdeutlicht, dass die eigentliche Herausforderung bei Altsystemen nicht die Programmiersprachen selbst sind, sondern die Schichten von angesammeltem, oft schlecht dokumentiertem "Kruft" (unnötiger oder veralteter Code).