zur Übersicht

Unsere Xperten über KI in der Softwareentwicklung (3)

Lesedauer ca. 8 Minuten
31.07.2024

Zum Abschluss unserer Xperten-Runde haben wir noch mit Stephan Felke gesprochen. Als ehemaliger Softwareentwickler hat der heutige Product Owner ein umfassendes Verständnis davon, was es bedeutet, in den unterschiedlichen Rollen zu arbeiten und welchen Einfluss KI künftig auf die Softwareentwicklung haben wird.


stephan_felke Stephan Felke


Wie schätzt du den allgemeinen Stand derzeit ein und was bedeutet das für uns als Unternehmen?

Das, was da gerade rund um das Thema KI passiert, hat auf jeden Fall Auswirkungen, auch auf uns. Um möglichst stabil mit diesen Veränderungen umzugehen, fußt unsere KI-Strategie deshalb auf zwei Säulen. Zum einen darauf, KI-Tools in der Softwareentwicklung zur bestmöglichen Umsetzung unserer Kundenprojekte einzusetzen und zum anderen arbeiten wir selbst an KI-basierten Lösungen.

Was den ersten Punkt betrifft, so haben wir als Arbeitgeber der Zukunft natürlich im Blick, dass KI-Tools höchstwahrscheinlich den Markt dominieren werden, genauso wie das IDEs schon heute als Unterstützung in der Softwareentwicklung tun. Wir wollen am modernen Entwicklungsprozess mitwirken und diesen auch unseren Mitarbeitenden ermöglichen. Gleichzeitig ist es uns auch wichtig, den Anforderungen unserer Kunden auch in Zukunft gerecht zu werden.

Geht es um unsere eigenen KI-basierten Lösungen, so ist Predictive Maintenance sicherlich eines der größten Marktsegmente, das unseren Kunden einen Mehrwert bringt. Aktuell sind wir hier auch in zwei Projekten eingebunden. So haben wir bspw. für ein großes Logistikunternehmen ein prädiktives Wartungssystem entwickelt, das auf der Auswertung von Audiodaten mittels Data-Science-Methoden basiert und an vielen Standorten in Europa sowie in den USA im Einsatz ist. Das System unterstützt dabei, dass hunderttausende Paket- und Briefsendungen täglich sicher ihr Ziel erreichen. Die Lösung wird zukünftig auch in der Lage sein, Videodaten zu verarbeiten, um noch bessere Informationen über den Zustand von Anlagen verschiedenster Hersteller zu berechnen. Für unsere innerbetriebliche Datenbasis forschen wir gerade an Möglichkeiten ein eigenes Modell, das auf einem LLM basiert, zu entwickeln.

Was den allgemeinen Stand in der Softwareentwicklung betrifft, ist definitiv erkennbar, dass diese LLMs nichts Geringeres als eine KI-Revolution darstellen. Sie ermöglichen Anwendungen, die mit früheren KI-Technologien nur mit erheblichem Aufwand bzw. gar nicht umsetzbar waren. Erstaunlich dabei ist, dass diese Tools auch sehr einfach zu benutzen sind. Diese Form der einfachen Nutzbarkeit führt dazu, dass mehr und mehr Menschen diese Tools zunehmend einsetzen und somit auch populärer werden. Dadurch steigt auch der Anteil an Entwicklungsenergie, der in diese Modelle gesteckt wird, was dazu führt, dass diese Modelle immer besser werden. Da entsteht so eine Art Erfolgsspirale.

Veränderungen wie diese, haben natürlich auch Auswirkungen auf die Softwareentwicklung. IDEs leisten aktuell ja vor allem Verbesserungen auf syntaktischer Basis und durch das Nutzen von KI werden dadurch Verbesserungen auf semantischer Basis möglich. Bspw. kann eine Coding-AI das Fehlen der Behandlung von Fehlern erkennen und direkt Lösungsvorschläge anbieten.

Durch KI haben Softwareentwickelnde eine bessere Unterstützung im Entwicklungsprozess. Anforderungen werden zukünftig direkt in Code- bzw. Lösungsvorschläge übersetzt. Dass Softwareentwickelnde dadurch komplett ersetzt werden könnten, halte ich vom jetzigen Zeitpunkt aus für unwahrscheinlich. Als Mensch habe ich immer noch mehr Kontext und einen anderen Blick auf Probleme und verstehe viel besser, was umgesetzt werden soll, als eine Maschine aktuell zu leisten, imstande ist. Der Einsatz von KI-Tools zur Softwareentwicklung wird jedoch in den nächsten fünf bis zehn Jahren immer stärker steigen und am Ende alternativlos bleiben.

