Wie Maschinen den Code schreiben und Menschen den Ton angeben
Hinweis: Dieses Interview wurde weitestgehend mit dem Einsatz künstlicher Intelligenz erstellt.
Künstliche Intelligenz verändert das Spielfeld in nahezu jeder Branche, und die Softwareentwicklung bildet da keine Ausnahme. Frederik Gosewehr, wissenschaftlicher Mitarbeiter am Fachbereich Technik der Hochschule Emden/Leer, hat sich intensiv mit der Rolle von Künstlicher Intelligenz (KI) in der Programmierung beschäftigt und eine Software mit Hilfe von KI entwickelt. Das Ergebnis: erstaunlich gut – aber nicht fehlerfrei.
Frage: Herr Gosewehr, wie sehen Sie die aktuelle Rolle von KI in der Programmierung? Ist sie schon so weit, dass sie Entwickler vollständig ersetzen könnte?
Frederik Gosewehr: Zunächst einmal ist es wichtig, zu verstehen, dass die KI-unterstützte Programmierung heute ein mächtiges Werkzeug ist, aber sie ersetzt keineswegs den Entwickler. Vielmehr fungiert die KI als eine Art „Super-Assistent“, der sich wiederholende Aufgaben übernimmt, Vorschläge macht und sogar komplexe Codefragmente generieren kann.
Frage: Zum Beispiel?
Frederik Gosewehr: Ein besonders interessantes Beispiel dafür ist ein Projekt, das ich gemeinsam mit dem Rechenzentrum der Hochschule realisiert habe. Nach zuvor etwa zwanzig Jahren Pause habe ich mich dabei wieder mit komplexer JavaScript-Programmierung beschäftigen müssen. In dieser Zeit hat sich JavaScript massiv weiterentwickelt. Dennoch konnte ich mich dank der Anleitung des KI Assistenten (ChatGPT) schnell einen Prototypen erzeugen, der die Aufgabe löst und mir außerdem im Schnelldurchlauf die wichtigsten neuen Konzepte vermittelt hat. Das Ergebnis war, dass wir in kürzester Zeit eine produktionsreife Anwendung zur Verschlüsselung von eingestuften Dokumenten entwickeln konnten.
Frage: Das klingt beeindruckend - aber was genau bedeutet es, dass dieses Tool in so kurzer Zeit zur Produktreife gelangt ist?
Frederik Gosewehr: Normalerweise würde die Entwicklung eines Tools zur Verschlüsselung, das den Anforderungen an Sicherheit und Benutzerfreundlichkeit gerecht wird, deutlich länger dauern. Sie müssten die gesamte Infrastruktur aufbauen, die richtigen Bibliotheken auswählen und deren Nutzung verstehen, den eigentlichen Code schreiben, Fehler beheben und das Resultat abschließend noch ausgiebig testen. Durch die KI konnte dieser Prozess erheblich beschleunigt werden. Unter anderem wurden automatisch generierte Code-Vorschläge gemacht, die dann verfeinert werden konnten, bis das gewünschte Ergebnis vorlag. Auch das Testen wurde teilweise automatisiert und die Testcases automatisiert von der KI erzeugt. Die Aufgabe des Entwicklers besteht hier dann nur noch darin zu prüfen, ob diese den Anforderungen entsprechen. So kann man sich auf die Feinheiten konzentrieren, wie etwa die Integration von Sicherheitsmechanismen oder Spezialfälle, an die die KI von sich aus eventuell nicht denkt.
Frage: Kritische Stimmen könnten sagen, dass durch die zunehmende Automatisierung und den Einsatz von KI in der Programmierung das Handwerk des Programmierens an Bedeutung verliert. Wie sehen Sie das?
Frederik Gosewehr: Das ist ein berechtigter Einwand, aber ich denke, er verkennt die Realität. KI kann bei vielen Dingen helfen, aber sie kann nicht das Verständnis für Algorithmen, Datenstrukturen, Softwarearchitektur oder die Grundlagen der Informatik ersetzen. Diese Fähigkeiten sind immer noch entscheidend, um hochwertige Software zu entwickeln.
Ein Programmierer muss verstehen, warum der Code auf eine bestimmte Weise strukturiert ist und wie er funktioniert oder auch nicht, da die KI auch ungewollt Fehler einbauen kann. Sie kann dabei helfen, produktiver zu sein, aber sie kann die Expertise eines erfahrenen Programmierers nicht ersetzen. Das stellen unsere Studierenden auch immer wieder fest, wenn eine Aufgabe sich mit ChatGPT doch nicht lösen lässt.
Frage: Also ist die Rolle des Programmierers der Zukunft eher die eines Dirigenten, der die KI orchestriert, um das bestmögliche Ergebnis zu erzielen?
Frederik Goswehr: Absolut. Der Entwickler wird zunehmend zu einem Problemlöser und kreativen Denker, der die KI als Werkzeug einsetzt, um seine Ideen in die Tat umzusetzen. Es geht darum, die richtigen Fragen zu stellen und die KI so zu lenken, dass sie die gewünschten Antworten liefert.
An der Hochschule Emden/Leer haben wir diesen Ansatz bereits in die Lehre integriert. Hier lernen die Studierenden nicht nur die klassischen Grundlagen der Informatik, sondern auch, wie sie moderne KI-Modelle wie ChatGPT nutzen können, um ihre Produktivität zu steigern aber auch, dass diese Helfer mit Bedacht eingesetzt und kritisch bewertet werden müssen. Eine KI halluziniert Antworten auch herbei. Kann dies nicht vom Lernenden bewertet werden, kann sich falsches Wissen verfestigen, was sehr schwer wieder zu ändern ist.
Frage: Das heißt, die KI könnte in naher Zukunft ein fester Bestandteil des Entwicklungsprozesses werden, aber es wird immer notwendig sein, dass Entwickler ihre Expertise einsetzen?
Frederik Gosewehr: Genau. KI-Modelle werden in Zukunft eine noch größere Rolle im Entwicklungsprozess spielen. Sie könnten standardmäßig in integrierte Entwicklungsumgebungen integriert werden und Entwicklern helfen, effizienter zu arbeiten. Aber diese Effizienz hängt stark davon ab, wie gut der Entwickler in der Lage ist, die Ausgaben der KI zu interpretieren und zu korrigieren. Die KI kann weder die tiefere Bedeutung des Codes erfassen noch die Auswirkungen, die bestimmte Entscheidungen auf das Gesamtprojekt haben könnten.
Frage: Welche Herausforderungen sehen Sie im umfangreichen Einsatz von KI in der Softwareentwicklung?
Frederik Gosewehr: Eine der größten Herausforderungen ist sicher die richtige Balance zwischen Automatisierung und menschlicher Kontrolle. Es besteht die Gefahr, dass Entwickler sich zu sehr auf die KI verlassen und dabei das tiefere Verständnis für die Technologie verlieren. Zudem müssen KI-Systeme transparent und nachvollziehbar sein, besonders, wenn sie in sicherheitskritischen Bereichen eingesetzt werden. Ich kann KI wie jede andere Software auch manipulieren, also Befehle einschleusen, die bspw. Schadcode generieren und schwerwiegenden finanzielle Schaden verursachen. Man spricht hierbei von der sog. Prompt Injection. Ein entsprechender Angriff wäre hierbei ein sog. Supply-Chain Angriff. Kann ich das Modell über meine Prompt Eingaben manipulieren, welches die KI im Hintergrund verwendet, um die Ausgaben zu erzeugen, kann meine Manipulation sich wiederum in die Ausgabe bei einem anderen Entwickler einschleichen, der ohne entsprechendes Wissen diese nicht erkennt und somit meinen Schadcode direkt in seinen Code integriert.
In der Zukunft könnte die Programmierung durch KI jedoch noch zugänglicher werden, sodass mehr Menschen in der Lage sein werden, Software zu entwickeln. Das sieht man bereits bei den sog. Multi-modalen Modellen, die ähnlich wie der Computer der Enterprise bei Star-Trek via Spracheingabe gesteuert werden können. Das ermöglicht auch Menschen, die zuvor hierzu nicht in der Lage waren, selbst Programme für Problemstellungen zu entwickeln. Gleichzeitig wird der Bedarf an hochqualifizierten Entwicklern, die komplexe Systeme entwerfen und die KI richtig einsetzen können, weiter steigen.