zur Übersicht

Unsere Xperten über KI in der Softwareentwicklung (2)

Lesedauer ca. 11 Minuten
16.07.2024

Als Nächstes haben wir mit Danny Hucke gesprochen. Mit seiner Expertise unterstützt er uns als Teamleitung im Digital Product Design und übernimmt zudem die Rolle wissenschaftlicher Referent. Bereits letztes Jahr hat er uns Einblick in seine Gedanken zum Thema KI gegeben und wir waren gespannt, ob sich sein Blick darauf verändert hat.


danny_ki_tools Danny Hucke


Seit unserem letzten Gespräch ist genau ein Jahr vergangen, wie stufst du die Entwicklung seither ein?

Im Moment sind wir gerade mitten in der Entwicklung vom KI-Assistenten zum KI-Agenten. Was den Anwendungsfall betrifft, so sind wir ganz klar noch bei den Assistenten. In der Entwicklung sieht das jedoch anders aus, da wird immer häufiger an Agenten gearbeitet.

Was unterscheidet diese Agenten von ihren Vorgängern?

Assistenten wie ChatGPT funktionieren ja nach dem einfachen Prinzip: Eingabe und Ausgabe. Agenten weisen diesbezüglich einen deutlich komplexeren Ablauf auf. Die drei wesentlichen Dinge dabei sind:

Agenten antworten nicht sofort, sondern sind dazu aufgefordert, sich Gedanken über die gestellte Anfrage zu machen. Sie schmieden einen Plan und zerlegen die Aufgabe in Teilprobleme. Im Wesentlichen besteht ihr erster Schritt darin, die Fragestellung zu überdenken. Technisch kann man sich das so vorstellen: Um das LLM, das eine reine Eingabe-Ausgabe-Maschine ist, wird Code geschrieben, der nichts anderes macht, als das LLM dazu zu bringen, erst einmal über die gestellte Aufgabe nachzudenken, und nicht sofort eine Antwort zu liefern. Endnutzende bekommen davon natürlich nichts mit. Das Problem wird erst einmal analysiert und die Agenten reflektieren das Problem.

Der zweite Unterschied zu den Assistenten besteht simpel gesagt darin, dass Agenten Zugriff auf Tools haben. Ganz egal, ob es sich dabei um einen Webbrowser, Datenbanken, APIs oder den Umstand, dass Agenten auch Code ausführen können, handelt. Agenten sind demnach in der Lage zu googeln, etwas, das Softwareentwickelnde auch machen würden. Sie erkennen selbst, ob der von ihnen geschriebene Code schlussendlich auch funktioniert.

Nicht zuletzt identifizieren sie Fehler und versuchen diese selbstständig zu lösen. Man spricht hier gerne von Iteration oder Rückkopplung. Diese Fähigkeit ermöglicht es dem Tool, ständig weiterzuarbeiten. Es löst ein Problem und fährt dann fort. Da jedes Problem potenziell jedoch ein neues auslösen könnte, besteht die Gefahr, dass der Agent in einer Schleife hängen bleibt.

Aktuell ist es so, dass KI-Assistenten definitiv in der breiten Entwicklung als Unterstützung angekommen sind. Da die Zahl an Agenten, die überhaupt auf dem Markt sind, überschaubar ist, sind diese im Moment noch vergleichsweise gering im Einsatz. Ein Tool, das ich hier auf jeden Fall erwähnen möchte und noch relativ jung ist, ist Devin AI. Angepriesen als „The World’s First AI Software Engineer“ verspricht Cognition Labs, das Unternehmen hinter Devin, einen KI-Agenten mit bisher unerreichten Fähigkeiten. Völlig autonom und lernfähig ist das Tool in der Lage, Fehler zu identifizieren und zu beheben, denkt und plant selbständig, um es in Cognitions Worten zu sagen. Darüber hinaus ist es auch mit allen relevanten Entwicklungstools wie bspw. Shell, Code-Editor sowie Browser ausgestattet und soll in der Lage sein, komplexe Softwareprobleme zu lösen.

