Einsatz von KI in der Softwareentwicklung

Ein Interview mit Dr. Michael Bark, Principal Consultant bei dem Managed Service Provider COC AG.

 

Wie lange beschäftigt sich die COC AG schon mit KI und wie bewerten Sie aktuell die Situation?

Die COC beschäftigt sich schon geraume Zeit mit den Bereichen Deep Learning und Machine Learning. Seit ungefähr 10 Jahren widmen wir uns verstärkt der Künstlichen Intelligenz in Form von Bilderkennung, Wegoptimierung, Zeitreihenanalyse, Anomalieerkennung sowie der Integration von Sprachassistenten, wie Siri oder Alexa. Denn gerade diese Themen waren und sind für Kunden im Rahmen von Softwareentwicklungsprojekten extrem relevant. Seit ca. 3 Jahren hat der Einsatz von KI und entsprechenden Tools und Methoden in der Softwareentwicklung richtig Fahrt aufgenommen. Insbesondere durch die Large Language Models (LLM) gab es mit ChatGPT einen disruptiven Sprung im Bereich der generativen KI. 

Welche spezifischen KI-Technologien oder -Methoden setzt die COC AG bei der Softwareentwicklung ein?

Das ist inzwischen sehr breit gefächert und betrifft praktisch alle Phasen der Softwareentwicklung.

Es beginnt bei der Anforderungsanalyse. Vorgefertigte generative KI-Modelle unterstützen uns dabei, Anforderungen und bestehende Konzepte aus verschiedenen Kommunikationsmitteln wie Transkripten von agilen Sitzungen, E-Mails, Notizen und Wikis zu erstellen und diese gemäß der Scrum Methodik direkt in User Storys, Epica, Features und Tasks zu dokumentieren bzw. Sie direkt in Azure DevOPs zu überführen.

Im Rahmen der Konzeption und Spezifikation unterstützt uns die KI bei der Modellierung und Optimierung von Softwarearchitektur. Sie kann bei der Auswahl von Designentscheidungen auf der Grundlage von Daten und historischen Informationen mitwirken und die Berücksichtigung von Best Practice-Ansätzen, bereits etablierten Softwarebausteinen und bewährten Architekturpattern gewährleisten.

Im Hinblick auf die Programmierung nutzen unsere Kollegen für die Codegenerierung z.B. Copilot von GitHub. Copilot kann Codeausschnitte, Funktionen und Klassen automatisch generieren oder auch bestehenden Code oder Codeentwürfe vervollständigen, direkt im Codingprozess. Die Copilot KI-Algorithmen können genutzt werden, um den Code zu analysieren und Qualitätsverbesserungen vorzuschlagen, denn sie weisen z.B. auf Code-Stil, Best Practices und potenzielle Fehler hin. Und, was wesentlich ist, die KI identifiziert automatisch Bugs; der Programmierer wird also bei der Fehlererkennung und mit Vorschlägen zur Fehlerbehebung unterstützt. 

Auch im Testing im Sinne der Softwarequalitätssicherung wird die KI immer wichtiger. Sie unterstützt bei der Testfallerstellung und -planung, indem sie Anwendungsfälle identifiziert, Testabdeckungskriterien analysiert und Testfälle generiert, die eine bessere Testabdeckung bieten. KI-gestützte Systeme können auch eine intelligente Priorisierung von Testfällen vornehmen, um sicherzustellen, dass die wichtigsten und kritischsten Tests zuerst ausgeführt werden. Dadurch können Testteams ihre Ressourcen effizienter einsetzen und die Testzyklen verkürzen.

Wir verwenden LLM wie ChatGPT u.a. zur Testdatenerzeugung, um effizient geeignete und beliebig große Testdaten zu generieren sowie Tests in größerem Umfang zu parametrisieren. Testdaten stellen häufig ein Problem dar, insbesondere wenn im Kundenauftrag reale Datensätze zum Einsatz kommen. Hierbei ist die Gefahr einer Datenschutzverletzung und/oder eines Informationssicherheitsvorfalls groß. 

