Soko Maier: ChatGPT für die Software-Entwicklung – Keep calm and explore

Digital

INSIDE IT – Kolumnistin Elisabeth Maier beschreibt, wie und wo Entwicklerinnen und Entwickler ChatGPT im Alltag verwenden könnten und welche Fallstricke zu beachten sind.

Das Jahr 2023 war gerade einige Tage alt, als ich in einem unserer internen Messenger Streams auf die folgende Nachricht von einem Kollegen gestossen bin: «I’ve tried to use AI for writing some parts of the code. And I’m afraid about my future in programming because of this.» Irgendwie klang das für mich nach einem Hilferuf. Eine spontane Diskussion unter den Entwickler:innen gipfelte am Ende des Tages in einem (vorübergehend) abschliessenden Statement eines weiteren Kollegen: «Fear not! We will not be replaced by AI yet.»
Richtig, hier ging es um ChatGPT. Jene Künstlichen Intelligenz, die am 30. November 2022 (!) öffentlich zugänglich gemacht wurde und schon im Januar des Folgejahres über 100 Millionen Nutzer und eine riesige Fangemeinde vorweisen konnte. In der kurzen Zeit seit der Veröffentlichung von ChatGPT hat man viel Klarheit über Nutzen und Risiken dieses KI-basierten Ansatzes gewonnen – unter anderem auch für die Unterstützung bei der Software-Entwicklung. Wird Software-Engineering nun also für jedermann möglich?­

ChatGPT in der Softwareentwicklung: Stand der Dinge

ChatGPT wird bereits von vielen Entwickler:innen verwendet und im täglichen Einsatz erprobt. Für eine Vielzahl von Aufgaben, die ein Software-Lifecycle beinhaltet, zeichnen sich vielversprechende Ansätze ab. Hierzu zählen beispielsweise
  • Rapid Prototyping, also die Erstellung von Code als Antwort auf eine umgangssprachliche Beschreibung der Zielfunktionalität der Software
  • Automatische Erzeugung von Unit Tests für Code
  • Behebung einfacher Programmierfehler in Software
  • Code-Optimierung und Refactoring, also die Verbesserung von Code im Hinblick auf bessere Lesbarkeit und Wartbarkeit
  • Automatische Erzeugung verständlicher Dokumentation für ein Programm
  • Upgrade von Code auf eine neuere Version der benutzten Programmiersprache
  • Übersetzung einer Software von einer Programmiersprache in einer andere
  • Unterstützung beim Erlernen von Programmiersprachen und -Konzepten durch interaktiven Austausch mit ChatGPT (Feedback, Bewertung, Verbesserungen, allgemeine Programmierfragen)
  • Vorschlag einer Software-Architektur auf Basis einer Anforderungsbeschreibung.

Welchen Nutzen kann ChatGPT in diesem Umfeld stiften?

Es liegt auf der Hand, dass ChatGPT einen massiven Beitrag zur Software-Entwicklung leisten kann, sobald ausreichend Erfahrungen mit dem Einsatz dieser Technologie vorhanden sind. Die Vorteile liegen in verschiedenen Bereichen, die alle zu einer effizienteren und kosteneffektiveren Softwareentwicklung beitragen können.
Einer der wichtigsten Vorteile ist die Verbesserung der Entwicklungsgeschwindigkeit. Indem die Technologie wiederkehrende Aufgaben übernimmt, können Entwicklerinnen und Entwickler sich auf komplexere Aufgaben konzentrieren und somit schneller und effektiver arbeiten. Zudem werden Entwickler:innen von repetitiven, simplen und monotonen Tätigkeiten entlastet, was wiederum die Fehleranfälligkeit reduziert. Dies führt zu einer höheren Qualität der Software und minimiert die Anzahl von Fehlern, die während des Entwicklungsprozesses auftreten können.
Ein weiterer Vorteil dieser Technologie ist die Unterstützung bei der Aus- und Weiterbildung: Entwickler:innen haben rund um die Uhr und on demand Zugriff auf einen enormen Wissensschatz.
Insgesamt führen all diese Vorteile zu massiven Kosteneinsparungen für Software-Unternehmen. Es ist jedoch wichtig, die Technologie auf sinnvolle Weise zu nutzen und sicherzustellen, dass sie zu den spezifischen Bedürfnissen des Unternehmens passt.

