Wartbarkeit und Betreibbarkeit
Einordnung
Die Einsatzsoftware wird zunächst als ehrenamtliches Projekt entwickelt. Ein dauerhafter Betrieb ausschließlich durch Ehrenamtliche ist jedoch nicht realistisch.
Spätestens mit dem produktiven Einsatz der Software muss der Betrieb durch hauptamtliche Strukturen unterstützt werden. Gleichzeitig soll die Weiterentwicklung weiterhin maßgeblich durch das Ehrenamt mitgestaltet werden können.
Dieses Dokument beschreibt die organisatorischen und technischen Randbedingungen für Wartbarkeit und Betreibbarkeit des Systems.
Diese Randbedingungen sind eine wichtige Grundlage für spätere Entscheidungen über Architektur, Technologien und Programmiersprachen.
Rollenmodell
Für Entwicklung, Betrieb und Support wird langfristig ein mehrstufiges Modell angenommen.
Ehrenamt
Das Ehrenamt übernimmt primär:
- konzeptionelle Weiterentwicklung
- Entwicklung neuer Funktionen
- fachliche Anforderungen aus dem Einsatz
- Unterstützung bei komplexeren Fehleranalysen
Das Ehrenamt bildet damit langfristig einen wesentlichen Teil der Entwicklergemeinschaft.
Hauptamt
Das Hauptamt übernimmt insbesondere:
- operativen Systembetrieb
- Benutzer-Support
- Fehleranalyse im täglichen Betrieb
- technische Wartung der Infrastruktur
- Koordination von Updates
Der Betrieb muss daher mit den Ressourcen und Qualifikationsprofilen einer Bundesbehörde realistisch durchführbar sein.
Supportstruktur
Langfristig wird ein Supportmodell erwartet, das mehrere Ebenen umfasst:
First Level Support
- durch hauptamtliche Strukturen
Second Level Support
- durch technisch besonders versierte Ehrenamtliche
Third Level Support
- durch Entwickler des Systems
Dieses Modell ist im Behördenumfeld üblich und ermöglicht eine klare Trennung zwischen Betrieb und Entwicklung.
Betrieb durch eine Bundesbehörde
Das System soll langfristig innerhalb der Organisation selbst betrieben werden.
Ein Betrieb durch zentrale IT-Dienstleister des Bundes, wie etwa das ITZ Bund, ist aufgrund der besonderen Anforderungen einer Einsatzsoftware nicht zwingend zu erwarten.
Das System muss daher so gestaltet sein, dass es auch durch organisationsinterne IT-Strukturen betrieben werden kann.
Wichtige Eigenschaften sind daher:
- nachvollziehbare Architektur
- überschaubare Betriebsumgebung
- einfache Deployment-Prozesse
- klare Dokumentation
Komplexe oder schwer wartbare Architekturen erhöhen das Risiko langfristiger Betriebsprobleme erheblich.
Langfristiger Betrieb
Im Gegensatz zu vielen klassischen Softwareprojekten hat Einsatzsoftware häufig eine sehr lange Lebensdauer.
Solange die Organisation die Software benötigt, muss sie auch betrieben und weiterentwickelt werden können.
Dies führt zu mehreren wichtigen Anforderungen:
- langfristige Wartbarkeit
- stabile Technologien
- möglichst geringe Abhängigkeit von kurzlebigen Frameworks
- gute Dokumentierbarkeit der Systemstruktur
Technologische Entscheidungen müssen daher immer auch unter dem Gesichtspunkt der langfristigen Pflege betrachtet werden.
Verfügbarkeit von Entwicklern
Die Einsatzsoftware wird langfristig ein sehr komplexes System darstellen.
Das THW besitzt eine große Bandbreite an Fachaufgaben und Einsatzszenarien, die sich in der Software abbilden müssen.
Daraus ergeben sich hohe Anforderungen an die Weiterentwicklung.
Wichtig ist daher insbesondere:
- große Entwicklergemeinschaften
- gute Verfügbarkeit von Fachpersonal
- große Zahl verfügbarer Entwickler auf dem Arbeitsmarkt
- breite Dokumentations- und Wissensbasis
Technologien mit sehr kleinen Entwicklercommunities stellen ein erhebliches Risiko für langfristige Projekte dar.
Einbindung des Ehrenamts
Die Beteiligung ehrenamtlicher Entwickler stellt eine große Chance dar, bringt aber auch besondere Anforderungen mit sich.
Typische Eigenschaften ehrenamtlicher Mitarbeit sind:
- begrenzte Zeitressourcen
- unterschiedliche Erfahrungsniveaus
- wechselnde Beteiligung über die Jahre
Technologien sollten daher folgende Eigenschaften aufweisen:
- gut verständliche Architektur
- niedrige Einstiegshürden
- gute Lernressourcen
- große Community
Dies erleichtert es neuen Mitwirkenden, sich in das Projekt einzuarbeiten.
Konsequenzen für technische Entscheidungen
Aus den beschriebenen Rahmenbedingungen lassen sich mehrere grundsätzliche Anforderungen ableiten.
Technologien sollten möglichst:
- langfristig stabil sein
- über große Entwicklergemeinschaften verfügen
- in Behördenumgebungen gut etabliert sein
- eine gute Dokumentationsbasis besitzen
- von vielen Entwicklern verstanden werden können
Technologien mit sehr kleinen Communitys oder hoher Spezialisierung können im Einzelfall zwar technisch interessant sein, erhöhen jedoch das Langzeitrisiko eines Projekts erheblich.
Diese Überlegungen sind insbesondere bei der späteren Auswahl von Programmiersprachen, Frameworks und Architekturstilen zu berücksichtigen.
Zusammenfassung
Die Einsatzsoftware muss sowohl durch ehrenamtliche Entwickler als auch durch hauptamtliche Strukturen weiterentwickelt und betrieben werden können.
Dies führt zu folgenden zentralen Anforderungen:
- langfristig wartbare Architektur
- überschaubare Betriebsumgebung
- Technologien mit großen Entwicklergemeinschaften
- gute Dokumentierbarkeit
- klare Trennung zwischen Entwicklung und Betrieb
Diese Anforderungen bilden eine wichtige Grundlage für spätere Architektur- und Technologieentscheidungen.
