Kommune Aktiv – Entwicklung einer SaaS

Es gibt Software, die wirkt nicht laut. Keine hippen Logos, kein aggressives Marketing, keine Overhead-Demos mit Musik vom Synthesizer. Und trotzdem: Sie läuft, sie funktioniert, sie wird geschätzt. Besonders dann, wenn sie in einem sensiblen Bereich wie der öffentlichen Verwaltung tagtäglich ihren Dienst tut – und das seit vielen Jahren.

Unser Kunde betreibt genau so eine Softwarelösung: wirtschaftlich erfolgreich, kommunal im Einsatz, mit starker Bindung der Endanwender. Doch auch die robusteste Software alter Schule stößt irgendwann an systemische Grenzen. Hosting nur On-Premise, .NET Framework, keine Containerisierung, lange Release-Zyklen – Zeit für ein grundlegendes Upgrade. Aber wie modernisiert man, ohne den bewährten Kern zu verlieren?

Ausgangs­situation

Die bestehende Anwendung hatte sich über viele Jahre organisch entwickelt. Sie war gewachsen, hatte sich an die Anforderungen der Kunden angepasst und verfügte über einen gewaltigen Funktionsumfang. Gerade im kommunalen Bereich, in dem Stabilität und Verlässlichkeit zentrale Werte sind, hatte sich die Software einen exzellenten Ruf erarbeitet.

Technologisch war die Plattform allerdings ein klassisches Kind der frühen 2010er:

  • .NET Framework

  • Monolithische Strukturen

  • Lokale Installationen beim Kunden

  • Wenig bis keine Automatisierung in den Deploymentprozessen

Kurz: Die Software war nicht schlecht – im Gegenteil. Aber sie war alt geworden. So alt, dass sich bestimmte technologische Entscheidungen einfach nicht mehr wirtschaftlich vertreten ließen. Der Wunsch nach einer „grünen Wiese“ war also keine Abrechnung mit dem Bestehenden, sondern der Versuch, Bewährtes zukunftssicher neu zu denken.

Das Ziel:
Eine moderne, containerisierte Architektur, die langfristig in der Cloud betreibbar ist, aber die alte Business-Logik erhält. Kein Neuanfang um des Neuanfangs willen – sondern ein kontrollierter Übergang ins nächste Jahrzehnt.

Durchführung

Phase 1: Technologische Grundlage neu denken

Zunächst stand die Transformation des technologischen Fundaments im Mittelpunkt:

  • Austausch aller relevanten .NET Framework-Komponenten gegen .NET (Core bzw. aktuell .NET 6+)

  • Schrittweise Umstellung auf moderne Bibliotheken und Schnittstellen

  • Identifikation von Legacy-Code, der migriert – oder im Ausnahmefall neu geschrieben – werden musste

Phase 2: Containerisierung & Infrastruktur

Im nächsten Schritt wurde die komplette Softwarelandschaft dockerisiert. Die Vorteile lagen auf der Hand:

  • Klare Isolation der Komponenten

  • Einheitliche Deployment-Prozesse

  • Vorbereitung für ein Kubernetes-Deployment

Parallel dazu wurde die Infrastruktur komplett als Code neu aufgebaut:

  • Verwendung von Terraform zur Definition und Provisionierung der Cloud- und Kubernetes-Ressourcen

  • Aufbau eines produktionsfähigen K8s-Clusters inklusive Monitoring, Ingress, Service Mesh, etc.

  • Implementierung zentraler Dienste wie Secrets-ManagementZertifikatsverwaltungObservability und Logging

Phase 3: Automatisierung

Ohne automatisierte Prozesse wäre ein solches Projekt kaum beherrschbar. Deshalb wurde schon früh eine CI/CD-Pipeline aufgebaut:

  • Automatisierte Builds über Git

  • Container-Build und -Push über eigene Registry

  • Automatisierte Deployments in Entwicklungs- und Testumgebungen

  • Trennung von Konfiguration und Code zur Unterstützung mehrerer Mandanten und Zielsysteme

Phase 4: Business-Logik erhalten

Besonders herausfordernd war der Umgang mit der bestehenden Business-Logik. Sie war groß, komplex – und in vielen Fällen nicht dokumentiert. Um nicht in eine kostspielige und riskante Neuentwicklung zu rutschen, wurde ein begleitender Workshop-Prozess aufgesetzt:

  • Enge Zusammenarbeit mit Entwicklern, Fachexperten und Key-Usern

  • Rekonstruktion der Logik aus bestehendem Code und verteiltem Wissen

  • Abbildung der funktionalen Anforderungen in User Stories und Epics

  • Abgleich mit dem neuen Architekturmodell, insbesondere im Hinblick auf Zuständigkeiten zwischen Services

In einem Nebeneffekt entstand dadurch erstmals eine formalisierte, teamübergreifende Dokumentation der Prozesse – ein Gewinn, der über das Projekt hinaus Wirkung entfalten wird.

Phase 5: Organisation und Methodik

Ein solches Projekt verändert nicht nur den Code, sondern auch die Teams. Die Umstellung wurde genutzt, um Scrum bzw. ein agiles Kanban-Board einzuführen. Statt starrer Planung wurden iterative Zyklen etabliert, inklusive regelmäßiger Reviews und Retrospektiven. Die Akzeptanz war überraschend hoch – viele Kolleginnen und Kollegen begrüßten die neue Transparenz und Planbarkeit.

Ergebnis

Nach einem Jahr Arbeit steht noch kein finales Produkt – und das ist auch völlig in Ordnung. Die schiere Größe und Komplexität der Anwendung lassen sich nicht in wenigen Monaten neu erschaffen. Aber der Fortschritt ist klar erkennbar:

  • Die gesamte Infrastruktur wurde modernisiert und auf Terraform & Kubernetes migriert

  • Alle relevanten Dienste sind containerisiert und deployfähig

  • Erste Teilbereiche der Applikation sind bereits funktional und können getestet werden

  • Ein zentraler Authorization-Service als Middleware wurde eingeführt, der künftig alle Anwendungen übergreifend steuern wird

  • Die Entwicklung ist durch die neue CI/CD-Pipeline spürbar schneller und verlässlicher

  • Die Einführung eines agilen Arbeitsmodus mit Scrum-Elementen wurde sehr gut angenommen und hat die Zusammenarbeit strukturiert

Was noch fehlt, ist der vollständige Umbau der Applikation selbst – aber das Fundament steht. Und wer jemals ein altes Haus renoviert hat, weiß: Wenn das Fundament erst einmal steht, ist der Rest nur noch Fleißarbeit.

Fazit

Erfolg in der Softwareentwicklung misst sich nicht allein daran, wie schnell man etwas Neues bauen kann. Manchmal ist es ein größerer Erfolg, das Bestehende so gut zu kennen, dass man es sinnvoll transformieren kann. Der Weg von einer etablierten On-Premise-Lösung hin zu einer modernen Cloud-Plattform ist lang – aber lohnenswert.

Und während der alte Monolith langsam, aber sicher in seine modulare Zukunft überführt wird, entsteht nicht nur eine neue Architektur – sondern auch eine neue Art, Software gemeinsam zu denken, zu entwickeln und zu betreiben.

Nach oben scrollen

Vielen Dank

Wir melden uns zeitnah zurück.