Aus meinem WeAreDevelopers-Vortrag „A True Story About Speeding Up the Wrong Things“ ist eine dreiteilige Artikelserie entstanden. Der erste Teil beschreibt ein altes Muster: Systeme werden schneller, lange bevor sie sich besser steuern lassen. In diesem zweiten Teil geht es um Softwareentwicklung und darum, was passiert, wenn KI eines ihrer sichtbarsten Arbeitsergebnisse plötzlich deutlich billiger macht: Code.
Lesezeit: etwa 8 Minuten
Der ursprüngliche 40-minütige Talk ist bei WeAreDevelopers verfügbar.
Über Jahrzehnte galt das Schreiben von Code als einer der aufwendigen Teile der Softwareentwicklung. Diese Annahme prägte die Planung, die Wahl der Werkzeuge, Personalentscheidungen, Aufwandsschätzungen und einen beträchtlichen Teil des beruflichen Selbstverständnisses. KI verändert den Preis.
Ein Entwickler kann heute eine Implementierung, ein Refactoring, einen Test, eine Migration oder andere Lösungsansätze anfordern und erhält innerhalb von Sekunden einen plausiblen Vorschlag.
Ist der erste Versuch falsch, kostet der nächste kaum etwas. Das ist tatsächlich nützlich. Es legt aber auch etwas offen, das sich leichter übersehen ließ, solange das Schreiben von Code mehr Aufwand erforderte: Mit der Implementierung allein war die Entwicklungsarbeit noch nie erledigt.
Der schwierige Teil liegt zunehmend in den Entscheidungen rund um den Code. Eine Änderung muss ins System passen, eine Abstraktion ihren Platz verdienen. Eine vorhandene Implementierung kann hässlich und trotzdem ausreichend sein. Eine gewünschte Funktion kann einwandfrei laufen, ohne die damit verbundene Erweiterung des Systems zu rechtfertigen. Neu ist daran nichts. Nur fallen diese Entscheidungen im Verhältnis zur Umsetzung stärker ins Gewicht, sobald eine weitere Implementierung fast nichts mehr kostet.
Damit verändert sich auch, was als Produktivität erscheint. Generierter Code ist sichtbar und lässt sich zählen. Wer sich gegen eine Umsetzung entscheidet, hat nach außen hin weniger vorzuweisen, obwohl das die bessere technische Entscheidung sein kann. Dasselbe gilt, wenn jemand eine überflüssige Abstraktion verhindert, bevor sie im Repository landet. Je billiger die Produktion wird, desto weniger taugt die Menge als Maßstab für Fortschritt.
Wenn Code billig wird und Verständnis teuer bleibt, werden Systeme nicht einfacher. Es wird nur leichter, sie komplizierter zu machen. Die Fabrik arbeitet schneller. Die Landkarte ist nicht besser geworden.
Das interessante Problem an KI-generiertem Code ist nicht einfach, dass er falsch sein kann. Fehlerhaften Code konnten Entwickler schon immer ohne Hilfe schreiben. Schwieriger ist der Umgang mit seiner Plausibilität: Sprachmodelle können unfertige Überlegungen ausgesprochen überzeugend als fertiges Ergebnis präsentieren.
Bezeichner wirken sinnvoll, Erklärungen sind sauber gegliedert, Kommentare stehen dort, wo man sie erwartet, und ein Entwurf klingt, als hätte jemand die Alternativen bereits abgewogen.
Selbst die Unsicherheit kommt ordentlich sortiert daher. Bei herkömmlichen Softwarefehlern gibt es oft einen offensichtlichen Ansatzpunkt: Der Code lässt sich nicht kompilieren, ein Test schlägt fehl, eine Exception tritt auf oder das Verhalten ist sichtbar falsch. KI kann dagegen etwas liefern, das schlüssig genug wirkt, um Vertrauen zu erzeugen, bevor dieses Vertrauen begründet ist.
Plausible Unsicherheit ist eine gefährliche Benutzeroberfläche.
Das verändert, was ein Review leisten muss. Wer den Code prüft, muss herausfinden, welche Annahmen in die Implementierung eingeflossen sind, welche Randbedingungen das Modell kannte, ob eine Abstraktion ein tatsächlich vorhandenes Problem löst und ob eine in sich plausible Lösung zur Architektur des Systems passt. Nichts davon wird billiger, nur weil der erste Entwurf schnell fertig war.
In echten Projekten ist die Zeit für Reviews begrenzt, und die Abgabetermine verschwinden nicht, nur weil Code schneller entsteht. Eine Implementierung, die vernünftig aussieht und die naheliegenden Prüfungen bereits besteht, hat deshalb einen erheblichen Startvorteil gegenüber einer, die sichtbar unfertig ist. So landet „passt fürs Erste“ leicht im Repository, und Repositories sind ausgesprochen schlecht darin, sich zu merken, welche Teile eigentlich nur als Übergangslösung gedacht waren.
Bei der Codeentwicklung mit KI-Agenten verschärft sich das Problem. Der Agent bekommt ein Ziel, schreibt Code, führt Tests aus, untersucht Fehler, passt die Implementierung an und wiederholt den Ablauf.
Unterwegs kann er weitere Werkzeuge oder einen anderen Agenten hinzuziehen. Irgendwann besteht eine der Varianten die Tests. Feedbackschleifen sind in der Softwareentwicklung an sich nichts Ungewöhnliches.
Tests, statische Codeanalyse, Build-Systeme, Deployment-Checks und Monitoring helfen uns dabei, Änderungen vorzunehmen, das Ergebnis zu beobachten und nachzusteuern. Entscheidend ist, was eine solche Schleife im Erfolgsfall tatsächlich belegt.
Eine grüne Testsuite zeigt, dass die Implementierung die darin hinterlegten Prüfungen bestanden hat. Das ist ein nützlicher Beleg, ersetzt aber keine Begründung für den Entwurf. Daraus erfahren wir nicht, ob die Lösung ins bestehende System passt, ob ihre Annahmen tragen, die zusätzliche Komplexität gerechtfertigt ist oder die Tests überhaupt den Teil des Problems abdecken, auf den es uns ankommt.
Ein Agent kann also mehrere gescheiterte Ansätze verwerfen und schließlich eine Variante liefern, die alle Tests besteht, ohne die endgültige Form der Lösung besonders gut erklären zu können. „Irgendwann waren die Tests grün“ ist nicht dasselbe wie „Wir wissen, warum das die richtige Lösung ist“.
Die Chatoberfläche macht es erstaunlich leicht, diesen Unterschied zu übersehen. Jeder neue Versuch kann mit einer plausiblen Erklärung daherkommen; die Suche nach Alternativen wirkt dadurch möglicherweise durchdachter, als sie tatsächlich ist. Der eigentliche Nutzen liegt vielleicht schlicht darin, dass das System Möglichkeiten billig durchprobieren und schnell auf Rückmeldungen reagieren kann. Daran ist nichts auszusetzen, solange wir erfolgreiches Ausprobieren nicht mit Verständnis verwechseln.
KI-Agenten können aus Softwareentwicklung Brute Force mit Chatoberfläche machen. Das Gespräch macht den Ablauf leichter nachvollziehbar; eine technische Begründung für das Ergebnis entsteht dadurch noch nicht.
Nehmen wir an, der Ablauf funktioniert gut. Der Agent erstellt einen Patch, reagiert auf Fehler, passt die Implementierung an und liefert schließlich ein akzeptables Ergebnis.
Ein Entwickler prüft es und übernimmt die Änderung. Damit ist der billige Teil der Arbeit erledigt. Der Code bleibt.
Alle Abstraktionen, Abhängigkeiten, Annahmen und Verbindungen, die der Patch eingeführt hat, gehören jetzt zum System.
Künftige Änderungen müssen sie berücksichtigen, und irgendwann muss jemand genug von der neuen Struktur verstehen, um sie sicher ändern zu können. KI kann damit die Erzeugung von Komplexität verbilligen, ohne deren Folgekosten zu senken. Komplexität allein ist allerdings kein Beleg für schlechte Entwicklungsarbeit.
Sieben Abhängigkeiten können durchaus gerechtfertigt sein, und eine neue Abstraktion kann ein schwieriges Problem elegant lösen. Entscheidend ist, ob es für diese Komplexität einen Grund gibt, den jemand erklären kann. Ein bestandener Test kann das beobachtete Verhalten bestätigen, erklärt aber nicht, warum eine bestimmte Struktur nötig war, weshalb sich eine zusätzliche Abhängigkeit lohnte oder welche Randbedingung eine einfachere Lösung ausgeschlossen hat.
Je billiger die Generierung wird, desto wichtiger wird dieser Unterschied, denn Kosten können sich verschieben, statt zu verschwinden. Die Implementierung dauert vielleicht nur Minuten statt Stunden. Ihre Struktur bleibt jedoch Gegenstand von Reviews, Wartung und Fehlersuche und muss bei jedem späteren Versuch, diesen Teil des Systems zu verstehen, erneut berücksichtigt werden. Auch billiger Code kann einen Kontext schaffen, dessen Verständnis teuer ist.
KI-gestützte Arbeitsabläufe haben noch einen anderen Preis, der mich mehr beschäftigt als schlechter generierter Code. Schlechten Code kennen wir.
Wir können ihn erkennen, darüber schimpfen, ihn ersetzen oder genug Legenden darum stricken, dass freitags niemand mehr die Datei anfasst. Etwas anderes ist es, wenn der Weg zur Lösung verloren geht. Softwareentwicklung lebt seit jeher von den Spuren, die andere hinterlassen.
Mailinglisten, Issue-Tracker, Forendiskussionen, Stack-Overflow-Antworten und alte Kommentare halten weit mehr fest als fertige Lösungen. Ihr Wert steckt oft gerade im Durcheinander: Jemand hat den naheliegenden Ansatz ausprobiert und herausgefunden, warum er scheitert. Ein anderer hat eine API falsch verstanden und wurde korrigiert. Ein Workaround wirkte clever, bis ein weiterer Entwickler erklärte, was er kaputtmacht.
Dieser überlieferte Lösungsweg ist Teil unseres technischen Wissens. Die akzeptierte Antwort allein ist oft weniger hilfreich als die Diskussion darum. KI-gestützte Arbeit findet zunehmend dort statt, wo solche Spuren leicht verloren gehen.
Ein IDE-Assistent schlägt einen Ansatz vor, ein Agent versucht einen anderen, ein Test legt eine unerwartete Randbedingung offen, die Implementierung wird erneut geändert, und irgendwann landet ein funktionierender Patch im Repository. Wie der Patch zustande kam, wird womöglich nirgends so festgehalten, dass das Team später danach suchen oder darauf zurückgreifen kann.
Mit den gescheiterten Ansätzen verschwinden auch die Annahmen, die sie widerlegt haben. Ein anderer Entwickler oder Agent kann morgen wieder in derselben Sackgasse landen, weil das System zwar die Antwort behalten hat, aber nicht die gewonnene Erkenntnis. Billige Iterationen verlieren damit einen Teil ihres Reizes: Die Organisation verbraucht womöglich immer wieder Rechenleistung und die Aufmerksamkeit ihrer Entwickler, um Dinge zu lernen, die sie bereits einmal gelernt hat.
Bleibt nur der fertige Patch übrig, hat der Workflow Aktivität erzeugt, aber nicht unbedingt Wissen. Ein System, das immer wieder bei null anfängt, kann sehr effizient darin werden, teuer erarbeitete Erkenntnisse wieder zu vergessen.
Die Folgen zeigen sich später, oft obwohl gar nichts kaputt ist. Jemand muss ein einwandfrei funktionierendes Stück Code ändern und stellt fest, dass niemand erklären kann, warum es so aufgebaut ist.
Vielleicht hat ein Agent die Implementierung erzeugt, ein Entwickler sie akzeptiert, ein vage formuliertes Ticket sie angestoßen und eine Testsuite das erwartete Verhalten bestätigt. Für sich genommen kann jeder dieser Schritte vernünftig gewesen sein.
Ein halbes Jahr später ist der Grund für genau diese Lösung allerdings womöglich verschwunden. Wo früher eine Funktion genügte, stecken jetzt vielleicht sieben Abhängigkeiten im System. „Die Tests waren grün“ beschreibt dann, wie die Änderung ins System gelangt ist, erklärt aber nicht, warum diese Abhängigkeiten gerechtfertigt waren. Damit wird Wartung zur Archäologie.
Aus demselben Grund lässt sich die Verantwortung schwerer zuordnen. Entscheidend ist nicht, wer den Code tatsächlich eingetippt hat, sondern ob die technische Entscheidung zusammen mit der Implementierung erhalten geblieben ist. Billige Generierung, automatische Wiederholungsversuche, verlorene Denkwege und der übliche Termindruck können Änderungen hervorbringen, die bei ihrer Übernahme ins System völlig sinnvoll erschienen und sich später immer schwerer begründen lassen.
Genau hierhin hat sich der Engpass verschoben. KI kann mögliche Antworten heute in einem Tempo liefern, das vor wenigen Jahren noch unrealistisch war. In der Softwareentwicklung müssen wir weiterhin entscheiden, welche davon ins System gehören, die damit verbundene Komplexität verstehen und genug Kontext erhalten, damit sich diese Entscheidungen später noch nachvollziehen lassen.
Die nächste Frage ist deshalb nicht mehr, wie wir noch mehr erzeugen. Es geht darum, wie wir um KI herum eine Ebene bauen, die beobachten, hinterfragen, sich erinnern und Grenzen setzen kann und die erzeugte Ergebnisse schließlich in einen Systemzustand überführt, für den jemand tatsächlich Verantwortung übernehmen kann.
Hier setzt der letzte Teil an.
KI kann Code und andere technische Artefakte zu einem Bruchteil der bisherigen Kosten erzeugen. Die übrige Entwicklungsarbeit wird dadurch nicht im selben Maß billiger. Die Entscheidung, ob eine Änderung ins System gehört, bleibt aufwendig. Dasselbe gilt für das Verständnis ihrer Folgen und die Wartung des Ergebnisses. Arbeitsabläufe mit KI-Agenten bringen ein weiteres Problem mit: Durch wiederholte Versuche können sie zu funktionierenden Ergebnissen gelangen, ohne viel vom Weg dorthin festzuhalten. Der Code bleibt eher erhalten als der Denkweg dahinter.
© Copyright 2026 Cybercraft GmbH