Architektur Redesign einer monolithischen Echtzeitanwendungen
Projektkontext
Unser Kunde aus der Mobilitäts- und Logistikbranche benötigt für eines seiner Softwareprodukte die Entwicklung und Umsetzung einer nachhaltigen Architektur zur Erhöhung der Wartbarkeit und zur Beschleunigung der Weiterentwicklung für eine monolithische Echtzeit-Anwendung. Die Anwendung wird von zwei agilen Teams mit ~15 Entwicklern nach dem Scaled Agile Framework (SAFe) entwickelt. Gleichzeitig wird die Anwendung fachlich weiterentwickelt.
In der Rolle als Software Architekten unterstützt StepBeyond die Teams in enger Zusammenarbeit, die technische Perspektive der Software mitzugestalten.
Lösungsansatz
Zuerst wurde ein initiales Abhängigkeitsdiagramms basierend auf dem aktuellen Code-Stand als Diskussionsgrundlage erstellt. Der entstandene Abhängigkeitsgraph wurde anschließend schrittweise vereinfacht. Identifizierung fachlicher Zusammenhänge ("Bounded Context", siehe DDD), auf deren Basis Architekturworkshops mit Fach- und Technikexperten durchgeführt wurden. In den Workshops wurde gemeinsam ein Zielbild entwickelt und gegebenenfalls in kleinere Schritte unterteilt. Ebenfalls wurden technische Refactorings identifiziert, die nur bedingt Einfluss auf fachliche Abhängigkeiten (Abhängigkeitsgraph) haben.
Alle Schritte wurden anschließend in einer Aufwand-Nutzen-Matrix sortiert, um darauf basierend gemeinsam mit dem Management eine Priorisierung vorzunehmen. Dieser Prozess wurde monatlich durchgeführt, wodurch das Bild der Zielarchitektur kontinuierlich geschärft wurde.
Anhand der Priorisierung wurden die Schritte nach und nach mit dem Entwicklungsteam in Stories abgebildet und weiter verfeinert, sodass Refactoring-Aufgaben anschließend in die Sprints eingeplant werden konnten. Erkenntnisse aus der Implementierung flossen direkt in die konzeptionelle Arbeit zurück.
Herausforderungen
- Identifizierung von fachlichen Kontexten
- Auflösung von fachlichen und technischen Abhängigkeiten
- Komplexer Code durch fehlende Trennung von fachlichen und technischen Bausteinen
- Fehlende Architekturdokumentation
- Abstraktion der hohen fachlichen Komplexität
- Darstellung und Vermittlung technischer Probleme an das Management
- Koordination und Abstimmung der Architektur mit beiden Teams
- Kommunikation auf unterschiedlichen Abstraktionen
Ergebnis
- Abgestimmtes und transparentes Backlog zur Erreichung der dokumentierten Zielarchitektur
- Iterativer Plan für die Entwicklung hin zu einer wartbaren und skalierbaren Software-Architektur
- Etablierung eines Prozesses zur stetigen Weiterentwicklung der Architektur
Learnings
- Grafische Aufbereitungen technischer Problemstellungen sind für das Management extrem wichtig
- Entwicklung einer ubiquitous Language mit Fachbereich, Entwicklern und Architekten
- Die richtigen Fragen und eine gute Moderation helfen den Kollegen, die richtige Lösung selbst zu finden
Das sagt der Kunde zum Projekt:
ZURÜCKGELEGTE STRECKE
Weitere erfolgreiche Missionen

Konzeption und Implementierung des GitOps-Vorgehens mit ArgoCD und Kubernetes
Ein Softwarehersteller für Versicherungen wollte eines seiner Produkte als SaaS anbieten – ohne Erfahrung mit Containern. Wir haben Cluster und Releases mit Terraform und ArgoCD revisionssicher automatisiert.

Architektur Redesign einer monolithischen Echtzeitanwendungen
Eine monolithische Echtzeit-Anwendung war durch gewachsene Abhängigkeiten kaum noch wartbar. Wir haben mit zwei Teams eine Zielarchitektur nach Domain Driven Design erarbeitet und in ein priorisiertes Backlog überführt.

Konzeption und Implementierung einer Microservice Architektur für Gutscheincodes
Ein führender Versicherer brauchte personalisierte Gutscheincodes in Echtzeit. Wir haben dafür eine serverlose Microservice-Architektur mit Quarkus Native, AWS Lambda und DynamoDB umgesetzt.
Deine Mission könnte
hier beginnen.
Bist du bereit, den nächsten Schritt zu gehen
und deine Erfolgsgeschichte zu schreiben?