Alleine die Zahl von über 1 Million zahlenden Usern von GitHub Copilot zeigt, dass AI-unterstütztes Coden aus der Softwareentwicklung nicht mehr wegzudenken ist.

Was dabei auf alle Fälle ein Thema ist und bleiben wird, ist Datenschutz. Nahezu alle diese Tools schicken den Code über APIs in die USA, und manche verwenden die Daten auch für das Training ihrer Modelle. Das ist natürlich insofern problematisch, als Entwicklungsartefakte (Code, Konfigurationen, etc.) teilweise auch Firmengeheimnis sind und über diese Modelle dann potenziell auch für andere zugänglich werden. Wie dann mit diesen Tools umzugehen ist, hängt ganz von den Vorgaben, die im eigenen Unternehmen gelten, ab. GitHub Copilot bspw. verspricht, dass die Daten nicht weitergegeben und auch nicht zum Training der Modelle verwendet werden.

Mit den Agenten hast du ja bereits einen kurzen Ausblick in die Zukunft gegeben. Was ist deine Einschätzung, wo wir uns hinbewegen werden?

Persönlich gehe ich davon aus, dass Agenten zunehmend an Relevanz gewinnen werden. Konkret bedeutet das, dass Entwickelnde zukünftig immer mehr Aufgaben gemeinsam mit Agenten lösen werden. Es wird immer mehr so sein, dass Entwickelnde Teilaufgaben an Agenten abgeben und sich somit um komplexere Probleme kümmern können. Die Agenten sind in der Lage, autonom Aufgaben zu lösen und Entwickelnde werden zunehmend die Ergebnisse testen und reviewen.

Ich denke auch, dass sich die Rolle von Softwareentwickelnden mit dem Einsatz dieser Tools maßgeblich verändern wird. Der Anteil am Coden selbst wird zurückgehen und von den Agenten übernommen werden. Nicht nur die Anzahl der Aufgaben, die Softwareentwickelnde zukünftig an KI-Agenten abgeben werden, wird steigen, sondern auch die Fähigkeit dieser Agenten immer komplexere Aufgaben zu lösen. Zeitintensives Coden wird zunehmend zur Seltenheit und Entwickelnde werden stattdessen damit beschäftigt sein, den von KI-Agenten generierten Code zu prüfen und optimieren.

Wo siehst du die zukünftigen Herausforderungen und Chancen?

Mit zunehmender Weiterentwicklung dieser Tools sehe ich Herausforderungen für Unternehmen wie Softwareentwickelnde gleichermaßen. Eigentlich auch für Gesellschaft und Staatsgewalt an sich. Aber alles der Reihe nach.

Für Entwickelnde, die ihre Arbeit mehr oder weniger über das aktive Codeschreiben definieren, könnte es durchaus schwierig werden. Wer jedoch schon immer am Gesamtproblem sowie unterschiedlichen Lösungen interessiert war bzw. es gewohnt ist, das große Ganze zu überblicken und dessen Teilbereiche zu verstehen und abzugeben, wird sehr wahrscheinlich auch von KI-Tools profitieren. Da nun viel mehr Arbeit in deutlich kürzerer Zeit erledigt werden kann. Insgesamt, denke ich, wird sich die Rolle von Entwickelnden viel stärker in Richtung Product Owner und Projektmanagement bewegen und die Grenzen zwischen diesen Funktionen werden zunehmend verwischen.

Auch wenn die Hürden, Softwareprodukte zu schreiben, kleiner werden, muss das nicht zwangsläufig bedeuten, dass auch weniger Entwickelnde benötigt werden. Vielmehr erhalte ich als Unternehmen die Möglichkeit, Projekte in Größenordnungen zu realisieren, die bisher unwirtschaftlich waren. Ich sehe das so, dass die Menge an Software ja nicht weniger wird, sondern eher mehr und damit auch die Nachfrage an Entwickelnden nicht unbedingt sinkt. Diese Tools erhöhen die Produktivität und somit auch die Möglichkeiten, gute Software zu produzieren. Alles in allem war es in der IT schon immer so, dass mit dem Aufkommen neuer und effizienterer Programmiersprachen auch der Bedarf an Software gestiegen ist. Bis das alles so weit ist, wird es natürlich noch ein wenig dauern. Zukünftig wird es wahrscheinlich auch möglich sein, sich als Unternehmen kostengünstige Software für die eigenen Geschäftsprozesse nach Maß zu bauen und ist nicht mehr so stark von den großen Firmen abhängig.

