System-Audit und IT-Sanierung: Verschaffen Sie sich Klarheit

System-audit und IT-Sanierung

Zahlreiche Altsysteme müssen entkernt, Software und Daten auf eine stabile und zukunftsfähige IT-Lösung gehoben werden. Sanierung ist angesagt. Ein stabiles, gut wartbares, gut erweiterbares und gut dokumentiertes IT-System ist das Ergebnis eines gelungenen Sanierungsprojekts.

Veraltet, sanierungsbedürftig und marode: So lautet das Urteil über viele Kernsysteme in deutschen Unternehmen. Ihre Sanierung beansprucht einen großen Teil der IT-Budgets in den nächsten zwei Jahren, sagt eine aktuelle Lünendonk-Studie (siehe: Der Markt für IT-Beratung und IT-Service in Deutschland vom Juni 2015, [1]). Die Fragen vieler CIOs vor einer -Sanierung ähneln sich: Sind Systeme ausbaufähig für neue fachliche Anforderungen? Unterstützen sie neue Geschäftsstrategien? Verkraften sie mehr Nutzer? Ist die Anwendung fit für den Betrieb in der Cloud? Was ist mit der Wartbarkeit der Systeme? Lassen sich neue Technologien integrieren? Welche Hotspots gibt es derzeit? Wo haben sich technische Schulden aufgebaut? Lohnt sich eine Sanierung der Systeme?

Diese Fragen stehen in der frühen Phase einer Systemsanierung an. Eine umfassende Analyse ist Basis für die Entscheidung, das sogenannte System-audit: Soll das System saniert, vollständig neu gebaut oder durch ein kommerzielles Off-the-shelf-Produkt ersetzt werden?

Ziel ist die ganzheitliche Sicht auf das IT-System. Gerade während der frühen Phase der Sanierung ist es unerlässlich, das System aus unterschiedlichen Blickwinkeln zu betrachten. Wie steht es um die Code- und Architektur-Qualität? Welche Rahmenbedingungen galten hinsichtlich IT-Organisation und Entwicklungsprozess, als das System realisiert wurde? Deckt es die gewünschte Fachlichkeit noch ab? Ein erfahrener Auditor arbeitet neben den technischen Fragen auch die zukünftigen Anforderungen des Unternehmens heraus. Ein unbefangener Blick von außen verhilft zu einem objektiven Audit-Ergebnis.

In unseren System-audits hat sich die Analyse von fünf Sichten bewährt:

  1. Künftige Anforderungen: Was sind die wichtigsten Vorhaben der nächsten Jahre? Wie komplex sind sie und wie groß ist der Bedarf an diesen Anforderungen tatsächlich? Die Ergebnisse schärfen das Ziel des Audits.
  2. Fachliche Sicht: Um die fachliche Architektur des Systems zu definieren, analysiert das Audit-Team mit dem fachlich Verantwortlichen sowohl Entitäten, Kernprozesse und Aufgaben des Systems als auch die Ein- und Ausgabedaten. Das fachliche Architekturbild definiert den heutigen Soll-Zustand der Software aus fachlicher Sicht.
  3. Technische Sicht: Aus technischer Sicht werden die Architektur- und die Code-Qualität, die Schnittstellen zu anderen Systemen und die darunter liegenden Technologien analysiert. Geprüft wird auch, wie weit die fachliche Architektur technisch umgesetzt wurde. Das Auditteam betrachtet gemeinsam mit den Entwicklern die Hotspots des Systems bei Code-Walkthroughs.
  4. Entwicklungsprozess: Die Sicht auf den Entwicklungsprozess zeigt, wie Fachabteilung, Business-Analysten, Entwicklungsteam, Testteam und Betrieb miteinander arbeiten. Die Auditoren prüfen, ob alle Rollen adäquat besetzt und alle benötigten Artefakte vorhanden sind.
  5. Betrieb: Aus Betriebssicht werden sämtliche Aspekte wie Skalierung, Lastverteilung, Ausfall- und Zugriffsicherheit und Einhaltung der SLAs beleuchtet. Das Auditteam untersucht, ob das Betriebsmodell für die fachlichen und technischen Anforderungen angemessen ist.

