Legacy Is Sexy
Autor
Marcus HeldHi,
Unpopular Opinion Warnung: Legacy ist sexy!
Um ehrlich zu sein - ich habe das nicht immer so gesehen.
Dir ging es bestimmt ähnlich.
Mein erstes (großes) professionelle Projekt war eine Legacy Anwendung
So alt war sie eigentlich gar nicht. Wenn ich mich richtig erinnere, dann hatte sie nicht mal ein Jahrzehnt auf dem Buckel.
Es fühlte sich aber viel älter an.
Dies lag hauptsächlich an den vielen unerfahrenen Entwicklern, die an der Anwendung arbeiteten.
Ich war selbst noch grün hinter den Ohren.
Das zentrale Architekturpattern: Die Gott-Klasse
Es war schrecklich damit zu arbeiten. Änderungen dauerten lange. Es gab allerlei Seiteneffekte. Die Testabdeckung war schlecht. Die wenigen Tests waren stark mit dem Produktivcode verdrahtet.
Ich war nicht unglücklich
Aber ich habe immer wieder mit Neid auf die Teams geschaut, die auf einer grünen Wiese angefangen haben.
Wie schön es doch wäre alles besser zu machen.
Ich wäre so produktiv. Ich würde alles perfekt machen. Ich könnte jede Anforderung umsetzen.
Wie sehr sich meine Perspektive seit dem verändert hat
Später folgte eine mehrjährige Phase in der ich nur in neuen Projekten war. Was ich mir immer gewünscht habe.
Und meine Erwartungen wurden erstmal erfüllt.
Ich konnte frei sein. All meine Wünsche erfüllen. Ich war schnell. Es gab noch keine User, um die ich mich kümmern musste.
Datenbank Migrationen - konnten weggelassen werden, die Datenbank kann immer platt gemacht werden.
API Changes - einfach machen, konsumiert ja noch niemand.
Einen weiteren Service einführen - kein Problem, ich brauche noch keine Zeit ins Monitoring stecken.
Aber dann?
Der Return of Investment ist nicht gut genug. Eine zeitlang probierten wir das Ruder herum zu reißen. Dann zog das Management den Stecker.
Also, auf zum nächsten Projekt
Wieder Greenfield. Es lief genauso. Der ROI war nicht gut genug. Abgesetzt.
Und wieder von vorne. Wir bauen etwas. Abgesetzt.
Und wieder. Und wieder.
Greenfield ist schön. Aber noch besser ist etwas zu bauen, dass benutzt wird. Legacy.
Legacy Applikationen sind legacy aus einem guten Grund.
Sie sind erfolgreich.
Es gibt User.
Es bietet einen Wert.
Es nützt Menschen.
Legacy ist sexy
Ja, jedes Projekt entwickelt technische Schuld. Manche mehr. Manche weniger. Aber technische Schuld bedeutet, dass etwas gebaut wurde. Etwas das genutzt wird. Die größte technische Schuld kommt in Zeiten in denen es gut läuft. In denen das Geschäft erfolgreich ist. In denen schnelle Entscheidungen notwendig sind. In denen das meiste aus dem Produkt herausgeholt wird.
Wer an einer Legacy Anwendung arbeiten darf, darf an etwas erfolgreichem arbeiten.
Und das ist ein schönes Gefühl
Für mich ist es heute motivierender eine sinnvolle Aufgabe zu haben. Die technische Schuld kann abgebaut werden. Immer. Aber ein Produkt kann nicht immer erfolgreich gemacht werden. Manchmal passt es einfach nicht.
Freue dich, wenn du an Legacy arbeitest. Du machst etwas wertvolles!
ps. Laut dem aktuellen Developer Ecosystem Report von IntelliJ arbeiten 50% aller Entwickler noch mit Java 8. Du bist nicht allein 😉
Rule the Backend,
~ Marcus