Wir alle kennen sie: „Legacy“ Systeme. Wir mögen sie nicht, weil wir uns die Finger schmutzig machen, wenn wir sie anfassen. Schlimmer noch, auf kleine Änderungen reagieren sie manchmal wie Porzelan auf den berühmten Elefanten. Und dann kommt die lange gefürchtete Aufgabe dieses System zu erweitern.

Doch wo fangen wir an? Wie können wir uns einer Lösung annähern, die vom Aufwand her vertretbar ist? Wie können wir eine Lösung so umsetzen, dass sie einigermaßen robust ist? Und wird der Kollege, der erst in drei Wochen wieder aus dem Urlaub kommt, auch verstehen was wir da eingecheckt habe? Orakel, TDD, Refactoring und Patterns sind einige Bespiele für Bestandteile des Entwicklerwerkzeugkastens, die ich zur Umsetzung einer „kleinen“ Anforderung genutzt habe.

Ich werde - an Produktionscode - zeigen, auf welche Weise diese Werkzeuge zusammenspielen können - und müssen - um auch als Neuling in einer relativ unbekannten Codebasis Veränderungen vornehmen zu können. Anhand von Code und einer Schritt-für-Schritt Beschreibung der Umsetzung möchte ich weiterhin zeigen, dass es wichtig ist, Werkzeuge innerhalb eines bestimmten Kontexts gesehen zu haben, um sie anwenden zu können. Als Beispiel dient eine Produktivsoftware, die um einen einfachen Scheduler erweitert wird.

Zielgruppe

Frisch gebackene Software EntwicklerInnen mit wenig Erfahrung in großen Codebasen, EntwicklerInnen, die gerade eine neue Codebasis übernommen/erhalten haben oder auch solche, die mit einer ersten kleinen Änderung ihrem Code den Weg aus dem „Legacy“-Dasein öffnen wollen.

Markus Deibel

Nach seinem Studium der Diplom-Informatik in Gießen, arbeitete Markus Deibel neun Jahre im Bereich Integration von Manufacturing Execution Systems (MES). Neben der Entwicklung direkt beim Hersteller war er auch mit der Integration dieser Systeme beim Endkunden befasst.

Seit Januar 2017 ist er Teil des Entwicklungsteams für Data Center Infrastructure Management und Kühlgeräte-Management-Software bei einem namhaften deutschen Hersteller von Schaltschrank- und System-Lösungen.