Während des Audits ist eine enge Zusammenarbeit der Stakeholder wichtig. Das gilt für alle Beteiligten aus den IT-Bereichen, aus den Fachbereichen und von externen Dienstleistern. Für valide Ergebnisse sind die unterschiedlichen Sichten wichtig. Ein spontanes System-audit, womöglich während der Urlaubszeit? Lieber nicht!

Abbildung 1: Zwischen Wartungshölle und Over-Engineering: der ideale Weg für die Weiterentwicklung des IT-Systems.

Abbildung 1: Zwischen Wartungshölle und Over-Engineering: der ideale Weg für die Weiterentwicklung des IT-Systems.

Ein standardisiertes Vorgehen schafft Sicherheit. Das Audit läuft nach einem standardisierten Verfahren ab. Darin sind alle Aktivitäten, Ergebnisdokumente und Termine definiert. Aus unserer Erfahrung hat es sich bewährt, ein Einzelsystem in einer festgelegten Laufzeit von maximal drei Wochen zu auditieren. Zielführend und effizient wird ein Audit, wenn Zeitaufwand und Aufgabenverteilung durch eine konkrete, tagesgenaue Planung festgelegt sind. Schon vor dem Start des Audits ist klar, wer an welchen Terminen zu welchem Thema teilnehmen wird. Die offene Kommunikation über den Zeitplan vor dem Auditbeginn vermeidet Unsicherheiten und Missverständnisse bei den Beteiligten. Denn jeder kennt seinen eigenen Beitrag und den aller anderen.

Die Erwartungen des Auftraggebers abzufragen ist ein zentraler Punkt der Auditvorbereitung. Oft berichten Kunden, dass ihre Systeme auditiert wurden, am Ende jedoch zentrale Fragen offen geblieben sind. Das lässt sich vermeiden, wenn das Auditteam die Kernfragen der Stakeholder bereits in der Vorbereitungsphase abfragt. Die Antworten darauf fließen in den Ergebnisbericht und die Abschlusspräsentation ein.

Einer der wichtigsten Meilensteine während des Audits ist die Zwischenpräsentation: Hier gibt das Auditteam eine erste Einschätzung der Ergebnisse aus der Analysephase ab. Sie setzt den Ton für die Abschlusspräsentation – mit der Chance, das Vorgehen zu justieren.

Abbildung 2: Die Software-Karte zeigt in einer Stadt-Metapher, wo bauliche Maßnahmen fällig sind.

Abbildung 2: Die Software-Karte zeigt in einer Stadt-Metapher, wo bauliche Maßnahmen fällig sind.

Ein gut sortierter Werkzeugkasten ist Voraussetzung. Für die technischen Analysen sind professionelle und erprobte Werkzeuge unerlässlich. Tools können das Lesen, Verstehen und Bewerten von Source-Code durch Menschen nicht vollständig ersetzen. Sie helfen aber dabei, Hotspots schnell zu identifizieren und die Code-Analyse auf die kritischen Bereiche zu lenken.

Um die Komplexität und die innere Struktur eines Systems für Fachfremde verständlich zu machen, hat sich Software-Visualisierung bewährt, eine bildliche Darstellung in Form von Analogien. Sie zeigt übersichtlich, wo im System im Laufe der Zeit technische Schulden aufgebaut wurden.