Für die Dokumentation kann Copilot im direkten Bezug zum Programmcode bzw. der Gesamtapplikation die Dokumentation in verschiedenen Sprachvarianten übernehmen. Aber auch ChatGPT kann durch entsprechendes Promption unterstützen und mit Bildgeneratoren wie Stable Diffusion, Midjourney und DALL-E können Abbildungen, technische Architekturzeichnungen und Klassenhierarchien generiert werden. 

In den Phasen Deployment und Betrieb unterstützt KI bei der Überwachung von Anwendungen, der Erkennung von Anomalien und der automatischen Skalierung unterstützen. Testprotokolle, Logdateien und weitere Daten vom System akkumulieren sich zu einem komplexen Informationskonstrukt. KI kann hier durch Mustererkennung, Abgleich mit historischen Daten und Zusammenführung von Querverbinden den Supportprozess erheblich unterstützen.

Können Sie uns konkrete Beispiele für Projekte oder Anwendungsfälle nennen, in denen KI erfolgreich in Softwareentwicklungsdienstleistungen integriert wurde?

Da gibt es einige. Zum Beispiel ein Projekt für ein Unternehmen aus dem Bereich Sicherheitsdienstleistung, bei dem KI-Komponenten zur Gesichtserkennung bzw. zur eindeutigen Authentifizierung von Personen eingesetzt wurden.

Für ein international tätiges Chemieunternehmen haben wir ein KI-basiertes Translation -Tool mit einer Schnittstelle zu DeepL entwickelt. Diese Browseranwendung in der Azure Cloud verfügt über ein dediziertes Berechtigungskonzept und Single Sign On. Mit dieser Lösung wurde gleichzeitig noch ein Element der Schatten-IT beseitigt, denn in der Vergangenheit wichen Mitarbeitenden auf Google Translate aus. Ein typisches Phänomen und gleichzeitig eine Katastrophe aus Sicht des Datenschutzes und der Compliance; schließlich wurden dadurch höchst vertrauliche Informationen und personenbezogene Daten - über das Web - in ein sogenanntes unsicheres Drittland übermittelt.

Hier sehen wir übrigens auch eine unserer Stärken: Den Kunden zu beraten und ihm durch Individualentwicklung an den KI-Lösungen der Big Player partizipieren zu lassen und dabei eine rechtskonforme, DSGVO- abdeckende Lösung zu betreiben.

Wie unterstützen Sie Ihre Kunden dabei, das volle Potenzial von KI in ihren Softwareprojekten zu nutzen?

Die Beratung steht hier im Vordergrund. Anders als Konzerne und potente Finanzinstitute fehlt es bei den KMU in der Regel an Ressourcen, sich mit den KI-Technologien intensiv auseinanderzusetzen. Auch wenn die KI einen unglaublichen Hype erfährt, wird der intensive Einsatz von KI bei KMUs erwartungsgemäß zeitlich versetzt stattfinden. Für KMUs ist es entscheidend, jetzt in dieser Phase, eine Standortbestimmung vorzunehmen. Es gilt die bestehenden und geplanten Geschäftsmodelle zu prüfen, inwieweit KI eingesetzt werden kann, um Qualität, Geschwindigkeit, Effizienz zu steigern und Ressourcenschonend zu agieren.

Insbesondere um die Datenschutzproblematik zu vermeiden, wird es für unsere Kunden essenziell sein, Lösungen zu entwickeln, die nicht zu einem Datenabfluss in ein Drittland führen. So in dem genannten Beispiel mit der Einbindung von DeepL. 

Mittlerweile stehen einige Open Source LLMs zur Verfügung. Auch hier ist eine hohe Dynamik zu verzeichnen. Aktuell gehören hierzu Falcon, BLOOM, Bert, Llama 2. Diese LLM´s sind in der Regel keine Generalisten wie ChatGPT-3(4). Es sind Modelle mit deutlich weniger Parametern, aber trainiert mit qualitativ und quantitativ besseren Trainingsdaten, erreichen sie vergleichbare oder bessere Leistungen, bei geringeren Kosten in der Entwicklung, bei der Anpassung und dem Betrieb. Wie fähig solche Modelle sind, hat Meta Anfang 2023 mit seiner LlaMA-LLM-Familie gezeigt, die in kürzester Zeit an die Leistung von ChatGPT herankommen konnte. 

