Das Wissensportal für IT-Professionals. Entdecke die Tiefe und Breite unseres IT-Contents in exklusiven Themenchannels und Magazinmarken.

SIGS DATACOM GmbH

Lindlaustraße 2c, 53842 Troisdorf

Tel: +49 (0)2241/2341-100

kundenservice@sigs-datacom.de

Generative KI hält Einzug in die Softwareentwicklung

Am 30. November 2022 hat OpenAI mit ChatGPT einen Chatbot zur Interaktion zwischen Maschine und Mensch veröffentlicht und damit die signifikanten Fortschritte in den letzten Jahren im Bereich der Künstlichen Intelligenz (KI) allen zur Verfügung gestellt. Binnen kürzester Zeit haben sich Millionen Nutzer registriert und damit sämtliche bisherigen Wachstumsrekorde bei Neuveröffentlichungen von Softwareprodukten pulverisiert.
Author Image
Daniel Klan

Author


  • 28.02.2024
  • Lesezeit: 11 Minuten
  • 122 Views

ChatGPT zeigt eindrucksvoll, was mit LLM (large language models) heute möglich ist. Mit seiner Investition von über 10 Mrd. US-Dollar hat Microsoft früh das Potenzial für zukünftige Produkte erkannt und setzt mittlerweile einen wesentlichen Schwerpunkt auf die Weiterentwicklung der präsentierten Lösung sowie die Integration in nahezu alle firmeneigenen Produkte [Forb23]. Die Integration der KI von OpenAI in das zu Microsoft gehörende GitHub-Produkt Copilot [GitH] hat schnell aufgezeigt, was im Bereich der Softwareentwicklung möglich ist und welche Potenziale im Bereich der durch KI unterstützten Softwareentwicklung bestehen. Erste positive Erfahrungen von Entwicklern zeigen signifikante Produktivitätssteigerungen [Kal22] auf, was den Fokus schnell in Richtung kostengünstigerer Produkte mit geringerer Time-to-Market lenkt.

Die Unterstützung bei der Erzeugung von Code ist erst der Anfang. Es wird schnell deutlich, dass sich auch im gesamten Bereich des Software-Lebenszyklus, von der Planung, über die Anforderungsanalyse, die Softwareentwicklung, das Testen, das Releasen sowie den klassischen Betrieb, mit den neuen Möglichkeiten Optimierungspotenziale ergeben. Die damit einhergehenden Veränderungen werden mindestens einen ebenso starken Einfluss auf die Entwicklung und den Betrieb von Software haben, wie dies agile Softwareentwicklung, CI/CD, DevOps oder der Wechsel hin zu objektorientierter Entwicklung hatten. Es ist absehbar, dass hier ein signifikanter Wandel stattfinden wird beziehungsweise bereits im Gange ist. Die Plattform „Stack Overflow“, bei Softwareentwicklern sehr beliebt für die Suche nach Beispielen und Lösungsvorschlägen, hat bereits heute mit Nutzerzahlenrückgängen zu kämpfen [Brie22].

Angesichts der beeindruckenden Fähigkeiten der bereits heute verfügbaren KI-basierten Werkzeuge stellt sich die Frage nach der Entwicklung und den Auswirkungen auf unser direktes Arbeitsumfeld: Welche Konsequenzen werden die Entwicklungen auf unsere täglichen Tätigkeiten haben? Wie müssen sich Softwareentwickler und Unternehmen aufstellen, um mit den Entwicklungen Schritt zu halten und diese optimal zu nutzen? Im Folgenden nähern wir uns den Antworten auf diese Fragen an.

Veränderungen im Softwareentwicklungsprozess durch Generative KI

LLM basieren auf neuronalen Netzen, welche Milliarden von Parametern lernen. Auf Basis großer Mengen von Beispieltexten werden so statistische Zusammenhänge zwischen Worten oder Zeichensequenzen (Token) erlernt. Die erzeugten Modelle dienen anschließend dazu, token- oder wortweise Antworten auf Eingaben zu liefern. Das heißt, das System nimmt die Anfrage und versucht, anhand dieser das wahrscheinlich nächste Wort oder den nächsten Token zu vorherzusagen. Das Ergebnis inkl. der Originalanfrage dient wiederum der Erzeugung des nächsten Tokens. Das Verfahren wird so lange angewandt, bis entsprechende Kriterien zum Abbruch der Tokenerzeugung erreicht sind. Multimodale Modelle können dabei nicht nur Texteingaben und -ausgaben verarbeiten, sondern auch Bild- und Audioinformationen generieren. Aufgrund dieses Vorgehens sind die existierenden Verfahren insbesondere für das Filtern, Extrahieren, Aggregieren oder problemübergreifendes Adaptieren von Inhalten geeignet.

