
Viele Java-Anwendungen müssen technisch erneuert werden, während Betrieb und fachliche Weiterentwicklung weiterlaufen. Große Versionssprünge, veraltete Komponenten und geringe Testabdeckung erhöhen dabei das Risiko unerwünschter Änderungen.
Ich modernisiere solche Systeme schrittweise – von der technischen Bestandsaufnahme bis zur Umsetzung. Relevante Abläufe und Ergebnisse werden vor der Änderung festgehalten und nach jedem Migrationsschritt erneut geprüft. Dadurch lassen sich Regressionen früh erkennen und Ursachen gezielt eingrenzen.
Je nach Ziel kann die Modernisierung innerhalb des bestehenden Systems erfolgen oder die Architektur stärker verändern – bis hin zur Aufteilung in Services oder einer Cloud-Migration. Das technische Vorgehen richtet sich nach den fachlichen Anforderungen, den Betriebsbedingungen und der angestrebten Zielarchitektur.
Je nach Auftrag gehören dazu ein technischer Befund mit Stufenplan, Baseline-Tests und Prüfkriterien, die eigentlichen Migrationsänderungen, dokumentierte Vergleichsergebnisse und Empfehlungen für die weitere Arbeit.
Die Vergleichskriterien werden vor der Migration festgelegt und auf die kritischen Abläufe der Anwendung abgestimmt. Bei Persistenzänderungen wird auch das erzeugte SQL geprüft – etwa auf korrekte Filter und Joins, unerwartete N+1-Abfragen, Anzahl der Abfragen und auffällige Ausführungspläne. Performance- und Datenbankvergleiche basieren auf reproduzierbaren Daten und einer geeigneten Testumgebung.
Mehr als 20 Jahre Erfahrung mit Java-Systemen, Datenbanken, Schnittstellen und produktionskritischen Anwendungen bilden die technische Grundlage.
KI nutze ich regelmäßig im Entwicklungsalltag – zum Erschließen bestehender Codebasen, für Testszenarien und Testgerüste, bei Implementierung und Refactoring sowie für Dokumentation und Reviews. In Kundenprojekten erfolgt der Einsatz ausschließlich innerhalb der freigegebenen Werkzeuge und Vorgaben.
Für wiederholbare, regelbasierte Quellcode-Änderungen nutze ich OpenRewrite. Die erzeugten Änderungen bleiben prüfbar und werden mit denselben technischen Maßstäben bewertet wie manuell geschriebener Code.
Zur Modernisierung gehört auch, nicht mehr gepflegte Bibliotheken abzulösen, bekannte Schwachstellen durch geeignete Updates zu beheben und die Codequalität mit statischer Analyse kontinuierlich zu prüfen.
Bestandsaufnahme, Risikobewertung, Test-Baseline, Migration und Ergebnisvergleich folgen einer wiederholbaren Struktur, die an Technologie, Codebasis und Projektumfang angepasst wird. Grundlage sind meine Erfahrungen mit Java-Systemen, Persistenzmigrationen und der Weiterentwicklung bestehender Anwendungen.
Dieses Vorgehen wird schrittweise um wiederverwendbare Checklisten, Automatisierungen, Prompts und kleine Werkzeuge ergänzt.
Abgegrenztes Modernisierungsvorhaben: Je nach Umfang übernehme ich die vollständige Modernisierung einer Anwendung oder ein klar abgegrenztes Teilprojekt. Dazu gehören Planung, technische Umsetzung, Abstimmung und die vereinbarte Übergabe.
Mitarbeit im bestehenden Team: Hands-on-Unterstützung bei Java-/Kotlin-Backend-Entwicklung und Modernisierung – auch in langfristigen Mandaten und innerhalb bestehender Delivery-Prozesse.
Analyse oder unabhängige Prüfung: Eine Bestandsaufnahme mit Risiken und Stufenplan kann als Einstieg dienen. Ebenso möglich ist die separate Prüfung einer laufenden oder bereits umgesetzten Migration.
Die Zusammenarbeit erfolgt direkt mit mir, auf Deutsch oder Englisch. Remote-first in Deutschland und Europa mit CET-Überschneidung; Kick-offs und Workshops gerne vor Ort.
Ja. Maßgeblich sind Ihre freigegebenen Werkzeuge und Vorgaben zum Umgang mit Daten. Möglich sind intern betriebene Modelle, genehmigte externe Dienste oder eine Umsetzung ohne KI. Kundencode wird nicht ohne Abstimmung an externe Dienste übertragen.
Dann werden zunächst die wichtigsten Abläufe mit wenigen verlässlichen Charakterisierungs- und Integrationstests abgesichert. KI kann beim Finden weiterer Szenarien und beim Erstellen von Testgerüsten unterstützen; die fachliche Aussagekraft muss anschließend geprüft werden.
Nein. Meist sind überschaubare Änderungen im bestehenden System der bessere Weg. Eine größere Umstrukturierung oder Service-Extraktion sollte ein konkretes technisches oder fachliches Problem lösen.
Welche Anwendung soll modernisiert werden, welche Upgrades stehen an und welche Abläufe müssen stabil bleiben? Eine kurze Beschreibung genügt für den Einstieg.