Warum schreibt man 2026 noch Code?
(softwaredoug.com)- Die Rolle von Softwareingenieur:innen hat sich über das reine Schreiben von Code hinaus erweitert: Sie bauen und betreiben heute eine Softwarefabrik. Um Systeme zu verstehen und zu verbessern, muss man Code jedoch weiterhin selbst anfassen.
- Wenn man Agenten mit Prompts,
AGENTS.mdund einer Wissensbasis anleitet und ihre Ergebnisse mit Tests, Linting, Typsystemen und Evaluation absichert, können selbst leistungs schwächere Modelle brauchbare Änderungen erzeugen. - Wer selbst codiert, kann direkt in der Laufzeitumgebung denken, ohne den Umweg über Englisch. So spürt man Schwachstellen, schwache Tests und unnötige Ausnahmen, die bei rein passiver Codeprüfung leicht übersehen werden.
- Agenten ähneln eher neuen Praktikant:innen als Compilern: Sie folgen bestehendem Code und ungenauen Anforderungen konservativ und können selbst einmalige menschliche Fehler durch Wrapper und indirekte Schichten noch verstärken.
- Menschen sollten Ansätze selbst erproben, Muster festlegen und diese dann von Agenten wiederholen lassen, damit Verantwortungsgefühl und Urteilsvermögen erhalten bleiben und zugleich die Produktivität der Automatisierung genutzt werden kann.
Die Softwarefabrik, in der Agenten arbeiten
- Softwareingenieur:innen betreiben nicht nur Software, sondern auch eine Montagelinie, in der jede Person Änderungen per Prompt anfordern und sofort ausrollen lassen kann.
- Mit Prompts, Skills,
AGENTS.mdund Wissensbasen wird die Infrastruktur vorab so aufgebaut, dass Agenten erfolgreich arbeiten können. - Mit Tests, Linting, Typsystemen, Evaluationen und automatischer Bewertung durch andere KI werden die Ergebnisse nachträglich abgesichert.
- Mit Prompts, Skills,
- Wenn ausreichend Einschränkungen und aktueller Kontext bereitgestellt werden, können auch weniger intelligente Modelle brauchbare Änderungen erzeugen, ohne vom Pfad abzuweichen. Dann scheint es, als müssten Menschen Code weder lesen noch selbst schreiben.
- Doch selbst wenn es Agenten mit Intelligenz auf Fable-Niveau gäbe, ermöglicht eigenes Codieren, direkt in der Laufzeitumgebung zu denken, ohne Englisch als Zwischenschicht.
- Nur passiv Diffs und Patches von Agenten zu lesen, reicht kaum aus, um sich tief mit der Systemarchitektur zu verbinden.
- Wer selbst mit dem Code arbeitet, spürt beim Hinzufügen von Funktionen unmittelbar, was dabei kaputtgeht.
- Wenn man Code aufräumt und konsistente Architekturprinzipien dokumentiert, statt immer neue Ausnahmen anzuhängen, arbeitet auch die Softwarefabrik stabiler.
- Wer beim Debugging Schwächen in der Teststrategie findet und behebt, kann ganze neue Klassen von Bugs blockieren.
- Eigenes Codieren ist nicht der einzige Weg, Software zu verstehen, und es gibt auch keinen Grund, auf extreme Handarbeit wie bei einer magnetisierten Nadel und einer ruhigen Hand zu bestehen.
- Selbst wenn der Großteil des tatsächlichen Codes von KI erzeugt wird, bleibt eigenes Codieren ein nützliches Werkzeug.
Denkfähigkeit und Verantwortungsgefühl durch eigenes Codieren bewahren
- Wer auf die Rolle eines umgekehrten Kentauren reduziert wird und nur noch Code liest und freigibt, verliert Konzentration und Verantwortungsgefühl. Minderwertiger Code passiert dann leichter die Prüfung, und feine Anpassungen werden schwieriger.
- Wenn Details nicht sorgfältig beachtet werden, häufen sich Schwachstellen an, und langfristig wirkt sich minderwertiger Code auch negativ auf Agenten aus.
- Wenn Menschen Ansätze selbst ausprobieren und Agenten anschließend etablierte Muster wiederholen lassen, bleiben sie am Ergebnis beteiligt und übernehmen weiter Verantwortung.
- Englisch ist eine unzureichend spezifizierte Sprache, um Berechnungen präzise auszudrücken.
- Bei algorithmischer Arbeit muss man Ideen als ausführbare Schritte entwerfen und durchdenken.
- Je nach Situation kann man zwischen Low-Level-Sprachen mit großem Designspielraum und High-Level-Sprachen mit stärker eingeschränkter Rechenumgebung wählen, um die nötige Präzision zu steuern.
- Wenn man Coding-Agenten wie Compiler behandelt, fördert das eine Haltung, nach der auch miserabel geschriebener Code bedenkenlos ausgerollt werden könne.
- Agenten sind eher neu eingestellte Praktikant:innen als Compiler.
- Sie lesen bestehenden Code, der unvollständig und qualitativ schwach sein kann, und erzeugen auf Basis ungenauer Änderungsbeschreibungen neue Änderungen.
- Menschen können ihr Denken und ihren Geschmack nicht einfach an eine Gruppe von Praktikant:innen delegieren; sie müssen sich direkt einbringen, statt nur Konsument:innen zu bleiben.
- Agenten folgen nur schwer aus eigener Initiative der Boy-Scout-Regel, Code in besserem Zustand zu hinterlassen, als sie ihn vorgefunden haben, und es fühlt sich auch belastend an, ihnen das zu überlassen.
- Sie tendieren dazu, die aktuelle Änderung möglichst sicher zu machen und bestehende Entscheidungen konservativ zu bewahren.
- In einer Codebasis verwendete ein Mensch beiläufig Browser-Local-Storage für einen Teil des Zustands, während der restliche Zustand in einer Backend-Datenbank gespeichert wurde. Der Agent hielt an dieser Entscheidung fest und fügte Wrapper und indirekte Schichten hinzu, wodurch sich die Anzahl der Codezeilen etwa verdreifachte.
- Diese Konservativität kann einmalige Fehlentscheidungen von Menschen noch verstärken.
- Das direkte Löschen und Erkunden von Code hilft dabei, zu besserer Architektur zu gelangen, als wenn man nur auf Englisch Anweisungen gibt.
- Je mehr Aufmerksamkeit man dem Code schenkt, desto stärker werden Denkfähigkeit, das Gefühl als Autor:in und die Fähigkeit, die Softwarefabrik zu führen.
- In der Softwarefabrik sind Details wichtig – von Architekturmustern bis hin zu Algorithmen und Performance.
- Agenten haben den Bedarf an Evaluation, Messung und Schutzmechanismen erhöht und sogar in persönlichen Projekten dazu angeregt, CI nicht nachträglich, sondern früh einzuführen.
- Dadurch hat sich der Zustand der Softwareentwicklung deutlich verbessert, doch in jeder Montagelinie bleiben weiterhin Schwachstellen.
- Auch in einer Autofabrik muss man manchmal die Montagelinie zerlegen, sich tief in die Details eines Verbrennungsmotors einarbeiten, um 10 % Verbesserung zu erreichen, oder den ganzen Tag Bremsbelagtests beobachten, um herauszufinden, warum Probleme vor Ort nicht früher erkannt wurden.
- Auch in der Software darf man keine willkürliche Grenze ziehen, was man selbst anfassen darf, wenn man Details und Gesamtstruktur miteinander verbinden will.
2 Kommentare
Weil mir die Token ausgegangen sind T_T
Hacker-News-Meinungen
Es scheint selbstverständlich, dass man etwas auch nicht prüfen kann, wenn man keinen Code schreiben kann. Trotzdem gibt es Leute und Firmen, die meinen, Claude könne schreiben und Codex prüfen. Warum man das Ergebnis dann aber nicht als Assembler oder kompiliertes Binärformat, sondern in Hochsprachen wie Python oder Java verlangt, liegt letztlich daran, dass Menschen den Code lesen können müssen
Es ist widersprüchlich, von Entwicklern zu erwarten, dass sie Code lesen, debuggen und darüber nachdenken, ihnen aber gleichzeitig nicht die Übung zu geben, diese Fähigkeit auszubilden
Ob sich die Branche weiterentwickeln kann, wenn man die gesamte kreative Arbeit LLMs überlässt, ist fraglich
Das heißt nicht, dass die eine Seite besser ist; vielleicht führen Menschen, die weniger auf Details achten, die Welt, oder je nach Problem ist ein anderer Grad an Genauigkeit nötig
Compiler helfen LLMs dabei, Code zu schreiben, der tatsächlich kompiliert und ausgeführt wird; würde man direkt Maschinencode ausgeben, wäre die Wahrscheinlichkeit groß, dass er gar nicht läuft. Wenn man allerdings überhaupt keinen Code schreiben kann, wird die Prüfung natürlich noch viel schwieriger
„Wie nennt die Branche eine Projekt-Spezifikation, die umfassend und präzise genug ist, um ein Programm zu erzeugen? Code.“ — CommitStrip
Wenn er richtig geschrieben ist, sollte der Kern von Code die zugrunde liegende Geschäftslogik möglichst einfach ausdrücken. Es mag nicht nötig sein, sämtliche Support-Schichten zu prüfen, aber wenn man den Code nicht gelesen hat, kann man auch kaum behaupten, die Geschäftslogik vollständig zu verstehen
https://softwaredoug.com/blog/2026/07/04/write-code-not-specs
Die wichtige Frage ist, wer noch für manuell geschriebenen Code zahlen wird. Kunden zahlen nicht für das Schreiben oder Erzeugen von Code an sich, sondern für Problemlösung; wer das Problem mit den geringsten Kosten und dem wenigsten Aufwand löst, bekommt das Geschäft, und der Vorteil von AI-Tools, Zeitpläne zu verdichten, ist schwer zu ignorieren
Ich bin seit den 1990ern in dieser Branche, und durchschnittliche Entwickler, die durchschnittliche Ergebnisse produzieren, gab es schon immer in großer Zahl. Handgeschriebenen Code romantisiert man oft übermäßig, aber reale Codebasen wurden mit der Zeit häufig schwer wartbar und voller Bugs, und schlampig umgesetzte Projekte sind keineswegs ein neues Phänomen
Im Moment ist es, als wolle man mit auf den Rücken gebundenen Händen eine Softwarefabrik bauen
Um sich zu konzentrieren und wirklich zu verstehen, reicht es nicht, einem Agenten aus der Distanz zuzusehen und passiv Code zu lesen; man muss Code selbst erleben. Letztlich heißt das: Man muss sein eigenes mentales Modell trainieren
Beim Codieren fällt das Unterbewusstsein viele Urteile wie „das fühlt sich richtig an“; das entsteht nur durch Wiederholung und tiefe Konzentration, und reiner Code-Review oder das Lesen von Dokumentation stoßen dabei an Grenzen. Hat man ein solches mentales Modell aufgebaut, kann man allein anhand der Fehlermeldung einer Produktionsstörung oft sofort die Ursache erkennen; bei generiertem Code muss man dagegen lange mit langsamem, bewusstem Denken suchen
Damit LLMs wirklich nützlich sind, müsste man annehmen können, dass sie die gesamte Code-Wartung übernehmen und wie eine externe Bibliothek funktionieren; andernfalls wird es zwangsläufig immer wieder Probleme geben
Welche Seite recht hat, weiß ich noch nicht; ich schaue mir das weiter an
Auch 2026 ist AI-generierter Code immer noch miserabel. Ob Fable oder ein angepasstes Pi/opencode-LeetCode-Harness — die Ergebnisse sind schrecklich, und wenn man den Qualitätsunterschied zwischen dem eigenen Code und AI-Code nicht erkennen kann, ist das keine gute Nachricht
Es wurde in den Regeln festgehalten, dass der Agent das Boy-Scout-Prinzip befolgen, Profiling ausführen, die Code-Coverage prüfen, kritisch reviewen sowie Berichte und Folgeaufgaben verfassen soll. Heutige State-of-the-Art-LLMs befolgen solche Regeln viel besser als 90 % der Leute, mit denen ich zusammengearbeitet habe, und ich frage mich, ob das wirklich etwas Schlechtes bedeutet
Agenten sind konservativ und können einmalige menschliche Fehler verstärken. Es gibt viele Wege, das zu lösen, und Menschen denken unterschiedlich, daher sind sowohl Ansätze möglich, bei denen man den Code nicht liest, als auch solche, bei denen man ihn direkt liest und schreibt; zugleich ist der Vorteil groß, den man aus der Präzision von Code gewinnt, der nicht durch ein LLM gegangen ist
Ich muss den Code selbst schreiben, weil LLMs sonst viel zu viel Code erzeugen. Nur wenn man das Problem vollständig versteht und verallgemeinert, kann man verhindern, dass an "Hello World" 10.000 Zeilen und 5 Abstraktionsschichten hängen
Da LLMs Token-Prädiktoren sind, neigen sie dazu, mehr Code-Tokens auszugeben, je mehr zu lösende Probleme es gibt
Diejenigen, die ein zu lösendes Problem haben, sind Menschen; wenn man das Problem nicht versteht, kann ein X/Y-Problem entstehen, bei dem das LLM ein Problem löst, das mit den tatsächlichen Anforderungen nichts zu tun hat. LLMs abstrahieren Nicht-Kernaspekte wie Bibliotheken oder Hochsprachen besser, aber der Kern des Problems muss weiterhin formal ausgedrückt werden
Auch Vibe Coding, bei dem man schrittweise Einschränkungen hinzufügt, bis das gewünschte Ergebnis erreicht ist, ist letztlich lockere und informelle Programmierung. Besser ist es, dem LLM das Umfeld des Problems zu überlassen und den Kern selbst zu schreiben und zu verstehen
Oberflächlich hat es die Anfrage perfekt gelöst, aber der Code war unnötig und schlampig. Unternehmen, die verbrauchsabhängige Tokens verkaufen, haben einen ökonomischen Anreiz, Rube-Goldberg-artige Lösungen zu erzeugen, die das Problem nur grob lösen, dabei aber möglichst viele Tokens verbrauchen; und nicht nur bei der Generierung, sondern auch später, wenn man mit riesigem Code voller neuer Bugs umgehen muss, werden noch mehr Tokens verbraucht
Es ist schon komisch, wie Leute, die früher über Copy-and-Paste-Code gespottet haben, jetzt für schlampig zusammengeklebten Code schwärmen
Wenn ich mir die Entwicklung von ChatGPT 3.5 im November 2022 bis heute ansehe, frage ich mich, ob ich in vier Jahren noch Code reviewen werde. Auch ohne AI-Extremist zu sein, scheint es gut möglich, dass Software Engineering und Entwicklung in ihrer heutigen Form in 5 bis 10 Jahren verschwinden, wenn das aktuelle Tempo anhält
Für Menschen könnte nur noch so etwas wie UI-Design übrig bleiben, während alles andere abstrahiert wird und die AI die eigentliche Arbeit übernimmt
Das Web ist ohnehin schon chaotisch genug; ich hätte wenigstens gern, dass wir mindestens noch so wie heute unfähige Menschen dafür verantwortlich machen können
Unabhängig vom KPI-Druck schreibe ich bei jeder Gelegenheit selbst Code und erwarte von AI höchstens eine clevere Code-Autovervollständigung
Ich schreibe den Code selbst, weil ich Coding liebe und dabei wirklich glücklich bin. Es gibt keinen Grund, auf etwas zu verzichten, das ich mag