phonlamaiphoto - stock.adobe.com

Potenzial und Risiken der KI in der Softwareentwicklung

KI in der Softwareentwicklung könnte einen Wandel bewirken, wirft aber ethische und praktische Bedenken auf. Was bedeutet KI-generierter Code für die Zukunft des Technologiesektors?

Immer mehr Unternehmen setzen auf künstliche Intelligenz (KI), um die Softwareentwicklung zu beschleunigen. Die wachsende Beliebtheit von KI-basierten Entwicklungs-Tools wirft jedoch Bedenken hinsichtlich der Sicherheit, der Genauigkeit und der Auswirkungen auf die Beschäftigten im technischen Bereich auf.

Large Language Models (LLMs) wie GPT-4 können Codeschnipsel vorschlagen, technische Fragen beantworten und sogar Teile von einfachen Anwendungen schreiben. Mike Gualtieri, Vizepräsident und leitender Analyst bei Forrester Research, erwartet, dass KI-Tools einen großen Einfluss auf die Softwareentwicklung haben werden: „Ich denke, es ist realistisch zu sagen, dass ein Entwickler damit doppelt so produktiv sein wird, wenn nicht sogar mehr“, betont er.

Diese Produktivitätsgewinne könnten weitreichende Veränderungen im Technologiesektor bedeuten. Mit der zunehmenden Verbreitung von KI stellt sich jedoch die Frage, wie sie sicher in die Softwareentwicklung integriert werden kann; und die Arbeitnehmer sind besorgt über die Qualität des von KI erzeugten Codes und darüber, was KI für ihre Arbeitsplätze bedeutet.

KI in der Softwareentwicklung ist eine Evolution, keine Revolution

Trotz des weit verbreiteten Hypes um ChatGPT und andere öffentlichkeitswirksame Modelle ist KI in der Softwareentwicklung nicht so bahnbrechend, wie es zunächst scheinen mag. KI gibt es in Entwicklungs- und IT-Workflows schon seit einiger Zeit, wenn auch meist in Form von einfachen Codevervollständigungen und Automatisierungen.

Zwar kann KI inzwischen vollständige Codeschnipsel generieren, doch selbst diese Fähigkeit unterscheidet sich nicht so sehr von den bekannten manuellen Prozessen. Anstatt sich durch Stack Overflow-Antworten zu wühlen, um relevanten Code zu finden, können Entwickler nun gezielte Vorschläge direkt in ihren integrierten Entwicklungsumgebungen (IDEs) erhalten. Eine der wichtigsten Änderung wird es aber sein, dass KI jetzt universell und leichter zugänglich ist.

Die jüngsten KI-Fortschritte lassen sich am besten als Erweiterung eines bestehenden Entwicklungsparadigmas verstehen. Nun ist es möglich, dass einige dieser Tools die Arbeitsweise von Programmierern beeinflussen. Es handelt sich eher um einen Bewusstseinswandel als um die eigentliche zugrunde liegende Technologie.

Frank Huerta, CEO des Sicherheitssoftwareunternehmens Curtail, merkt an, dass einige Sicherheits-Tools, die als KI angepriesen werden, Mustererkennungstechniken verwenden, die den Methoden ähneln, die seit langem bei der Überwachung von Bedrohungen und der Erkennung von Angriffen eingesetzt werden.

Dennoch sind sich die Experten einig, dass die jüngsten Fortschritte im Bereich der KI und die rasch steigende Akzeptanz einen Wendepunkt darstellen. Auch wenn die zugrundeliegende Technologie selbst nicht völlig neu ist, wachsen die Fähigkeiten und das Ausmaß des Einsatzes von KI in rasantem Tempo. 

Die Vorteile und Risiken von KI-generiertem Code

Zu den vielversprechendsten Bereichen für KI in der Softwareentwicklung gehören die Planung und Erkundung, die Beschleunigung der Automatisierung von Routineaufgaben und das Schreiben von Standardcode.

Obwohl LLMs nur begrenzt in der Lage sind, funktionalen Code zu generieren, sind sie leistungsstarke Werkzeuge für die Beantwortung anspruchsvoller, aber spezifischer technischer Fragen. ChatGPT könnte zum Beispiel erklären, wie man mit Java oder Python eine Verbindung zu einem AWS-Service herstellt, und Beispielcode bereitstellen.