Produkte wie GitHubs Copilot, AWS CodeWhisperer [CodeW] oder Tabnine [Tabn] nutzen diese Eigenschaften aus, um Erlerntes aus großen existierenden Datenbeständen auf ähnliche Probleme im Bereich der Codeerzeugung anzuwenden. Die KI unterstützt den Entwickler bei der Autovervollständigung von Code oder Dokumentation, sie schlägt automatisch komplette Codefragmente vor oder entwickelt ganze Testskripte basierend auf dem Bestandscode oder einfachen textuellen Beschreibungen. Letztendlich obliegt es aber jedem Einzelnen, die Hilfe anzunehmen.

Die KI als Partner im Pair-Programming ist aber erst der Anfang. Für Entwickler lästige zeitintensive, aber notwendige Aufgaben wie das Entwickeln von Testfällen oder das Erzeugen qualitativ hochwertiger Dokumentationen sind der natürliche nächste Schritt. Je nach Umfeld verbringen viele Entwickler heute nur ca. 30 bis 50 Prozent ihrer Arbeitszeit mit dem Entwickeln von neuem Code (Laut [Kad22] liegt die Fokuszeit, in welcher Entwickler konzentriert an einem Thema arbeiten können, bei ca. 50 %). In der verbleibenden Zeit sind die Spezialisten mit dem Erzeugen von Spezifikationen, dem Schreiben von Tests oder der Dokumentation ihrer Ergebnisse beschäftigt. Es ist absehbar, dass wiederkehrende einfache Aufgaben an entsprechende Werkzeuge ausgelagert werden können. Wer diesen Weg nicht mitgeht, wird langsamer und teurer und damit langfristig vom Wettbewerb verdrängt.

Die Möglichkeiten gehen aber weit über die einfache Erzeugung von Code hinaus. Microsoft baut die Lösungen von OpenAI in ihre Kernprodukte wie Windows und die Office-Werkzeuge ein, um dem Nutzer das Konfigurieren von Systemen abzunehmen oder ganze Präsentationen zu erstellen. Der Office-Assistent Karl Klammer ist zurück. Nun aber richtig!

Entsprechend ist absehbar, dass auch im Bereich der Softwareentwicklung zukünftige Werkzeuge jenseits der reinen Codeanalyse oder -unterstützung entwickelt werden. Im Bereich der Anforderungsanalyse/des Requirements Engineering werden zukünftig KI-Module für eine bessere und genauere Beschreibung von Use-Cases existieren, automatisch generiert, idealerweise direkt aus den Gesprächsmitschnitten der Product Owner. Die KI wird basierend auf diesen architekturelle Empfehlung geben und Testcasevorschläge unterbreiten, eventuell auch schon einmal den ersten Code automatisch in git hochladen, sodass der Entwickler primär zum Kontroll-/Verbesserungsorgan wird. Gibt es einen Fehler in Produktion, wird das Fehlverhalten zunächst durch eine KI geprüft und dem Maintainer werden Vorschläge gemacht, wie der Incident behoben werden kann und welche Entwicklungsmaßnahmen ergriffen werden müssen, um das Problem dauerhaft zu lösen. Die Möglichkeiten sind schier unendlich. Abbildung 1 gibt einen ersten Einblick über Möglichkeiten von KI im Software-Lebenszyklus.

Abb. 1: Mögliche KI-Anwendungsszenarien im Software-Lebenszyklus

Der Weg der Transformation

Viele der hier vorgestellten Lösungen existieren noch nicht. Allerdings ist die Frage nicht, ob diese Dinge kommen, sondern wann. Und betrachtet man die aktuelle Geschwindigkeit der Entwicklung und die massiven Investitionen in diesem Bereich, so liegt die Vermutung nahe, dass dies eher früher als später geschehen wird. Letztendlich werden diese Veränderungen einen entscheidenden Einfluss darauf haben, wie Software zukünftig entwickelt wird. Wie müssen sich Unternehmen aufstellen, um konkurrenzfähig zu bleiben? Was sind zukünftige Aufgaben und Rollen in der Entwicklung? Wird es langfristig den klassischen Softwareentwickler, Tester oder Requirements Engineer noch geben? Wie werden sich diese Berufsbilder zukünftig wandeln?

