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
MVP-Entwicklung
Services für MVP-Entwicklung für Gründer und Produktteams: Scoping, ein Figma-Prototyp, ein Web- oder Mobile-Build und Launch auf einem Stack, der die nächste Version trägt, durch dedizierte MVP-Entwickler oder als Projekt.
SaaS-Entwicklung
Services für SaaS-Entwicklung: mandantenfähige Architektur, Abonnements und Abrechnung, Enterprise-Single-Sign-on, Support-Werkzeuge und Releases ohne Ausfallzeit, durch dedizierte SaaS-Entwickler oder als Projekt.
Entwicklung von Webanwendungen
Services für die Entwicklung von Webanwendungen: Kundenportale, interne Tools, Dashboards und Progressive Web Apps, mit Backend und Hosting, durch dedizierte Webentwickler oder als Projekt.
API-Entwicklung
Services für API-Entwicklung und Integration: REST- und GraphQL-APIs, Integrationen mit Drittanbietern, ereignisgesteuertes Messaging und Webhooks, an jeder Verbindung überwacht, durch dedizierte API-Entwickler oder als Projekt.
Cloud-Migration
Services für Cloud-Migration: Bewertung der Workloads, Landing Zones in Terraform sowie Umzug von Datenbanken und Anwendungen zu Azure, AWS oder Google Cloud mit geplanter Umschaltung, durch dedizierte Cloud-Engineers oder als Projekt.
Telegram- und Viber-Bots
Telegram- und Viber-Bots für Unternehmen: Bestellungen, Buchungen, Zahlungen über LiqPay, WayForPay oder monobank, Bestellstatus und Mitarbeiter-Bots, verbunden mit Ihrer Website, Ihrem CRM und Ihrer Buchhaltung.
Chatbots für Unternehmen, Einrichtungen und Wohltätigkeitsorganisationen
Chatbots für Support, Buchungen, Bestellungen, Zählerstände, Zulassungen, öffentliche Dienste und Wohltätigkeitsorganisationen, in Telegram, Viber, WhatsApp, Facebook Messenger, Instagram und auf Ihrer Website, gebaut auf SendPulse, Botpress oder Copilot Studio oder in Code.
Integrationen mit ukrainischen Diensten
Ihre Website, Ihr Shop oder Ihr CRM, verbunden mit Nova Poshta, Ukrposhta, LiqPay, monobank, PrivatBank, Checkbox, Vchasno, Paperless, Prom.ua, Rozetka, KeyCRM und der Prozorro-API, ohne Daten neu abzutippen.
CRM-Entwicklung
CRM-Systeme, eingerichtet, erweitert oder gebaut für Ihren Prozess: KeyCRM, SalesDrive, HubSpot, Pipedrive, Salesforce, Dynamics 365 oder ein eigenes CRM, mit Integrationen und automatisierter Routine.
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.