Ein Kunde wendet sich an eine Versicherung, wenn er in der Zukunft einen Risikofall, z. B. Arbeits­unfähigkeit, sieht, dessen Auswirkung er begrenzen will. Dazu schließt er einen Vertrag mit einer Versicherung ab und bezahlt Abschlusskosten sowie eine regelmäßige Prämie. Wenn der Schadensfall eintritt, hat er gut vorgesorgt. Falls nicht, ist die Prämie verloren­­.

Auch ein Softwarearchitekt muss beim Entwurf einer Architektur einen Blick in die Zukunft wagen und ggf. Risiken begrenzen. Welche Risiken das sind, wie man sie begrenzen kann und wie die Prämie aussieht, die man dafür bezahlt, wird in diesem Artikel beschrieben.

Ein Softwarearchitekt entwirft eine neue Architektur auf Basis des State-of-the-Art. Weiterhin wird er die aktuellen Gegebenheiten wie Organisations­standards in Technologie, Methoden und Umfeld berücksichtigen. Aber zusätzlich wird er einen Blick in die Zukunft werfen und versuchen zu ergründen, welche technologischen und fachlichen Änderungen auf die geplante Anwendungen zukommen können, das wird u. U. große Auswirkungen auf die Funktion oder die Wartung der Anwendung haben und kann so weit gehen, dass eine Anwendung bei falscher Planung aus dem Betrieb genommen werden muss. Die folgende Liste enthält einige typische Risiken, die ein Softwarearchitekt im Blick behalten sollte:

Technologische Risiken

  • Software geht aus der Wartung
  • Ein bestimmter thematischer Bereich der Software soll im Verlauf der Entwicklung voraussichtlich ausgewechselt werden

Fachliche Risiken

  • Die Nutzerzahlen steigen stärker als erwartet
  • Änderungen in den Prozessen erfordern, dass bestehende Services weiter aufgespalten werden

Organisatorische Risiken

  • Ressourcen stehen in der Zukunft nicht mehr zur Verfügung

Personelle Risiken

  • Know-How-Träger in der Entwicklung wandern ab und müssen durch neue Kräfte ersetzt werden.

All diese Risiken wollen betrachtet und – sofern man nicht die Entscheidung trifft, sie zu ignorieren – gemanaged werden. Erscheinen einem die für einen Risikoeintritt anfallenden Kosten hoch und ist die Wahrscheinlichkeit des Eintritts des Risikos groß genug, so ist der Softwarearchitekt gut beraten, Vorsorge zu treffen. Betrachten wir z. B. das Risiko, das eine verwendete Library aus der Wartung gehen wird. Um in diesem Fall flexibel reagieren zu können, wird der Softwarearchitekt per Adapter-Pattern einen Schutzwall um die verwendete Library ziehen. Anstatt die Klassen der Library direkt zu verwenden, müssen die Entwickler die Klassen per Factory erzeugen und dürfen niemals direkt mit den Klassen der Library arbeiten. Kommt dann der Fall, dass die Software aus der Wartung geht, ist man gut vorbereitet und kann eine Ersatzlibrary einsetzen, indem man die Aufrufe innerhalb der Adapter auf die neue Library anpasst. Der „Schaden“ ist damit klein geblieben und beschränkt sich auf das unvermeidbar Notwendige. Was sind die Abschlusskosten und die Prämie, die für dieses Vorgehen zu bezahlen sind:

Abschlusskosten

  • Erstmaliges Design der Lösung
  • Dokumentation und Beschreibung der zu verwendenden Lösung
  • Ergänzung der Schulung der Mitarbeiter bzw. Bekanntmachen der Lösung

 

Prämie

  • Komplexere Entwicklung durch Verwendung der Factory
  • Ggf. umfangreichere Qualitätssicherung, falls sich nicht alle Einsatzregeln maschinell prüfen lassen bzw. keine Code-Checker-Tools eingesetzt werden können
  • Komplexerer Debugging-Prozess, da auch die Adapter-Klassen durchlaufen werden müssen

Für andere Risiken findet man leicht analoge Beispiele für die Abschlusskosten und die zu bezahlende Prämie.

Hat man nur ein oder zwei solcher Risiken, bleiben die Maßnahmen überschaubar, aber in einem typischen Softwareprojekt findet man oftmals deutlich mehr solcher Punkte. Klassiker sind wechselnde GUI-Technologien, wechselnde Backend-Technologien, neue Major-Version-Wechsel von bestehenden Libraries/Technologien.

Auf diese Art und Weise kann aus einer Anwendung ein komplexes Projekt mit vielfältigen Regelungen entstehen und – wie im richtigen Leben – kann man sich auch sehr leicht überversichern. Dies führt dazu, dass man Monat für Monat horrende „Prämien“ in Form von Entwicklungs- und Wartungsaufwand zahlt, der gar nicht gebraucht wird. Und wie im richtigen Leben hilft auch hier nur, sich möglichst umfassend zu informieren und dann auf das Wesentliche zu konzentrieren. Sprechen Sie also mit der dem fachlichen Auftraggeber und versuchen Sie herauszufinden, welche Änderungen in den nächsten Jahren auf Sie zukommen könnten und wie hoch die Wahrscheinlichkeit dafür eingeschätzt wird. Für die technologischen Risiken gehen Sie analog vor und befragen z. B. die Architektur/Verfahrensabteilung. Für die möglichen Änderungen sollten Sie einschätzen, welche Kosten auf Sie zukommen, wenn Sie den Fall in der Architektur nicht berücksichtigen. Dagegen halten Sie die „Abschlusskosten“ und „Prämien“, die sie zu zahlen hätten, wenn Sie dieses Risiko in der Architektur berücksichtigen würden. Das sollte einen guten Anhaltspunkt dafür ergeben, wie sinnvoll es ist, Maßnahmen zu ergreifen oder auch nicht.

In diesem Sinne wünsche ich Ihnen einen sinnvollen Risikoschutz, den Ihr Auftraggeber sicherlich sehr loben wird, wenn Änderungen viel schneller möglich sind, als es erwartet wurde.

 

Copyright 2013 Friedrich Budde. Alle Rechte vorbehalten.