Änderungsanalyse

Das Muster Änderungsanalyse beschreibt einen analytischen Ansatz zum Erkennen, Bewerten und Priorisieren der Änderungstreiber eines Softwaresystems.

Das Muster analysiert die Ist-Situation und verschafft einen Überblick über die wichtigsten Baustellen einer Legacy-Software. Das Muster verwendet neben dem Begriff Änderungstreiber die Begriffe Änderungsdruck, Änderungsursache und Lösungskomplexität:

  • Änderungstreiber: Benennt den Grund für eine notwendige Änderung an einem Legacy-System.

  • Änderungsdruck: Bewertet die Höhe des durch den Änderungstreiber ausgelösten Drucks.

  • Änderungsursache: Benennt die maßgeblichen Ursachen für den durch den Änderungstreiber erzeugten Druck.

  • Lösungskomplexität: Bewertet die Komplexität der zur Verringerung des Drucks erforderlichen Lösungen.

Die Bewertung der Druck- / Lösungskomplexitäts-Kombinationen ermöglicht die Priorisierung erforderlicher Modernisierungsmaßnahmen.

Beispiel

Änderungstreiber: Funktionalität

Änderungsdruck: hoch

Ursachen:

  • Schlechte Codequalität (Lösungskomplexität: hoch)

  • Mangelnde Dokumentation (Lösungskomplexität: mittel)

  • Fehlende Entwickler:innen (Lösungskomplexität: gering)

Der Änderungstreiber Funktionalität erzeugt hohen Druck. Jede Änderung dauert lange, verursacht Regressionen und ist entsprechend risikoreich. In der Folge wurde die Anwendung in den letzten Jahren immer seltener angepasst, so dass Geschäftsprozesse nur noch unzureichend unterstützt werden. Als Ursachen für die unzureichende Funktionalität der Anwendung werden deren schlechte Codequalität, mangelnde Dokumentation und fehlende Entwickler:innen identifiziert. Die Lösungskomplexitäten dieser Ursachen variieren von hoch bis gering. Das Problem der fehlenden Entwickler:innen lässt sich vergleichbar einfach lösen, z.B. durch das Zahlen überdurchschnittlicher Gehälter. Hingegen gestaltet sich die Verbesserung der Codequalität deutlich komplexer.

Vorgehen

Durchführung eines Workshops mit relevanten Stakeholdern: Benutzer:innen, Techniker:innen, Administrator:innen, Product Owner, Projektleiter:innen, etc.

Auf einem Whiteboard werden mögliche Änderungstreiber auf einzelnen Post-its gesammelt. Die Teilnehmenden wählen reihum je einen Treiber und sortieren diesen gemäß des wahrgenommen Drucks auf einer horizontalen Achse. Der nächste Teilnehmende kann entweder einen noch nicht einsortierten Treiber neu einsortieren, oder einen der bereits platzierten Treiber umsortieren.

In einer zweiten Runde werden die priorisierten Änderungstreiber auf ihre Ursachen hin analysiert. Es geht darum herauszufinden, warum der jeweilige Änderungstreiber den wahrgenommen Druck erzeugt. Häufig liegen die Ursachen auf der Hand und kommen in der Diskussion schnell auf den Tisch. So ist der Grund für "unzureichende Funktionalität" fast immer mangelnde Wartbarkeit, die bei weiterer Analyse auf schlechte Codequalität oder fehlende Testautomatisierung zurückzuführen ist. Die Lösungskomplexität der Ursachen wird bewertet.