Ein Großteil der täglichen IT- und Entwicklungsarbeit umfasst Aufgaben wie API-Aufrufe oder das Verschieben von Daten zwischen Objekten. Durch die Automatisierung dieser Vorgänge mithilfe von KI können sich Technikexperten auf kompliziertere, kreative Projekte konzentrieren, die menschliches Verständnis erfordern. In Kombination mit der aufkommenden Disziplin des Plattform-Engineering könnte dies dazu beitragen, überlastete DevOps-Teams zu entlasten, die weitläufige, komplexe IT-Umgebungen verwalten.

Ravi Parikh, Mitbegründer und CEO des Entwicklerplattform-Startups Airplane, ist der Meinung, dass KI eine wichtige Rolle bei der Weiterentwicklung von Entwickler-Tools spielt. Die Integration eines Tools wie GitHub Copilot in den Automatisierungsworkflow einer bestehenden Entwicklerplattform könnte beispielsweise die Produktivität weiter steigern.

Doch obwohl die KI-Entwicklungs-Tools immer besser werden, sind sie nicht perfekt. Wenn man mit KI-gestützter Softwareentwicklung experimentiert, besteht ein Risiko darin, dass sie schlechten Code erzeugt, genau wie ein Mensch schlechten Code erzeugt.

Dies schließt Sicherheitsrisiken ein. Tools zur Codegenerierung und -empfehlung spiegeln die Sicherheitsschwachstellen und Fehlkonfigurationen des als Trainingsdaten verwendeten Codes wider. Ebenso gibt es Sicherheits- und Datenschutzbedenken hinsichtlich der Quellen und der Sensibilität der Daten, die zum Trainieren und Verfeinern von KI-Systemen verwendet werden.

Um diese Risiken zu mindern, müssen Unternehmen den von KI generierten Code genauso behandeln wie das von Menschen geschriebene Gegenstück. Das bedeutet, dass für alle dieselben Sicherheits- und Governance-Richtliniengelten, unabhängig davon, ob der Code von einem Menschen oder einem KI-Modell stammt.

Code, der keine Sicherheitsschwachstellen enthält, kann auf andere Weise fehlerhaft sein. Modelle erzeugen nicht immer den Code, der den Anforderungen des Benutzers entspricht. Und selbst wenn der erzeugte Code technisch funktioniert, ist er möglicherweise nicht besonders prägnant oder effizient.

Die Verwendung von KI-generiertem Code ist besonders riskant, wenn die Benutzer ihn nicht validieren können, sei es, weil sie nicht über ausreichende technische Kenntnisse verfügen, oder weil ein Tool die Benutzer davon abhält, seine Ausgabe zu überprüfen. „Selbst wenn es in neun von zehn Fällen richtig ist“, so Parikh, „wenn Sie in einem von zehn Fällen Fehler in Ihrem Code ausliefern, ist das ziemlich schlecht“.

Die Auswirkungen von KI auf Low Code und No Code

Die Kombination von generativer KI mit niedrigem Code und ohne Code könnte es Nicht-Entwicklern ermöglichen, ganze Anwendungen zu erstellen.

Ähnlich wie bei der Erstellung von Grafiken und Benutzeroberflächen mit Design-Tools wie Canva und Figma könnten künftige Low-Code/No-Code-Plattformen visuelle Eingaben entgegennehmen und dann im Hintergrund mithilfe eines LLM-Anwendungscode generieren. Einige Fachleute sehen das Potenzial, dass KI nicht nur einzelne Entwickler, sondern ganze Entwicklungsteams unterstützen wird, indem sie nicht nur Schnipsel, sondern vollständige Anwendungen generiert, die im Unternehmen genutzt werden können.

Andere stehen solchen Tools eher skeptisch gegenüber, insbesondere in den Händen von Benutzern ohne ausreichende technische Kenntnisse. Es könnte dazu führen, dass Low-Code- und No-Code-Tools, wenn sie falsch eingesetzt werden, in schlecht geschriebener Software resultieren, die mehr Schaden anrichtet, als dass sie tatsächlich Probleme für die Menschen löst. Hier könnte der Einsatz von künstlicher Intelligenz die Situation verschlimmern.

Ein weiteres Risiko besteht im Zusammenhang mit dem Urheberrecht und dem geistigen Eigentum. Obwohl einige Tools, wie der KI-Codierassistent Tabnine, Maßnahmen ergreifen, um sicherzustellen, dass der in den Trainingsdaten verwendete Code eine zulässige Lizenz hat, gilt dies nicht für alle KI-Tools, einschließlich der beliebten LLMs, die auf riesigen Datensätzen trainiert werden.

