So sieht das Vorgehen bei Softwaremodernisierungsprojekten aus

Genau wie wir Menschen unterliegen auch Softwaresysteme einem natürlichen Alterungsprozess. An einem bestimmten Punkt sind die Auswirkungen veralteter Software (Legacy Software) für das Unternehmen nicht mehr tragbar. Dann sollte schnell gehandelt werden, um die Softwarelandschaft für die weitere Arbeit fit zu halten. Modernisierungsprojekte mit einem kompetenten Partner bringen die Performance des Systems wieder zu Hochleistungen und machen es den Anwender:innen einfacher, ihre Arbeit damit zu verrichten. Ein aktuelles Praxisbeispiel zeigt, wie der Modernisierungsprozess und die Zusammenarbeit erfolgreich gestaltet werden können.
Software enthält ständig neue Technologien und ist genauso schnelllebig, wie es ihre jeweiligen Einsatzbranchen von ihr verlangen. Junge Programmierer: innen wollen mit aktueller Software arbeiten und damit stets auf dem neuesten Stand bleiben. Die technischen Schulden einer Software erhöhen über die Jahre hinweg auch die Probleme in Unternehmen. Werden Frameworks über längere Zeit hinweg nicht aktualisiert, erhöht sich die Wahrscheinlichkeit von Sicherheitslücken im Datensystem. Dies gibt Hacker:innen freien Zugang zu vertraulichen Daten. Ein Szenario, das Unternehmen in jedem Fall vermeiden wollen. Dabei hilft Softwaremodernisierung. Wie bei Standardentwicklungsprojekten folgen wir hier einem einheitlichen Vorgehen, um die Zielsetzung der Kund:innen erreichen zu können. Dabei behalten wir die Individualität der Kund:innen stets im Blick.

Analyse der Systemlandschaft

Bevor es konkret um das zu modernisierende System geht, sollte zuerst ein Blick auf die Systemlandschaft, in welche dieses eingebettet ist, erfolgen. Welche Schnittstellen gibt es zu anderen Systemen? Wie sieht die Serverstruktur aus und wie muss ein neues System in die Systemlandschaft eingebettet werden? Dies sind zentrale Fragen, die es zwischen IT Consultants und Unternehmen im Vorfeld abzuklären gilt. Des Weiteren muss zunächst ein Blick auf die bereits vorhandenen weiteren Systeme geworfen und deren Funktionalität geprüft werden, falls Verbindungen zum betroffenen System bestehen. Dies kann zum Beispiel bei CRM-Lösungen (Customer-Relationship-Managementsystemen) der Fall sein. Bei all diesen Analysen geht es vorrangig darum, Risiken festzustellen, die möglicherweise von anderen Systemen auf das Betroffene wirken.
Analyse des Softwaresystems
Analyse des Ist-Zustandes
Gemeinsam mit den Verantwortlichen und Anwender:innen des Softwaresystems wird bei der Erstbesichtigung zunächst ein genauer Blick auf die aktuell umgesetzte Technologie der Software geworfen. Besonders die Datenhaltung, Berechtigungslogiken und die Frage, ob aus dem System Informationen nach außen verschickt werden, spielen eine Rolle. Die Anwender:innen der Software berichten über bereits bekannte Schmerzpunkte und Fehler in der aktuellen Handhabung. Damit einher geht die gemeinsame Erarbeitung eines Zielwunsches. Welche Verbesserungen soll die Modernisierung erzielen und welche Funktionen erhofft man sich von der neuen Software, die aktuell noch nicht oder nur eingeschränkt möglich sind?

Aufteilung der Software in Module und Beurteilung

Um nun ein Stück tiefer in die praktische Arbeit zu tauchen, wird die bestehende Software in funktionale Module aufgeteilt, die im Anschluss einzeln umgesetzt und betrachtet werden können. Gerade bei kleineren Softwarelösungen kann es passieren, dass die gesamte Lösung ein ganzes Modul darstellt. Oftmals kann es aber auch sinnvoll sein, statt der Neuentwicklung eines Moduls auf ein Standardprodukt zurückzugreifen. Dies ist vor allem dann der richtige Weg, wenn dieses Modul nicht zum USP (Unique Selling Proposition) des Unternehmens beiträgt. Dadurch erhöht sich zwar die Komplexität der Systemlandschaft, für Kund:innen und die Entwickler :innen ist dies aber meist die kostengünstigere Lösung.
Priorisierung der Umsetzung der Module
Das Ziel dabei: die Module sollen möglichst schnell umgesetzt werden. Hierzu braucht es eine Prioritätenliste, um herausfinden zu können, welche Module am meisten Probleme verursachen und daher am zügigsten ausgetauscht werden sollten. Hierbei hilft im Idealfall eine Entscheidungsmatrix, um die Entscheidung zu untermauern. In diese Matrix können unternehmensspezifische Kriterien und natürlich auch Standardkriterien wie Stabilität, Ausfallrisiko und die Umsetzungskomplexität aufgenommen werden. Einen Quick Win erzielen IT Consultants und Architekten meist mit dem Start eines kleineren Moduls. Damit wird die Akzeptanz bei Kund:innen und Anwender:innen gestärkt. Wie auch in anderen Branchen weckt das erfolgreiche Umsetzen Vertrauen in das Können der Entwickler bei der Modernisierung. Schließlich werden mit Softwaremodernisierungen Ziele wie Effizienz- und möglicherweise Gewinnsteigerungen angestrebt. Ein vertrauenswürdiger Partner ist hierfür essenziell.

Anforderungen, Funktionen und UI/UX Design der Software