Die Durchführung einfacher repetitiver Aufgaben gehört zu den klassischen Aufgaben für Einsteiger und Junior-Kollegen. Wie wird man Senior, wenn es keinen Entwicklungspfad mehr über die Juniorrolle gibt? Werden am Ende nur noch Manager oder Architekten übrig bleiben? Wir arbeiten in einer Zeit, in der wir maßgeblich diese Fragen mitbeantworten werden, weil wir sie selbst gestalten.

Die Übersicht nicht zu verlieren und die Transformationen frühzeitig mit anzustoßen, sind dabei die wichtigsten Herausforderungen. Viele Unternehmen gründen daher eigene Kompetenzzentren, welche sich des Themas annehmen und versuchen, die Möglichkeiten zu eruieren. Bei großen Unternehmen zählen Harmonisierungsmaßnahmen zwischen all den Initiativen zu den größten Aufgaben, denen sie sich stellen müssen.

Darüber hinaus ist die frühzeitige Einbindung der Mitarbeiter elementar für den Umbau – je nach Unternehmensgröße und „Selbstverpflichtung“ der Mitarbeiter, sich gegenüber den KI-Werkzeugen zu öffnen oder weniger intensive Mitarbeiterschulungen durchzuführen. Letztendlich überzeugt bei GenAI-Werkzeugen aber nur der Hands-on-Ansatz – darüber lesen oder sprechen ist das eine, man muss es selbst probieren. ChatGPT ist cool – aber erst mit dem Copiloten lernt man das Fliegen. Hackathons bieten sich zum Beispiel an, um die Mitarbeiter beim Thema GenAI abzuholen, bereits vorhandenes Wissen zu nutzen und Anwendungsfälle im eigenen Unternehmen auszuloten. Aufgrund der hohen Entwicklungsgeschwindigkeit wird sich auch unser Lernmuster ändern. Wer nicht regelmäßig trainiert, wird schnell zurückbleiben. Es ist absehbar, dass sich das Berufsbild in der Softwareentwicklung bewegen wird [WEF23]. Die großen KI-Anbieter bedienen einen weltweiten Markt.

Es ist davon auszugehen, dass der Ingenieurfokus mehr in Richtung des problemspezifischen Trainings oder der Optimierung der generischen Ansätze gehen wird (Stichwort: KI-Ingenieure oder Datenkuratoren).

Alles gut?

Der AIA (Artifical Intelligence Act) ist der Versuch der EU-Kommission, dem Thema KI einen Schutzmechanismus zu geben, welcher grundlegenden Schaden von Bürgern abwenden soll. Letztendlich bedeutet die Beschäftigung auf EU-Ebene mit dem Thema, dass der aktuelle Entwicklungsprozess auch dort sichtbar geworden ist und Risiken erkannt wurden, welchen es zu begegnen gilt. Ähnliches findet sich auf Unternehmensebene. Hier stehen häufig das Interesse des Unternehmens und die eigene wirtschaftliche Entwicklung im Vordergrund. Letztendlich sind die Probleme aber ähnlich und die Fragestellungen sind dieselben: Welche Herausforderungen bringt der Fortschritt im Bereich KI mit sich? Wie kann ich den größtmöglichen Mehrwert bei geringstem Risiko für die eigene Entwicklung und den Kunden erzeugen?

Potenzielle Risiken sind hierbei Unternehmens- oder Kundendaten, wie wird mit Produktcode oder personenbezogenen Daten umgegangen (z. B. Client Data Protect, GDPR oder EUDP). All diese Punkte gilt es zu klären. Letztendlich sind diese aber häufig nicht unähnlich dem Schritt der Cloudifizierung von IT-Landschaften. Auch beim Thema KI fließen die Informationen zu einem Dritten, welcher speichert oder auswertet. Im Kontext der KI kommen die Analyse und das Training von Modellen hinzu. Viele der Themen sind bekannt und werden (mehr oder weniger erfolgreich) bereits heute adressiert, wie etwa durch unternehmenseigene Cloud-Instanzen. Der einzelne Entwickler ist der letzte, der entscheiden kann, wann welche Werkzeuge mit welchen Daten zugelassen sind. Hier sind klare unternehmensinterne Vorgaben zu erzeugen und zu kommunizieren. Nur so wird ausreichend Vertrauen in die Technik und das Unternehmen aufgebaut.