Interessant sind auch Ansätze mittels Anbieter, die Schnittstellen (APIs) zur Nutzung der Modelle bereitstellen – sogenannte AI-as-a-Service (AIaaS). Der große Vorteil liegt hier in der niedrigen Einstiegshürde beim Kunden. Ohne spezielles Know-how und Skill-Aufbau auf Kundenseite können wir hier schnelle Lösungen realisieren und Akzeptanz für die neuen Technologien erhöhen.

Welche Rolle spielen menschliche Entwickler im Kontext von KI-gestützter Softwareentwicklung? 

Ein international bekannter CEO hat es ziemlich drastisch ausgedrückt: „Programmieren lernen wird sich in der Zukunft nicht mehr lohnen!“

Ich würde aber sagen, der Erfolg von Softwareentwicklungsprojekten hängt nicht allein von technischen Aspekten ab. Ganz wesentlich ist die Kommunikation und der Austausch zwischen den Beteiligten sowie die Erfahrung und vor allem das Verständnis für die Anforderungen. Es baut also viel auf Empathie und letztlich auch auf Kreativität auf. Der Mensch in der Rolle des kreativen Treibers und des ethischen Entscheidungsträgers ergänzt also die Stärken der KI.

Welche zukünftigen Entwicklungen oder Innovationen erwarten Sie im Bereich KI-gestützter Softwareentwicklung?

Die IT wird durch die KI-Ansätze noch komplexer, die Dynamik wird weiter steigen und der Beratungsbedarf wird zunehmen. 

In der Softwareentwicklung wird der Einsatz von KI-basierten Tools stark zunehmen. Sie werden den Entwicklern helfen, mehr zu erreichen, indem sie Ressourcen für übergeordnete Problemen freisetzen. Der Entwickler muss sich daher weiterentwickeln zum Anforderungsanalytiker, Berater, Kommunikator und Übersetzer fachspezifischer Anforderungen in IT-Konzepten. Sie werden also vom Design- zum Plattformdenken übergehen. In der Vergangenheit haben Entwickler Code für ein ergebnisorientiertes Design entwickelt. Jetzt werden sich KI-Entwickler darauf konzentrieren, wie Plattformen im Rahmen eines zielorientierten Designs funktionieren.

Das Testen wird eine höhere Priorität erhalten. Da KI immer mehr Code produziert, müssen die Teams eine Architektur aufbauen, die den Code aus jedem Blickwinkel testet. KI kann beispielsweise bei der Testfallerstellung und -planung helfen, indem sie Anwendungsfälle identifiziert, Testabdeckungskriterien analysiert und Testfälle generiert, die eine bessere Testabdeckung bieten. LLM wie ChatGPT (von OpenAI), Bard (Google), Llama (Meta) können darüber hinaus eingesetzt werden, um effizient geeignete und beliebig große Testdaten zu generieren sowie Tests in größerem Umfang zu parametrisieren.

Und nicht zu vergessen: Auch in Zukunft wird es schwierig sein, KI-Lösungen datenschutzkonform und hinsichtlich bestehender Anforderungen der Informationssicherheit im europäischen Raum zu nutzen.

Da Google und Co. über immense finanzielle Ressourcen verfügen, die sie in die Weiterentwicklung stecken, scheint es mehr als unwahrscheinlich, dass in absehbarer Zeit adäquate Lösungen aus Europa kommen werden. Natürlich wird es, wie z.B. bei Microsoft Lösungen geben, die den Anspruch haben, DSGVO-konform zu sein.

Hier sehen wir einen wichtigen Ansatz, Kunden bei der Nutzung von KI-Lösungen zu beraten und individuelle Anwendungen bereitzustellen, die es ermöglichen, das Potenzial von KI rechtskonform zu nutzen. Das bedeutet, dass im Bereich der Softwareentwicklung, die dafür eingesetzten KI-Tools und deren generierten Daten die Compliance nicht verletzen. In Zukunft wird Programmcode anstatt von Programmierern immer mehr von der KI generiert. Hierbei müssen aber Aspekte wie Urheberrecht, Lizenzbedingungen, Haftungsfragen und Fehlerfreiheit gewährleistet sein.