Wie wird sich die Arbeit von Softwareentwickelnden, denkst du, verändern?

Einen großen Vorteil sehe ich darin, dass sich Entwickelnde nicht mehr um Dinge wie bspw. Boilerplate Code kümmern müssen. Auch das Generieren von Tests und allen möglichen Artefakten (Build-Artefakt, Docker Container etc.) wird mehr oder weniger von KI-Tools übernommen werden. Das Kernstück des Codes wird jedoch nach meiner Einschätzung in Menschenhand bleiben. Auch wenn es darum geht, neues Wissen zu erlangen, können diese Tools hilfreich sein. Entwickelnde sind immer darauf angewiesen, sich neues Wissen anzueignen. Hier kann eine KI vor allem dabei unterstützen, Inspiration bzw. Wissen zu erlangen und bei der Umsetzung helfen.

Probleme sehe ich, wenn Entwickelnde beginnen, sich auf KI-generierte Lösungen zu verlassen und diese nicht mehr überprüfen. Früher wurde immer gepredigt, keinen Code aus dem Internet zu kopieren und diese Maxime sollte auch für KI-generierte Lösungen gelten. Je komplexer eine Lösung wird, desto schwieriger ist diese auch für den Menschen nachvollziehbar. Wer hier voll auf KI vertraut und die generierten Lösungen nicht mehr hinterfragt bzw. nicht versteht, läuft Gefahr fehlerhafte oder gar schadhafte Software zu produzieren. Es ist in diesem Bereich enorm wichtig, nachvollziehen zu können, was passiert.

Gleichzeitig stellt sich auch hier die Frage: Wer ist für den Code verantwortlich? Wie bei selbstfahrenden Autos gibt es hier noch keine eindeutigen Richtlinien. Um überhaupt Fehler in der Software mit womöglich schwerwiegenden Folgen zu vermeiden, müssen Softwareentwickelnde in der Lage sein, diese in KI-generierten Lösungen auch zu erkennen. Nach meinem Verständnis bleibt es unerlässlich, dass Softwareentwickelnde sicherstellen, dass KI-generierte Lösungen auch korrekt sind.

Mit dem zunehmenden Einsatz von KI-Tools wird sich auch die Rolle von Softwareentwickelnden verändern. Heutzutage ist es ja bereits so, dass diese zweigeteilt ist. Da gibt es zum einen die Produktion des Codes und zum anderen das Code-Review, also die Überprüfung des Codes, den andere geschrieben haben. Was die erste Rolle betrifft, so kann ich mir durchaus vorstellen, dass diese weitestgehend durch den Einsatz von KI-Tools abgedeckt werden wird. Anders verhält es sich mit dem Review. Wie bereits zuvor angesprochen, glaube ich, dass dieses Überprüfen von Lösungen einen großen Teil der Entwickelnden-Tätigkeit einnehmen wird und auch nicht so einfach durch KI-Tools ersetzt werden kann.

Das alles hat natürlich auch Einfluss auf die Expertise von Softwareentwickelnden. Aktuell ist es so, dass Senior Developer ein tiefes Verständnis von der Materie haben und über großes Detailwissen verfügen. Das hilft ihnen zu verstehen, wie ein Softwareprodukt bis eben ins kleinste Detail funktioniert. Es wird weiterhin so sein, dass man diese Art von Softwareentwickelnden benötigt, alleine schon aus den zuvor genannten Gründen wie bspw. der Überprüfung von KI-generierten Lösungen.

Schwierig wird es, wenn Menschen von Anfang an nur noch mit KI-Tools arbeiten und erst gar nicht in die Verlegenheit kommen, sich mit den Details auseinanderzusetzen. Diese Tools können ja vor allem auch dazu führen, immer schneller arbeiten zu müssen. Hier sehe ich definitiv eine potenzielle Gefahr, dass ein Unternehmen dann bspw. nur noch Softwareentwickelnde beschäftigt, die sich ausschließlich oberflächlich auskennen. Firmen, denen Senior Developer fehlen, werden definitiv Schwierigkeiten haben, Aufgaben zu lösen, die aufgrund ihrer Komplexität von einer KI nicht bewältigt werden können.

