vom BDSH e.V. verifizierter Sachverständiger
Nutzen und Grenzen der KI bei der Verbesserung von Architektur & Code
(In meinem Post wird aus Gründen der Lesbarkeit und Klarheit auf die Verwendung einer gendergerechten Sprache verzichtet.)
Fokus des Artikels: Softwarequalität & Nutzen einer Projektklinik
Welchen Service liefert eine Projektklinik, wie stelle ich dieses Servicecenter auf und welche Leistungen kann ich erwarten?
Im folgenden Artikel möchte ich mich auf einige handwerkliche Aspekte fokussieren.
Warum mein Input zu handwerklichen Aspekten?
Wie ein Maurer kein Hochhaus entwirft, so konzipiert ein Programmierer kein IT-System. Diese Aufgabe übernimmt der IT-Architekt oder der Entwicklungsleiter, der im Gegensatz zum Bauarchitekten (der selten als Maurer begonnen hat) häufig seine Karriere als Entwickler gestartet hat. Viele Programmierer sind auch Quereinsteiger und haben weder ein Hochschul- noch ein Fachschulstudium absolviert. Warum dies für ihre Tätigkeit nicht zwingend erforderlich ist, wird im Folgenden erläutert.
Den handwerklichen Aspekt bei der Softwareerstellung sehe ich im Codieren, also in der Umsetzung einer Spezifikation durch einen Entwickler. Dieser arbeitet in einer Produktionsumgebung – der Softwareentwicklungsumgebung bzw. dem Framework – und verwendet eine bestimmte Programmiersprache. Stellt man einem motivierten Menschen mit Interesse, Mindestausbildung und Grundkenntnissen in der Softwareentwicklung
a) ein gutes Template und
b) einige einführende Workshops zur Durchsicht vorhandenen Codes zur Verfügung, kann dieser Mensch sofort als Entwickler eingesetzt werden.
Wer Entwicklungsteams geleitet hat, kennt die erheblichen Unterschiede in der Qualität und Quantität der Arbeitsergebnisse, die verschiedene Personen pro Zeiteinheit leisten.
Bei der Untersuchung einer vorhandenen Software in einer Projektklinik zur Bewertung von Qualität und Optimierungspotenzialen lassen sich sehr unterschiedliche Ergebnisse feststellen – selbst innerhalb der verschiedenen Komponenten eines einzigen Systems.
Wer traut sich zu, die Qualität einer Software einzuschätzen? Ist es eine unbedingte Voraussetzung, die Entwicklungsumgebung und die Sprache perfekt zu beherrschen? Müssen die Mitarbeiter der Projektklinik alle Frameworks und Sprachen beherrschen?
In meinem Hinweis zur Nutzung von KI habe ich angedeutet, dass jeder einen sehr preiswerten Mitarbeiter (ca. 20$/Monat) nutzen kann, um das Coding zu optimieren. Tatsache ist jedoch, dass heutige KI angelernt werden muss, um gute Ergebnisse zu liefern. Dies kann in einem Ping-Pong-Prozess erfolgen, bei dem ich der KI immer wieder neue Spezifikationen und Hinweise sowie das zu analysierende System hochlade. Ich prüfe die Ergebnisse und gebe der KI durch weiteren Input die Möglichkeit, mir bessere Analysen zu liefern.
Diese IT-Expertise kann von einem externen Experten für das Framework, dem Entwicklungsleiter, dem Softwarearchitekten und gegebenenfalls einem Spezialisten für die jeweilige Programmiersprache (unter Führung durch den IT-Sachverständigen der Projektklinik) geliefert werden.
Es ist erstaunlich, wie schnell heutige KI die wesentlichen Aspekte erfasst – also innerhalb eines Chats lernt – und welche wichtigen Ergebnisse analysiert werden können.
Wie haben wir so etwas früher umgesetzt? (Anfänge meiner Projektklinik)
Hier eine kurze Geschichte dazu: Für die Kalkulation der Umsetzung einer riesigen Cobol-Anwendung auf eine moderne Plattform mussten wir den Aufwand für die Portierung auf die neue Plattform und Programmiersprache bestimmen.
Unser externer Profi, Heiko L., schrieb damals ein rekursives Programm, dass über die gesamte Verzeichnisstruktur lief und verschiedene aufwandsrelevante Kennzahlen aus allen Codesegmenten ermittelte (z.B. Anzahl der Module, Codezeilen, „unschöne“ Sprungbefehle usw.).
Aufwand: ca. 2 Tage - zum Tagessatz eines Experten!
Nach der Auswertung der Analyse konnten wir den Aufwand kalkulieren und ein wettbewerbsfähiges Angebot erstellen. Hier würden wir heute KI einsetzen.
Wenn man ein Softwarehaus kaufen möchte, welche Werte bestimmen den Preis?
Im Fokus stehen finanzielle Kennzahlen, der Kundenstamm, der Mitarbeiterstamm, die Wartungsverträge und die Entwicklungsrisiken.
Zum Thema Wartungsverträge und Entwicklungsrisiken stellt sich die Frage: Kann das Unternehmen auf Basis seiner Softwareplattform aktuelle Wartungsverträge und SLAs wirtschaftlich erfüllen und kann es schnell auf weitere Anforderungen mit neuen Produkten oder Funktionen reagieren?
Die Basis dafür bilden (neben einer effektiven Organisation) die eingerichtete Entwicklungsumgebung, die Architektur-Bibliotheken, die Funktionsbibliotheken bis hin zur Oberfläche, d.h. die Ergebnisse der bisherigen Entwicklungsarbeiten. Jedes dieser Ergebnisse muss jedoch auf seinen tatsächlichen Wert untersucht werden, es müssen Schwachpunkte und Risiken erkannt und abgebaut werden.
Die Plattform ist neben dem Humankapital das wichtigste Asset eines Softwarehauses bzw. einer IT-Abteilung.
Ein professionelles Asset Management mit Fokus auf die IT-Plattform wird den Unternehmenswert
und die Unternehmensattraktivität systematisch erhöhen. Die Verantwortung für diese Aufgabe muss
einem kompetenten Manager zugewiesen werden.
Auch hier wird KI wertvolle fachliche Hinweise liefern!
Oben wurde angedeutet, wie wir heute mittels KI neue Software erstellen und bestehende Software analysieren und verbessern können. Es wurde aufgezeigt, dass sich ein Softwarehaus intensiv mit seinem Haupt-Asset, nämlich der IT-Plattform, beschäftigen muss.
Hier nun soll der Beitrag der Mitarbeiter des Unternehmens näher betrachtet werden.
Bei komplexeren fachlichen Funktionen ist immer noch die Mitarbeit des Modulverantwortlichen (oder Technical Lead) bzw. des Kundenverantwortlichen erforderlich.
Noch wichtiger ist die Aufgabe des Testens bzw. die Unterstützung z.B. aus der Abteilung „Project Assurance Management“: Funktionen, Ergebnisdaten und Visualisierungen müssen durch Menschen geprüft werden, die ein sehr gutes fachliches Verständnis der Anforderungen an die angestrebte Lösung mitbringen.
Software kann in einer Projektklinik analysiert werden, es können Verbesserungen vorgeschlagen und freigegebene Codesegmente automatisch in einen vorhandenen Code integriert bzw. implementiert werden. Der IT-Sachverständige der Projektklinik muss das Vorgehen mit einem Verantwortlichen aus dem Softwarehaus abstimmen. Key-Player wie Entwicklungsleiter und weitere Manager müssen konstruktiv in den fachlichen Analyseprozess einbezogen werden.
Bei der Überarbeitung komplexerer Fachfunktionen wird der jeweilige Modulverantwortliche bzw. Entwickler hinzugezogen.
Verbesserungen in der vorhandenen Software erhöhen den Wert des Unternehmens.