Zum Inhalt springen
BigTree108

Modernisierung von Legacy-Software

Modernisierung von Legacy-Software für Systeme, die noch das Geschäft tragen, es aber ausbremsen: Übernahme von Code, den andere Teams geschrieben haben, Upgrades auf aktuelle Releases und schrittweiser Ersatz alter Module, ohne Big-Bang-Rewrite. Bisher haben uns neun Systeme von anderen Teams erreicht, das älteste wurde 2008 geschrieben.

Wie wir ein Legacy-System modernisieren

  • Zuerst eine Prüfung im Nur-Lese-Modus

    Code, Abhängigkeiten, Deployment und Daten werden von Anfang bis Ende gelesen, bevor jemand eine Zeile ändert, mit einer schriftlichen Liste von Risiken in der Reihenfolge ihrer Auswirkung auf die Produktion.

  • Tests um das Bestehende

    Characterisation Tests, die festschreiben, was das System heute tut, Eigenheiten eingeschlossen, damit jede spätere Änderung am tatsächlichen Verhalten geprüft wird statt an der Erinnerung.

  • Upgrades von Frameworks und Laufzeiten

    .NET Framework auf aktuelles .NET, Java 8 auf ein aktuelles LTS, PHP 5 auf PHP 8, Python 2 auf 3 und AngularJS auf Angular, Schritt für Schritt, jeder Schritt einzeln veröffentlicht.

  • Ersatz nach dem Strangler-Fig-Muster

    Neue Module werden neben dem alten System hinter einer Routing-Schicht gebaut und übernehmen Feature für Feature, bis sich der alte Code abschalten lässt, ohne einen einzigen Tag, an dem sich alles ändert.

  • Datenbankmodernisierung

    Geschäftslogik, aus Stored Procedures in getesteten Code verlagert, Schemaänderungen in versionierte Migrationen überführt und Daten auf nicht mehr unterstützten Datenbankversionen, die mit einem Abstimmungsbericht umgezogen werden.

  • Sicherheitsschulden abgebaut

    Nicht mehr unterstützte Abhängigkeiten ersetzt, bekannte Schwachstellen behoben, Secrets aus Konfigurationsdateien in einen Vault verlagert und Dependency-Scanning in der Pipeline, damit die Schulden nicht zurückkehren.

Entwickler für Legacy-Systeme einstellen

  • Dedizierte Entwickler für Legacy-Systeme

    Entwickler für Legacy-Systeme, die in Vollzeit zu Ihrem Team gehören, in Ihren Tools und Ihrem Prozess arbeiten und an Ihren Lead berichten. Sie führen die Interviews; wir tragen den ukrainischen Vertrag, die Gehaltsabrechnung, die Rechnungsstellung und den Urlaub.

  • Projekte im Bereich Modernisierung

    Ein abgegrenztes Arbeitspaket im Bereich Modernisierung mit festem Umfang, festem Plan und einem benannten Verantwortlichen auf unserer Seite, der das Ergebnis verantwortet und den Fortschritt in Ihren Kanälen berichtet.

  • Modernisierung als laufender Service

    Modernisierung als fortlaufende Leistung: jeden Monat dieselben Personen, ein Backlog, das Sie priorisieren, und Stunden, die Sie in unserem Portal und auf der Rechnung einsehen können.

Die Seite zum dedizierten Team erklärt, wie Spezialisten zu Ihrem Team stoßen, und die Seite zum Outsourcing behandelt Projektlieferung, Übernahmen und unsere Abrechnung.

Wer sich bei Ihnen um Modernisierung kümmert

  • Technical Lead

    Verantwortet die Prüfung, die Risikoliste und die Reihenfolge der Arbeit

  • .NET-, Java- und PHP-Entwickler

    Upgrades und Refactoring in der eigenen Sprache des Systems

  • Cloud- und DevOps-Ingenieure

    Pipelines, Infrastructure as Code und der Umzug von alten Servern

  • QA-Ingenieure

    Characterisation- und Regressionstests

In Schritten modernisieren, nicht in einem Rewrite

Ein vollständiger Rewrite hält die Auslieferung monatelang an und verliert meist Verhalten, das niemand aufgeschrieben hat. Wir modernisieren deshalb in Schritten: jeder klein genug zum Release, gegen das getestet, was das System vorher getan hat, und danach gewählt, welches Risiko oder welche Kosten er beseitigt, damit das Geschäft auf dem System weiterläuft, während es sich ändert.

Eine Übernahme beginnt mit einer Prüfung im Nur-Lese-Modus und einer schriftlichen Liste von Risiken, bevor etwas behoben wird. Manchmal zeigt diese Liste, dass ein Modul besser neu geschrieben wird, und dann sagen wir das, mit den Gründen schriftlich und dem Rewrite, der hinter denselben Tests geplant wird.

Weitere Lösungen, die wir liefern

Übersicht über Lösungen

Fragen zur Modernisierung von Legacy-Software

Neu schreiben oder modernisieren?

In der Regel modernisieren. Ein Rewrite ist sinnvoll für ein Modul, dessen Verhalten gut verstanden ist und dessen Code jede Änderung blockiert; für den Rest liefern schrittweise Upgrades und der Ersatz nach dem Strangler-Fig-Muster früher Nutzen und bewahren das Wissen, das im alten Code steckt. Die Prüfung gibt Ihnen diese Entscheidung je Modul schriftlich.

Unsere ursprünglichen Entwickler sind weg. Können Sie das System trotzdem übernehmen?

Ja. Wir arbeiten ausgehend vom Code, der Datenbank, dem Deployment und den Personen, die das System noch nutzen, und die schriftliche Risikoliste sagt Ihnen, was wir gefunden haben, bevor Sie entscheiden, was sich ändern soll.

Läuft das alte System weiter, während es modernisiert wird?

Ja. Fehlerbehebungen und Sicherheits-Patches laufen während der gesamten Zeit auf dem Live-System weiter, und jeder Modernisierungsschritt wird einzeln veröffentlicht, sodass es nie einen Zeitraum gibt, in dem das Geschäft auf die neue Version wartet.

Wie schnell können Entwickler für Legacy-Systeme starten?

Steht für die Position Modernisierungs-Engineer eine passende Person zur Verfügung, hängt der Start nur von Ihrem Interview sowie von NDA und IP-Übertragung ab. Andernfalls starten wir eine Suche, die typischerweise innerhalb von zwei bis drei Wochen Kandidatenprofile liefert, und niemand beginnt, bevor Sie zugestimmt haben.

Wie stellen wir Entwickler für Legacy-Systeme über BigTree108 ein?

Nennen Sie uns die Aufgabe, die Seniorität und die benötigten Stunden. Wir schlagen ein oder zwei Personen mit ihren Profilen vor, Sie führen die Interviews so, wie Sie Ihre eigene Neueinstellung interviewen würden, unterzeichnen einen Vertrag mit BIG TREE 108 LLC und erhalten eine Rechnung im Monat.

Wem gehören die Arbeitsergebnisse?

Sie. Jeder Spezialist hat einen unterzeichneten Vertrag mit BigTree108, der alle Arbeitsergebnisse dem Unternehmen überträgt, und unser Vertrag mit Ihnen überträgt sie an Sie weiter. Code, Designs und Dokumente werden in Ihre eigenen Repositories und Tools geliefert und nicht dort aufbewahrt, wo nur wir sie ändern können.

Betreiben Sie ein System, das niemand anfassen will?

Senden Sie das Repository oder eine Beschreibung des Systems. Sie erhalten innerhalb eines Werktags eine Antwort: einen Plan für die Prüfung und die ersten Schritte danach.