Spannend ist auch der Weg der erzeugten Daten zurück ins eigene Ökosystem. GenAI generiert tokenweise Informationen (basierend auf existierenden Dokumenten). Zur Vermeidung von rechtlichen Problemen ist sicherzustellen, dass dabei keine Copyrights verletzt werden. Hier gibt es aktuell zahlreiche Auseinandersetzungen und auch neue Partnerschaften mit Content-Anbietern [Open AI23].

Anwendungen wie ChatGPT versuchen, plausible Antworten auf der Grundlage der Inhalte, mit denen sie trainiert wurden, vorherzusagen. Nur weil Dinge für ein neuronales Netz wahrscheinlich sind, müssen sie nicht inhaltlich richtig sein (die KI „halluziniert“). In Konsequenz bedeutet dies, dass Code und andere generierte Artefakte niemals ungeprüft in ein Produkt wandern sollten. Hier werden auch für lange Zeit noch Entwickler im Einsatz sein müssen!

Fazit oder auch: „Fortsetzung folgt“

Wird KI den Entwickler überflüssig machen? In naher Zukunft sicher nicht. KI ist ein hervorragendes Werkzeug, um die Prozesse im Software-Lebenszyklus effizienter zu gestalten. GenAI kann bestimmte Aufgaben automatisieren und aufschlussreiche Datenanalysen liefern. Aber es erfordert immer noch menschliche Supervision, strategische Ausrichtung und Kreativität.

Zutreffender ist eher, dass GenAI die Art und Weise der Softwareentwicklung verändern wird, indem sie andere Fähigkeiten des Entwicklers in den Vordergrund stellt. Diese Verlagerung des Schwerpunkts erfordert von den zukünftigen Softwareentwicklern verstärkte Problemlösungsfähigkeiten, strategisches Denken und ein tiefes Verständnis der Geschäftsanforderungen.

Weitere Informationen

[Brie22] J. Brien, 14.5.2023, siehe:
t3n.de/news/programmierer-chatgpt-traffic-stack-overflow-ki-chatbot-programmieren-1552248/

[CodeW] aws.amazon.com/de/codewhisperer/

[Forb23] B. Marr, 6.3.2023, siehe:
www.forbes.com/sites/bernardmarr/2023/03/06/microsofts-plan-to-infuse-ai-and-chatgpt-into-everything/

[GitH] github.com/features/copilot

[Kad22] D. Kador, How are other Engineers spending their time?, 12.12.2022,
www.getclockwise.com/blog/2023-software-engineering-meeting-benchmarks

[Kal22] E. Kalliamvakou, Blog, siehe:
github.blog/2022-09-07-research-quantifying-github-copilots-impact-on-developer-productivity-and-happiness/

[OpenAI23] OpenAI, 13.12.2023, siehe:
openai.com/blog/axel-springer-partnership

[Reu23] K. Hu, Reuters, 2.2.2023, siehe:
www.reuters.com/technology/chatgpt-sets-record-fastest-growing-user-base-analyst-note-2023-02-01/

[Tabn] www.tabnine.com/

[WEF23] World Economic Forum, 18.9.2023, siehe:
www.weforum.org/publications/jobs-of-tomorrow-large-language-models-and-jobs/

. . .

Author Image
Zu Inhalten
Emmanuel Losch ist Kommunikationsexperte und unterstützt Kunden bei der strategischen Erstellung von zielgerichteten Inhalten und der Organisationsentwicklung. Bei Accenture kombiniert er seine langjährige Erfahrung in der Kommunikationsbranche als diplomierter Regisseur und Werbetexter mit Softwaretechnologien und Webentwicklung.
Author Image

Daniel Klan

Author
Zu Inhalten
Dr. Daniel Klan ist promovierter Informatiker, Senior Technology Architect und arbeitet als Solution Architect für große Kundenprojekte. Als Experte im Bereich Software-Lebenszyklus unterstützt er bei der Planung und Einführung von GenAI-Werkzeugen auf operativer Ebene und treibt in diesem Bereich unternehmensinterne Fortbildungsmaßnahmen voran.

Artikel teilen