Die Modelle, die ChatGPT zugrunde liegen, wurden beispielsweise auf einem riesigen Datenkorpus trainiert, der aus dem Internet zusammengesucht wurde, darunter auch Texte aus Büchern und Artikeln. Wenn diese Daten urheberrechtlich geschützte Algorithmen enthalten, die in der Ausgabe von ChatGPT reproduziert werden, könnte dies zu Problemen mit dem geistigen Eigentum führen. Es stellt sich die Frage, was passiert, wenn man beispielsweise Software generiert und dabei das Patent eines anderen nutzt.

Normalerweise werden Patentstreitigkeiten zwischen Menschen oder Unternehmen durch rechtliche Mechanismen gelöst, sagte er. Es ist jedoch nicht klar, wie das Verfahren zur Beilegung von Streitigkeiten aussehen würde, die sich aus dem von Tools wie GitHub Copilot und ChatGPT generierten Code ergeben.

Anpassungsfähigkeit ist der Schlüssel zum Erfolg künftiger KI-Tools

KI, die speziell für die Softwareentwicklung gedacht ist, scheint vielversprechender zu sein als LLMs, wenn es darum geht, tatsächlich Code zu schreiben.

GitHub Copilot hat sich dank seines Zugriffs auf den riesigen Datensatz von GitHub und der Integration mit der beliebten IDE Visual Studio Code als früher Spitzenreiter erwiesen. Die Beliebtheit von Copilot basiert zum Teil auf seiner Transparenz und Flexibilität, die es den Benutzern überlassen, ob sie die Vorschläge tatsächlich umsetzen.

Andere beliebte KI-Entwicklungs-Tools haben eine ähnliche Struktur: Sie bieten Vorschläge an, aber der Benutzer entscheidet letztendlich, was er implementieren möchte. Ähnlich wie GitHub Copilot bietet Tabnine optionale Inline-Code-Vorschläge, während die Entwickler tippen. Ebenso erstellt Project Wisdom von IBM automatisch Ansible Playbooks auf der Grundlage von Anfragen in natürlicher Sprache, aber die Entwickler können die Ergebnisse überprüfen und ändern.

Diese Anpassungsfähigkeit ist nach Ansicht von Experten für künftige KI-Tools unerlässlich. Insbesondere müssen KI-Entwicklungs-Tools mit bestehenden Unternehmenssystemen zusammenarbeiten – ein Bereich, in dem die derzeitigen Möglichkeiten nicht ausreichen.

Eine weitere Kategorie von KI-Systemen können als abgeleitete Modelle bezeichnet werden und scheinen besonders vielversprechend in diesem Bereich. Basismodelle wie OpenAIs GPT-3 und Googles Palm sind große, flexible Systeme, die auf breiten Datensätzen trainiert wurden und von den Benutzern an spezielle Anwendungsfälle angepasst werden können. Künftige KI-gestützte Entwicklerwerkzeuge könnten es einem Unternehmen ermöglichen, seine Codebasis in ein Basismodell einzuspeisen, um ein individuelles abgeleitetes Modell zu erstellen. Ein solches Modell wird stärker auf das Unternehmen ausgerichtet sein und daher Code generieren, der der bestehenden Architektur des Unternehmens ähnlicher ist.

Eine ähnliche Anwendung gibt es im Bereich der Entwickler-Tools: die Verringerung der Lernkurve für neue Plattformen und Tools durch die Erstellung benutzerdefinierter Assistenten. In internen Prototypen bei Airplane habe das Unternehmen mit dem Training von KI-Modellen auf seiner Dokumentation experimentiert, um einen halbintelligenten Agenten zu schaffen, der genau auf die Software von Airplane abgestimmt ist. Diese Art von spezialisiertem Chatbot könnte Nutzern helfen, sich schnell in neue Tools einzuarbeiten, ohne sich durch die Dokumentation wühlen oder den Support kontaktieren zu müssen.

Wird KI die Softwareentwickler ersetzen?

KI wird Softwareentwickler in absehbarer Zeit nicht ersetzen, was zum Teil auf ihre Risiken und technischen Grenzen zurückzuführen ist. Aber Menschen haben auch einfach andere Fähigkeiten als KI und das sollte man als Vorteil sehen.