Herausforderungen sehe ich vor allem auch, wenn es darum geht, dem Output einer KI zu vertrauen. Auch die fortgeschrittenste KI wird Fehler machen und hier ist es vor allem wichtig, Softwareentwickelnde im Umgang damit zu schulen und die Tools sicher in die eigenen Kreisläufe zu integrieren. Monitoring wird immer wichtiger werden und wer einer KI blind vertraut, kann sich auch ganz schnell Malware ins Haus holen. Es ist wichtig, das Verhalten dieser Tools zu verstehen und an sie dieselben Anforderungen zu stellen, wie auch an Softwareentwickelnde. Was damals gegolten hat, gilt auch heute noch: Übernimm keine Lösung, die du selbst nicht verstehst. Die Geschwindigkeit Software bauen zu können alleine macht diese noch nicht zu einem guten Produkt, auch die Qualität muss stimmen. Die Ansprüche an Transparenz und Adaptionsfähigkeit sind wahrscheinlich so hoch wie nie.

Aktuell befinden wir uns in einer Zeit der Assistenten und Agenten. Während die einen noch nicht einmal mit Assistenten arbeiten, gibt es jetzt die ersten, die Agenten aktiv für die Entwicklung ihrer Softwareprodukte einsetzen. Klar ist, dass der KI-Anteil in der Softwareentwicklung zunehmend größer werden wird. Die gerade aufkommenden Agenten werden dem Ganzen noch mal einen Push verleihen und für einen rasanten Anstieg der Kurve sorgen. Der Kern bzw. das „Gehirn“ all dieser Anwendungen ist immer das LLM. Derzeit gibt es viele Dinge, die um diese LLMs herum gebaut werden und da werden wir auch noch einiges sehen, bis das Limit erreicht ist. Wirklich revolutionär könnte es wieder werden, wenn sich auch die LLMs weiterentwickeln; was dann möglich sein wird, kann ich nicht vorhersagen. Verläuft die Entwicklung jedoch ähnlich wie bisher, kommt Großes auf uns zu.

Gleichzeitig muss man auch sagen, dass es seit GPT-4 keinen wirklichen Sprung mehr gegeben hat. Klar, es gibt Modelle, die vielleicht ein wenig besser Coden oder mit Sprache umgehen können als GPT-4, aber insgesamt sind all diese Modelle auf einem ähnlichen Level. Es besteht durchaus die Möglichkeit, dass die LLMs erst einmal an eine Grenze stoßen, die wir nicht so schnell überschreiten, auch wenn ich nicht glaube, dass die Modelle schon ihre Grenzen erreicht haben. Nichtsdestotrotz sind wir, was den Code bzw. die Anwendungen, die um diese LLMs herum entwickelt werden, anbelangt, erst in den Anfangsschritten.

Falls das Gehirn, also diese Art von Modellen, ein Limit hat, dann haben auch die Agenten ein Limit und die Sprünge, die wir machen, werden immer kleiner. Aber ja, die letzten Jahre haben natürlich auch gezeigt, dass man mit Prognosen in diesem Bereich nicht weit kommt. Was ich heute sage, kann morgen bereits veraltet sein. Grundsätzlich halte ich jedoch, was KI betrifft, aktuell nichts für unmöglich.

Auch wenn die USA immer noch das Zentrum dieser Entwicklung ist, so ist doch mehr und mehr, wenn auch nur eine leichte Demokratisierung zu sehen. Da gibt es zum Beispiel Mistral aus Frankreich und auch in China passiert derzeit ganz viel rund um das Thema.

Was hältst du von Prognosen, dass Softwareentwickelnde in Zukunft durch KI ersetzt werden?