Warum ChatGPT (noch) nicht die endgültige Antwort ist

Es ist aber – wie immer im Leben – nicht alles Gold, was glänzt. Mit der Nutzung von ChatGPT ergeben sich auch erhebliche Probleme und Risiken.
Zunächst gilt auch für die Benutzung von ChatGPT das Motto «Vertrauen ist gut, Kontrolle ist besser«. In der Zwischenzeit sind viele Fälle bekannt geworden, bei denen das GPT-Output unangemessenenes oder schlicht falsches Wissen enthielt. Das ist besonders dann problematisch, wenn man die Korrektheit des Ergebnisses aufgrund fehlenden Sachwissens nicht beurteilen kann oder Fehler übersieht. Qualitätskontrolle muss also in sensiblen Kontexten immer ein zwingender Prozess-Schritt bei der Verwendung von ChatGPT sein.
Für den Einsatz in hochspezialisierten, -komplexen und -regulierten Domänen sind KI-basierte Code-Generatoren meist ungeeignet. Da die Systeme für diese Einsatzgebiete nicht speziell trainiert wurden, wird die Qualität von KI-Ergebnissen im Vergleich zu Humaner Intelligenz häufig geringer ausfallen. Zudem können bei Verwendung von zum Beispiel ChatGPT im Problemfall komplexe Haftungsfragen auftreten, die es im Vorfeld abzuklären gilt. Nicht zuletzt deshalb sollten Unternehmen die Nutzung von KI-Technologien gegenüber allen betroffenen Stakeholdern (Mitarbeiter, Kunden, Systemnutzer) transparent kommunizieren – zumal die Akzeptanz von KI-Systemen nicht durchgängig vorausgesetzt werden kann.
Zu guter Letzt wird der Einsatz von KI-Lösungen und das dadurch realisierbare Optimierungspotential auch einen realen Einfluss auf die Wirtschaft haben.

Quo vadis, Team Software Engineering und ChatGPT?

Lösungen wie ChatGPT sind noch relativ neu, sie stecken mitten in einem Hype. Es gibt noch eine Menge offener Fragen. Wo liegen die Chancen und die Grenzen solcher Ansätze? Wie muss gesellschaftlich mit der Technologie umgegangen werden? Welche Geschäftsmodelle werden benötigt, um sowohl einen sozialen als auch einen wirtschaftlichen Nutzen zu generieren?
Fest hingegen steht, dass diese Technologie Berufsbilder und ganze Industriezweige verändern wird, darunter auch das Software-Geschäft. Beispielsweise entstehen bereits jetzt neue Berufe wie z.B. der «Prompt Writer» oder «Prompt Engineer», der darauf spezialisiert ist, mit gezielten massgeschneiderten Fragen an ein KI-System das bestmögliche Output zu generieren. Software-Ingenieure werden in Zukunft auch um die Vorzüge von KI-generiertem Code wissen und dieses Know-how gezielt einsetzen müssen, um sich auf interessante (statt monotone) Entwicklungsarbeiten konzentrieren und damit Aufgaben schneller erledigen zu können.
Meine Einschätzung: Softwareentwickler werden nicht ersetzt werden, ihr Beruf wird sich verändern. Und vielleicht wird er noch interessanter als er es ohnehin schon ist.
Soko Maier ist die Software-Kolumne von inside-it.ch. Hier schreibt Karakun-CEO Elisabeth Maier regelmässig über Themen rund um Software und Programmiersprachen.
Sponsoring