Analyse: KI als Ende des Software-Engineerings? Wohl kaum!

Der KI-Assistent Devin kann eigenständig Softwareprojekte umsetzen, stößt aber bald an seine Grenzen, meint Lars Röwekamp.

In Pocket speichern vorlesen Druckansicht 79 Kommentare lesen
Zwei Roboterhände auf einer ergonomischen Tastatur

(Bild: maxuser/Shutterstock.com)

Lesezeit: 9 Min.
Von
  • Lars Röwekamp
Inhaltsverzeichnis

Mitte März stellte das amerikanische Start-up Cognition den KI-Assistenten Devin vor. Er soll beliebige Programmiervorhaben auf Basis einiger weniger natürlichsprachiger Instruktionen automatisiert umsetzen können. Anders als bei den bisherigen KI-basierten Ansätzen zur Codegenerierung wie Microsoft Copilot beschränkt sich Devin dabei nicht darauf, einzelne Codeblöcke zu generieren oder zu optimieren, sondern er setzt gleich ganze Softwareprojekte um. Laut Cognition wird Devin die Art und Weise, wie Softwareentwickler zukünftig ihre Arbeit erledigen, radikal verändern. Die im Rahmen der Ankündigung zum Beleg gezeigten Beispiele sind beeindruckend. Doch das Feedback in der Praxis ist gemischt.

Eine Analyse von Lars Röwekamp

Lars Röwekamp, Gründer des IT-Beratungs- und Entwicklungsunternehmens open knowledge GmbH, beschäftigt sich im Rahmen seiner Tätigkeit als "CIO New Technologies" mit der eingehenden Analyse und Bewertung neuer Software- und Technologietrends, mit Schwerpunkt auf den Bereichen Machine Learning und Cloud Computing. Ein besonderes Augenmerk seiner Arbeit liegt in der Einbettung von ML-basierten Prozessen und Anwendungen in die bestehende IT Landschaft von Unternehmen. Gemeinsam mit seinen Kunden analysiert er die Möglichkeiten – und Grenzen - der Erweiterung und Optimierung von Geschäftsprozessen auf Grundlage ML-basierter Ansätze und setzt diese mit Unterstützung seines Teams bis zur Produktionsreife um. Lars ist Autor mehrerer Fachartikel und -bücher.

Und auch der auf einem Subset der im SWE-Benchmark hinterlegten Codierungsprobleme erreichte Score von 14 Prozent lässt einen großen Sprung in der KI-basierten Software-Generierung vermuten. Zum Vergleich die bisher führenden Ergebnisse: Claude 2 kommt auf 4,8 Prozent), Llama auf 3,9 Prozent und GPT-4 auf 1,5 Prozent.

Die Reaktionen auf die Fähigkeiten von Devin in der Community sind allerdings gemischt: Während Aravind Srinivas, CEO von Perplexity AI, schreibt, dass der autonome KI-Coder "die Schwelle" der menschlichen Fähigkeiten überschritten zu haben scheint, bezeichnet Evan You, ein in Singapur ansässiger Entwickler, den KI-Assistenten als "ziemlich unzureichend". Er fügte hinzu, dass ein Entwickler, der seine Aufgaben nur zu 14 Prozent der Zeit korrekt erledigt, eher eine "Belastung" als eine "Bereicherung" darstellt.

Wie aber sind die Fähigkeiten von Devin nun tatsächlich zu bewerten? Droht Software-Engineers das Ende?

Die gute Nachricht vorweg: Selbst Cognition sieht in Devin eher einen Begleiter oder Kollegen als einen vollwertigen Ersatz für einen Softwareentwickler. "Devin ist ein unermüdlicher, fähiger Teamkollege, der gleichermaßen bereit ist, an Ihrer Seite zu arbeiten oder eigenständig Aufgaben zu erledigen, die Sie überprüfen können", schreibt Cognition in einem Blogbeitrag. "Mit Devin können sich Software-Engineers auf interessantere Probleme konzentrieren, und Entwicklerteams können ehrgeizigere Ziele anstreben."

Um die Möglichkeiten und Grenzen von Devin realistisch bewerten zu können, ist es wichtig zu verstehen, wie ein solches System unter der Haube funktioniert. Da bisher noch keine Details zur genauen Funktionsweise von Devin veröffentlicht wurden, orientieren sich die folgenden Ausführungen an den verschiedenen Demos des Cognition-Blogs.