Unser bevorzugtes Mittel zur Visualisierung sind die Software-Karten wie in Abbildung 2 zu sehen ist [2]. Sie sind ein Gemeinschaftsprojekt von der BTU Cottbus-Senftenberg, BMW und MaibornWolff. Die Karten zeigen Brennpunkte im Code und Kandidaten für die Detailanalyse. Code-Einheiten wie beispielsweise Klassen werden als einzelne Gebäude dargestellt. Paketstrukturen werden als Stadtbezirke gezeigt. Mit Grundfläche, Höhe und Farbe der Gebäude können verschiedene Dimensionen, etwa Lines of Code, zyklomatische Komplexität, Nesting Level oder die Änderungshäufigkeit abgebildet werden. Die Darstellung beschränkt sich nicht auf die statische Codeanalyse: Alle Entwicklungsaktivitäten lassen sich im Zeitraffer visualisieren. Die Software-Karten ersetzen allerdings nicht das Analysegespräch mit dem Software-Ingenieur oder dem Architekt. Aus diesen Werkzeugen lässt sich auch keine automatisierte Qualitätseinschätzung ableiten.

Ein gut sortierter Audit-Werkzeugkasten bringt weitere Instrumente mit, zum Beispiel Tools zur Analyse von technischen Abhängigkeiten, zum dynamischen Verhalten des Systems zur Laufzeit oder zur Einhaltung von Coding Guidelines. Abgerundet wird die Tool-Box mit einem umfangreichen Fragenkatalog und methodischem Wissen für die Durchführung von Audit-Workshops.

 

Erfolgsfaktoren fürs System-audit

  • Ein System-audit erzielt gute Ergebnisse, wenn es unterschiedliche Blickwinkel berücksichtigt. Neben der technischen Code- und Architekturqualität müssen auch die künftigen Anforderungen, die Fachlichkeit, der Entwicklungsprozess und die Betriebssicht einbezogen werden.
  • Ein gutes System-audit dauert nicht lange, ist aber intensiv. Zeitlich begrenzte, straff organisierte Workshops sorgen für hohe Effizienz und Konzentration auf die Kernfragen.
  • Die Qualität der Ergebnisse wird durch standardisierte Werkzeuge und die Erfahrung der Auditoren gesichert.
  • Eine bildliche Darstellung des IT-Systems, zum Beispiel mit Software-Karten, macht Zusammenhänge für alle Beteiligten sichtbar und einfacher zu verstehen. Hotspots werden schnell identifiziert und können im Detail analysiert werden.
  • Der Nutzen eines System-audits ergibt sich nicht nur aus der Erkenntnis über den Ist-Zustand des Systems, sondern aus einer klaren Perspektive, wie mit dem betrachteten System und den Findings aus dem Audit zu verfahren ist – und einer ersten Schätzung, was die Maßnahmen kosten werden.

 

Konkreter Sanierungsplan für greifbare Ergebnisse. Aus der fundierten Analyse der Ist-Situation leitet das Auditteam klare Handlungsempfehlungen und einen Sanierungsplan ab. Sie beschreiben, wie das System in einen Zustand gebracht werden kann, der den Anforderungen entspricht. Die Handlungsempfehlungen bereiten zudem die Entscheidung vor, ob das System saniert, vollständig neu gebaut oder durch ein Off-the-shelf-Produkt ersetzt werden soll.

Aus den Handlungsempfehlungen werden konkrete Maßnahmen abgeleitet und mit einem Kosten-Nutzen-Faktor bewertet. Den Abschluss des Sanierungsplans bildet die Roadmap, die die Maßnahmen priorisiert und in eine zeitliche und logische Abfolge bringt. Eine erste Aufwandsindikation zeigt die zu erwartenden Aufwände.

Ein stabiles, gut wartbares, gut erweiterbares und gut dokumentiertes IT-System sind das Ergebnis eines gelungenen Sanierungsprojekts.

 


autor_rene_gletterautor_venko_kisev

René Gletter (links) und Venko Kisev leiten den Bereich IT-Sanierung bei MaibornWolff. Sie haben Systeme bei Unternehmen wie Daimler, DLR, Flughafen München, Dräxlmaier und Lichtblick auditiert.

 

[1] https://luenendonk.de/pressefeed/luenendonk-studie-2015-der-markt-fuer-it-beratung-und-it-service-in-deutschland
[2] https://www.maibornwolff.de/sites/default/files/news/files/business-technology-3-2013_0.pdf
Titelbild: © Stokkete/shutterstock.com