Vermehrt wird es auch eine Angleichung des Rollenverständnisses von Product Ownern und Softwareentwickelnden geben. Diese Fähigkeiten, die nicht nur mit dem bloßen Coden zu tun haben, werden in Zukunft für Softwareentwickelnde immer wichtiger werden und können nicht so einfach an KI-Tools ausgelagert werden.

Um nicht abgehängt zu werden, ist es wichtig, da dranzubleiben. Ganz im Sinne von Embrace the Change. Man kann die Entwicklung nicht aufhalten und das hat man schon bei Dingen wie bspw. der Industrialisierung gesehen. Es ist wichtig, die positiven Aspekte wahrzunehmen und sich als Mensch und Unternehmen stetig weiterzuentwickeln, da man sonst höchstwahrscheinlich auf der Strecke bleibt.

Welche Bedenken hast du mit Blick auf den vermehrten Einsatz von KI?

Ein großer Punkt ist da für mich auf jeden Fall Verantwortung. Ich komme hier gerne wieder auf das Beispiel mit den selbstfahrenden Autos zurück. Auch wenn selbstfahrende Autos nicht unmittelbar mit Softwareentwicklung zu tun haben, so doch die Technik dahinter. Es existieren wissenschaftliche Untersuchungen, die sich damit befassen, was ein Mensch tun würde, wenn er sich bspw. entscheiden müsste, in eine Wand oder einen Menschen bzw. in eine Menschengruppe zu steuern, je nachdem wie hoch seine Überlebenschance ist. Die Parameter sind beliebig austauschbar. Manche dieser Fragen stellen moralische Dilemmata dar und es ist nicht möglich, eine eindeutige Entscheidung zu treffen.

Wenn bereits Menschen nicht in der Lage sind, entscheiden zu können, was richtig oder falsch ist, wie soll es dann erst eine Maschine? Problematisch wird es auch, wenn die Maschine mit Daten trainiert werden würde, die einer bestimmten Gruppe Vorteile verschafft. Das ist jetzt eine sehr dystopische Vorstellung, aber wäre es grundsätzlich nicht möglich, wir sind immer noch bei den selbstfahrenden Autos, dass sich ein reicher Mensch, sogenannte Premiumwege erkaufen kann? Also einen Algorithmus, der für ihn als privilegierter Mensch, jenen Weg wählt, der für ihn, im Falle eines Unfalls, die höchsten Überlebenschancen bietet, auch wenn ein anderer dabei zu Schaden kommen würde? Selbstfahrende Autos sind dabei nur ein Teil des Problems. Vor allem für Menschen, die KI-Anwendungen entwickeln, stellt sich immer wieder die Frage: Kann ich das mit einem moralischen Kompass, der dem Allgemeinwohl dient, in Einklang bringen?

Ein anderer Aspekt, den ich in diesem Zusammenhang sehe, sind die Themen Datenschutz und Sicherheit. In der Regel fließen die verwendeten Daten immer auch in das Training des KI-Modells. Grundsätzlich besteht die Möglichkeit, Daten, die einmal in ein System gegossen wurden, auch wieder extrahieren zu können. Mit den richtigen Queries gegen das KI-System können unter Umständen Teile der Rohdaten wieder regeneriert werden. Dann hat man natürlich ein Datenschutzproblem. Sicherlich wäre es auch möglich, eine KI genau darauf zu trainieren, Daten aus einem KI-Modell wiederherzustellen.

Insgesamt sehe ich die Chancen jedoch, die sich durch den Einsatz von KI ergeben, sei es in der Softwareentwicklung oder auch für uns Menschen, stark überwiegen. So führen selbstfahrende Autos ja auch dazu, dass die Zahl an Verkehrstoten deutlich sinkt. Wenn ich mir überlege, dass wir uns von Höhlenmenschen, die Steine als Werkzeuge benutzten, hin zu Menschen, die Werkzeuge aus flüssigen Metallen herstellten, hin zu Menschen die Maschinen nutzen, bis hin zu Menschen die Maschinen bauen, die selbst Dinge tun, entwickelt haben, bin ich doch ganz schön beeindruckt. Jede dieser Entwicklungen hat unsere Situation als Menschheit besser gemacht. Unser heutiger Wohlstand basiert auf diesem Prozess der ständigen Weiterentwicklung. Warum sollte KI nicht der nächste Schritt auf dieser Stufe sein und wir nutzen ihn für uns?