Auf Basis einer gegebenen Aufgabe, beispielsweise eines Performance-Vergleichs für den Einsatz eines konkreten LLM (Large Language Model) bei unterschiedlichen Providern, erstellt Devin zunächst einen Plan mit den notwendigen Schritten zur Realisierung des Projektvorhabens. Je detaillierter der menschliche Auftraggeber die Anforderung formuliert, desto zielgerichteter ist der Plan.

Das System setzt den Plan anschließend mit unterschiedlichen KI-Agenten und Tools um. Dazu startet Devin eine sogenannte Agent-Loop, die so lange läuft, bis sie die Anfrage zufriedenstellend beantwortet. Innerhalb der Loop kommt es in jedem Schritt zu einer Kombination aus schlussfolgerndem Denken (Reasoning) und daraus resultierendem Handeln (Acting). Beide Verfahren für sich genommen sind im Umfeld von LLMs schon seit längerem bekannt und etabliert. Der Trick bei Systemen wie Devin ist, die beiden Verfahren in Form von ReAct-Agents zu kombinieren und dabei die gesammelten Erkenntnisse der vorherigen Schritte als Entscheidungsgrundlage für den jeweils folgenden Schritt und die damit verbundene Aktion zu verwenden.

Die Konferenz zu Machine Learning und KI von Heise

Am 24. und 25. April 2024 findet in Köln die Minds Mastering Machines statt. Die von iX und dpunkt.verlag ausgerichtete Fachkonferenz jenseits des KI-Hypes richtet sich an Data Scientists, Data Engineers und Developer, die Machine-Learning-Projekte in die Realität umsetzen.

Das Programm der Konferenz bietet an zwei Tagen gut 30 Vorträge in drei Tracks. Lars Röwekamp, der Autor dieses Artikels, hält einen Vortrag zu dem Spagat zwischen Bias und Fairness.

Am zweiten Konferenztag wird es zudem eine Panel-Diskussion zu den Auswirkungen des AI Act geben.

Das dafür notwendige Gedächtnis der Agenten lässt sich per RAG-System (Retrieval Augmented Generation) bereitstellen. Je nach Aufgabe wird aus dem RAG-System das für den nächsten Schritt notwendige Code- oder Informations-Fragment herausgesucht und an das LLM übergeben. Dieser Kniff sorgt dafür, dass die Fragmente klein bleiben, um die Limitierungen der Kontextgrößen auszuhebeln. Das wiederum ermöglicht es dem System, komplexe Aufgaben zu erledigen, die aus mehreren Tausend Schritten und entsprechend vielen Entscheidungen und Aktionen bestehen können.

Interessant ist übrigens, dass die Prompting-UI der Devin-Workbench nicht nur dazu dient, die initiale Aufgabe zu stellen, sondern auch zur anschließenden Mensch-Maschinen-Interaktion während der Abarbeitung. Mithilfe dieses "Human in the Loop"-Agenten ist es zum Beispiel möglich, Devin Feedback zu getroffenen Entscheidungen und den daraus resultierenden Aktionen zu geben, die Prioritäten der Aufgaben dynamisch anzupassen oder die Aufgabenliste nach Bedarf zu überarbeiten.

Devin bietet aus Sicht der angewendeten KI-Methoden also nichts wirklich Neues, sondern kombiniert lediglich geschickt bereits Vorhandenes. Das soll die Leistung des unstrittig begnadeten Teams von Cognition auf keinen Fall schmälern. Schließlich haben sie in Summe immerhin zehn Goldmedaillen bei der berüchtigt schwierigen internationalen Informatik-Olympiade gewonnen.

Realistisch betrachtet stößt Devin aber trotz aller in den vergangenen zwei Wochen aufgekommenen Euphorie und der Prophezeiung, dass nun endlich das Zeitalter der Artificial General Intelligence (AGI) angebrochen sei, an seine Grenzen.

