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

Seite 2: Die Grenzen des Machbaren

Inhaltsverzeichnis

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)