Weiter geht es mit der Feststellung der jeweiligen Funktionen und Anforderungen an die Lösung. Dies geschieht auf Basis des Altcodes und den Fachbereichen, in welchen die Lösung eingesetzt wird. Hier kommt es auch auf eine gute Vorarbeit die Nutzer:innen der Software an. Diese müssen detailliert aufführen, welche funktionalen Anforderungen sie an die Lösung haben und Praxisbeispiele geben.
Von ebenso großer Bedeutung sind Faktoren wie Reaktionszeit und Laufzeitumgebung. IT Consultants analysieren die Schnittstellen, um daraus abzuleiten, was zur Umsetzung des Moduls noch getan werden muss. Letztendlich spielt auch das Design der Software eine bedeutende Rolle. Vor allem für Anwender:innen sollte das UI/UX Design benutzerfreundlich sein und vor allem ansprechend aussehen. Dies ist bei vielen veralteten Softwaresystemen heutzutage nicht mehr der Fall. Die entsprechenden UI/UX Designer legen zu Beginn ein Framework für das gesamte Projekt fest. In enger Absprache mit den Kund:innen wird dies nach seiner Freigabe aufgesplittet und auf die einzelnen Module angepasst werden. Ein Prototyp wird dabei in jedem Fall erstellt. Durch einen Klickdummy können sich die Andwender:innen live durch den aktuellen Stand der Software testen. Dies ermöglicht ein frühzeitiges Feedback der Anwender:innen an die IT Consultants hinsichtlich dem Status Quo und mögliche positive sowie negative Kritik.

WOGRA Blog | Mit Modernisierung zur Software der Zukunft

Start der Umsetzung von Modulen

Wenn Sie sich fragen, wie lange der gesamte Prozess der Modernisierung dauert, gibt es nur eine Antwort. Die Dauer hängt von der Komplexität des vorhandenen Softwaresystems ab. Je größer das System, desto länger dauert die Neuentwicklung. Wichtig für einen erfolgreichen Zeitplan sind vor allem die richtigen Methoden.

Die Umsetzung erfolgt nach der agilen Entwicklungsmethode SCRUM Heutzutage ist SCRUM aufgrund seiner Agilität eine der bekanntesten Methoden. Der Grund dafür sind seine einfache Struktur und die klar definierten Rollen (Entwickler, Produktverantwortlicher und SCRUM-Master). Dieses Team agiert in der Regel autonom. Durch ihre einfachen Regeln ist die Methode schnell einführbar und sichert somit eine hohe Transparenz beim Projektfortschritt für alle Beteiligten.

Aufbereitung zur Umsetzung und Implementierung

Aus den Analysen und Designergebnissen werden zusammen mit den Kund:innen die Umsetzungstickets formuliert, sodass eine Umsetzung in Sprints möglich ist. Der Umfang eines Sprints werden in einem Sprint Planning zusammen mit dem Team erarbeitet. Hierbei geht es um die Frage, wie viele Tickets insgesamt umgesetzt werden sollen.

Die Implementierung eines Moduls findet abhängig von seiner Komplexität in Sprints statt. Nach jedem Sprint werden den Kund:innen – wie im Scrum-Prozess vorgesehen – die Arbeitsergebnisse vorgestellt und diese können Feedback geben.

Qualitätssicherung und Produktivsetzung

Die QS findet bei der Umsetzung jedes Tickets als fester Bestandteil der „Definition of Done“ statt. Ob alle umgesetzten Tickets zusammen auch funktionieren, wird in einem Integrationstest geprüft. Ist dieser erfolgreich, kann ein Modul produktiv eingeführt werden. Die Qualitätssicherung einer Software ist ein kontinuierlicher Prozess. Vor allem die Testphase der Module spielt dabei eine wichtige Rolle. Die Testpersonen erarbeiten durch einen Regressionstest (Wiederholung von Testfällen, um sicherzustellen, dass bereits getestete Teile der Software nicht auf einmal neue Fehler aufweisen) und einen Integrationstest, die Perfektion der Software.

Sind beide Tests unauffällig, steht der Produktivsetzung sowie der Integration des Moduls in die Softwarelandschaft der Kund:innen nichts mehr im Wege. Ob es nun mit einem weiteren Modul weitergehen soll, liegt in der Entscheidungshand der Kund:innen.

Fallbeispiel der WOGRA AG

Um eine bildlichere Darstellung des oben beschriebenen Modernisierungsprozesses zu schaffen, möchte die WOGRA AG mit einem aktuellen Kundenbeispiel aufwarten. Dabei handelt es sich um eine Software namens „ScanManager“. Die Software wurde in den frühen 2000er Jahren entwickelt und wird aktuell von der WOGRA AG modernisiert. Es handelt sich um ein Tool zur Eignungsdiagnostik von möglichen Arbeitnehmer:innen. Mithilfe einer Eingabemaske können Bewerber:innen sich durch einen Fragenkatalog klicken, deren Ergebnisse dann von Psycholog:innen betrachtet und ausgewertet werden kann.

Mittlerweile ist die Oberfläche komplett veraltet und durch die alten Technologien brauchen Anwender:innen zwischen 2 und 3 Stunden, um sich durch den gesamten Fragenkatalog zu klicken. Außerdem ist durch einige Schmerzpunkte in Software die Bedienung sehr ineffektiv und schwer verständlich. Die Aufgabe der WOGRA AG besteht nun darin, die Handhabung für den Anwender:innen zu verbessern, und durch zukunftsfähige Technologien eine einfach zu wartende Lösung zu entwickeln.