Systeme wie Devin funktionieren dann gut, wenn sich die Aufgabenstellungen formal formulieren lassen, die das System in einen wohldefinierten Plan übersetzen kann. Die Definition der Aufgabe und die sich daraus ergebenen Schritte müssen dabei nicht zwingend vollständig durch den Prompt direkt vorgegeben werden. Es genügt, wenn die KI die Schritte durch die verfügbaren Quellen – wie Spezifikationen, Anleitungen oder Readme-Dateien auf GitHub – herleiten kann. Was von außen wie tatsächliche Intelligenz aussieht, ist am Ende nicht viel mehr als eine geschickte Aggregation und Auswertung vorhandener Informationen sowie der sich daraus ergebenen Schlussfolgerung, welche Aktion in dem gegebenen Kontext jeweils sinnvoll ist.

Die KI macht somit genau das, was ein menschlicher Programmierer bei gleicher Aufgabe tun würde: Sie liest die vorhandenen Informationen, prüft sie auf Plausibilität und Fehler, die sie gegebenenfalls korrigiert, und folgt im Anschluss den vorgegebenen Anweisungen. Es kommt nicht von ungefähr, dass sämtliche von Cognition gezeigten Beispiele genau diesem relativ einfachen Muster entsprechen.

Problematischer wird es allerdings immer dann, wenn eine vorliegende Aufgabe nicht formal sauber und eindeutig beschrieben ist und somit Spielraum für Interpretation lässt. Und genau an diesem Punkt sind wir bei dem typischen Anforderungsprofil realer Softwareprojekte angelangt. Vertreter der Fachabteilungen geben nicht technische Anforderungen umgangssprachlich vor, aus denen Software-Engineers ein Modell erschaffen müssen, das von der realen Welt so weit abstrahiert, wie es die Realisierung der Anforderungen erfordern.

Dass diese Aufgabe alles andere als trivial ist, zeigen uns Jahr für Jahr hunderte gescheiterte Softwareprojekte. Das liegt daran, dass es nahezu unmöglich ist, komplexe fachliche Anforderungen absolut formal und somit interpretationsfrei in natürlicher Sprache zu beschreiben. Und auch die scheinbare Alternative rein formaler Beschreibungssprachen haben in der Vergangenheit kaum zum Erfolg geführt, da sich dieser Ansatz nur sehr bedingt für einen konstruktiven Austausch zwischen Fachabteilung und der Entwicklung eignen.

Es kommt nicht von ungefähr, dass sich in den vergangenen Jahren Domain-driven Design (DDD) mit seiner gemeinsamen fachlichen Sprache (Ubiquitous Language) in Kombination mit agilem Vorgehen zum iterativen Aufbau und Abgleich des gemeinsamen Verständnisses der Anforderungen als nahezu perfekte Modellierungsmethodik für fachlich komplexe Softwareprojekte etabliert hat.

Requirement Engineering bedeutet vor allem, zu verstehen, was das Gegenüber eigentlich möchte. Und genau hier stößt ein KI-Assistent wie Devin an seine Grenzen. Ist dieses Verständnis aber erst einmal hergestellt, müssen die einzelnen Anforderungen "nur noch" gemäß Umsetzungsplan in Code gegossen werden. Die eigentliche Umsetzung und somit der Teil, in dem Devin stark ist, macht somit nur einen Bruchteil des Software-Engineerings aus.

Mit Devin ist es dem Cognition Team gelungen, einen KI-Assistenten zu schaffen, mit dessen Hilfe die automatische Generierung von Software auf Basis natürlichsprachiger Anforderungen auf einem völlig neuen Niveau gelingt. Basis für die hohe Qualität der Codegenerierung ist ein Bereich der LLM-Forschung, der häufig mit Long-Term Reasoning and Planning bezeichnet wird.

Das funktioniert immer dann gut, wenn die Aufgaben klar formuliert, sodass eine Reihe von KI-Agenten mit den ihnen zur Verfügung gestellten Tools sie strukturiert abarbeiten können. An seine Grenzen kommt der Ansatz allerdings immer dann, wenn es darum geht, fachlich komplexe Prozesse abzubilden. Spätestens hier stoßen Systeme wie Devin bei der eindeutigen Interpretation unserer nicht formalen, natürlichen Sprache an ihre Grenzen.

Trotzdem ist Cognition mit Devin ein wichtiger Schritt gelungen. Devin entlastet Software-Engineers, da das System unliebsame und zeitraubender Aufgaben übernehmen kann und damit Freiräume für das Wesentliche schafft, nämlich sich eingehend damit zu beschäftigen, die fachlichen Prozesse zu verstehen und abzubilden.

(rme)