Stand jetzt muss man sagen, dass es da ganz klar Limits gibt. Diese Agenten sind noch nicht dort, dass sie alles machen können, was Softwareentwickelnde leisten, auch ein Tool wie Devin nicht. Sie brauchen selbstdefinierte Rahmen und sind von guter Datenqualität abhängig. Bspw. haben diese Tools riesige Probleme mit Legacy Code und ich sehe komplexe Probleme dieser Art schon noch eine ganze Weile in Menschenhand. Der Beruf Software Engineer ist ja nicht nur das Coden an sich. Da gehört noch eine ganze Menge mehr dazu. Zuallererst gilt es ja herauszufinden, was das eigentliche Problem ist. Da geht es ganz viel darum, die Sprache des Kunden, also das, was er eigentlich will, in eine technische Sprache zu übersetzen. Derzeit kann eine Maschine nicht zuverlässig beurteilen, ob das, was der Kunde sagt, tatsächlich auch dem entspricht, was er möchte. Herauszufinden, was eigentlich gecodet werden soll, war schon immer einer der schwierigsten Teile und Dinge wie bspw. Anforderungserhebung, Architektur oder Kundekommunikation sehe ich Softwareentwickelnde nicht so schnell an Maschinen abgeben.

Schwierig wird es, wenn das Coden an sich mein Traumjob ist. Bisher galt diese Art der Tätigkeit als schwierig und wurde auch dementsprechend gut bezahlt. Plötzlich gibt es Maschinen, die diese Aufgabe mehr oder weniger übernehmen können bzw. auch Menschen ohne herausragende Coding-Kenntnisse, die mithilfe dieser KI-Tools Software programmieren. Klar, Softwareentwicklung ist nicht die erste Branche, die von einer solchen Entwicklung betroffen ist, aber wenn sich die Anforderungen an einen Job ändern, hat das auch Auswirkungen auf die Menschen. Einige werden Spaß an den neuen Aufgaben haben, aber für andere fällt das zentrale Element ihrer Arbeit weg, und die können sich womöglich schwerer damit anfreunden. Hier ist es wichtig, die Menschen mitzunehmen, zu unterstützen und nicht einfach wegzurationalisieren.

Gleichzeitig darf man nicht vergessen, dass auch die Forschung und Entwicklung stetig voranschreitet und ständig Neues hervorbringt. Neue Konzepte und Architekturen entstehen kontinuierlich und treiben die Branche voran. Aufkommende Technologien wie zum Beispiel Quantencomputing müssen erst hinreichend verstanden werden und es müssen sich Best-Practices bilden und durchsetzen, bevor sie von KI-Tools wie Large Language Models (LLMs) effektiv genutzt werden können. Diese fortlaufende Innovation bietet neue Möglichkeiten und Herausforderungen, die die IT-Landschaft ständig verändern und weiterentwickeln.

Was in der ganzen Entwicklung natürlich auch nicht zu unterschätzen ist, ist der Einfluss der Gesetzgebung. Der vor kurzem in Kraft getretene EU AI ACT hat ja gleichermaßen Lob und Kritik geerntet, je nachdem von welcher Seite man da draufschaut. So etwas hat natürlich Konsequenzen, wie bspw., dass große Unternehmen wie Google bestimmte Produkte gar nicht erst am europäischen Markt anbieten. Insgesamt ist das eine große Herausforderung für alle an der Gesetzgebung Beteiligten, Regeln zu finden, die die Menschen schützen. Mir ist das auch ein persönliches Anliegen, den Menschen ins Zentrum zu rücken. Es ist wichtig, die Chancen, die uns KI ermöglicht, zu nutzen und Anwendungen für und nicht gegen oder anstelle des Menschen zu entwickeln. Stichwort: Human Centered AI.

Bei IT Sonix sind wir gerade dabei, unser Know-how in diesem Bereich weiter zu steigern und versuchen mehr und mehr unsere Mitarbeitenden dazu zu befähigen, mit KI-Produkten zu arbeiten. Es ist wichtig, Hürden abzubauen. Wir entwickeln auch an eigenen Prototypen und folgen voller Faszination den Entwicklungen in diesem Bereich.