Als ein Beispiel seien die Schwierigkeiten erwähnt, den menschlichen Prozess der Objekterkennung nachzubilden. Ähnlich verhält es sich mit dem KI-Ansatz beim Schreiben von Dingen. Menschliche Gehirne arbeiten immer noch etwas anders als die Intelligenz von Computern. Das muss ein Vorteil sein und darf nicht verdrängt werden.

Auch menschliches Einfühlungsvermögen und Kommunikation sind für die IT und die Entwicklung von entscheidender Bedeutung. Es geht darum, den Menschen zuzuhören, zu verstehen, was sie brauchen, und die komplexe Umgebung, die wir heute haben, zu verstehen.

Anstatt Entwickler und IT-Mitarbeiter zu ersetzen, wird KI sie eher unterstützen. KI ist derzeit noch nicht so gut, dass sie einen Softwareentwickler ersetzen kann. Das Tool ist wahrscheinlich am besten, wenn es nicht Intelligenz ersetzt, sondern den Mangel an Wissen.

KI könnte dazu beitragen, die Qualifikationslücke in der Tech-Branche zu verkleinern

Die Nachfrage nach IT-Fachkräften ist seit jeher hoch, und trotz der jüngsten Entlassungen bei namhaften Unternehmen gibt es im Technologiesektor immer noch eine Qualifikationslücke. Daher ist es unwahrscheinlich, dass die KI menschliche Arbeitskräfte vollständig verdrängen wird - vielmehr könnte die KI-gestützte Softwareentwicklung notwendig sein, um den bestehenden Fachkräftemangel zu beheben.

Abbildung 1: Die Nachfrage nach IT-Kenntnissen, einschließlich Fachwissen in der Softwareentwicklung, bleibt laut Daten des Analystenhauses Gartner für das Jahr 2022 weiterhin hoch.
Abbildung 1: Die Nachfrage nach IT-Kenntnissen, einschließlich Fachwissen in der Softwareentwicklung, bleibt laut Daten des Analystenhauses Gartner für das Jahr 2022 weiterhin hoch.

Es gibt oft nicht genug Mitarbeiter, um die Aufgaben zu bewältigen. Es gibt nicht genug Entwickler, nicht genug IT-Leute und nicht genug Sicherheitsfachleute. KI kann also ein nützliches Werkzeug sein, um einige dieser Lücken zu schließen.

In vielen Unternehmen könnte dies bedeuten, dass die Produktivität der bestehenden Teams gesteigert wird, anstatt sie zu verkleinern. Unternehmen mit großen IT-Budgets haben oft eine interne Benutzerbasis, die das Gefühl hat, dass sie für dieses Budget nicht das bekommt, was sie will. Am anderen Ende des Spektrums könnte KI ein Segen für kleine Unternehmen sein, für die fortschrittliche IT bisher finanziell unerschwinglich war.

In solchen Szenarien könnte KI die interne IT-Bereitstellung beschleunigen und bei Projekten helfen, die aufgrund von Personalknappheit oder Budgetbeschränkungen nicht durchführbar waren. Dabei sollten sich Firmen nicht darauf konzentrieren, mit der Hälft der Mitarbeiter die gleichen Resultate zu erhalten, sondern vielmehr mit der gleichen Anzahl der Angestellten mehr zu erreichen.

KI-Codierungs-Tools könnten auch die Einstiegshürden für die Softwareentwicklung senken. Genauso wie Buchhalter nicht mehr wissen müssen, wie man die lange Division von Hand ausführt, könnten bestimmte Programmierkenntnisse, die bisher für Codierjobs grundlegend waren, mit dem Fortschritt der Tools an Bedeutung verlieren.

In Verbindung mit dem jüngsten Abschwung im Technologiesektor könnte dies jedoch zu einem Rückgang der Durchschnittslöhne führen. Technologieunternehmen haben in der Vergangenheit notorisch hohe Gehälter gezahlt, selbst für Einstiegsjobs in der Entwicklung. Vor allem in einer schwierigeren Wirtschaftslage könnte sich dies durch die breite Einführung von KI ändern.

Die Automatisierung hat bereits in der Vergangenheit zu viel tieferen wirtschaftlichen Veränderungen in der Technologiebranche geführt. Daher ist es wichtig, die stärkere Automatisierung in der Softwareentwicklung in einem breiteren Kontext zu betrachten, der über den Technologiesektor hinausgeht.

Erfahren Sie mehr über Künstliche Intelligenz (KI) und Machine Learning (ML)

ComputerWeekly.de
Close