AI: Beschleunigte Inkompetenz
(slater.dev)- Eine übermäßige Abhängigkeit von LLMs in der Softwareentwicklung fördert Inkompetenz in hohem Tempo
- LLMs haben Grenzen und können kritisches Denken und Problemlösungsfähigkeit nicht ersetzen
- Der Einsatz von LLMs bringt verschiedene Risiken mit sich, darunter fehlerhafte Ausgaben, fehlerhafte Eingaben, sinkende Codequalität, abnehmende Entwicklerkompetenz und den Verlust der Freude am Schaffen
- LLMs können keine essenziellen Entwicklungskompetenzen wie Programmtheorie und Programmentropie vermitteln
- Langfristig sind technisches Können und tiefgehende Denkfähigkeit wichtiger denn je
Einleitung
Seit dem Auftreten von AI und LLMs, die Ende 2022 große öffentliche Aufmerksamkeit erhielten, wird viel darüber diskutiert.
Als erfahrener Softwareingenieur spreche ich über zwei zentrale Probleme, die ich bei LLMs beobachtet habe.
Die Sichtweise „LLM ist mein Freund“
Ingenieure, die LLMs als das ultimative Werkzeug betrachten, setzen Geschwindigkeit als höchsten Wert.
Mit LLMs lässt sich schnell viel Code erzeugen, doch das birgt langfristige Risiken.
Risiken beim Einsatz von LLMs
- Risiko fehlerhafter Ausgaben: LLMs erzeugen offensichtlich falschen Code (nicht kompilierbar) sowie subtil fehlerhaften Code (z. B. Logikfehler).
- Wenn Personen ohne ausreichende Bewertungskompetenz Quellcode anfordern, ist die Wahrscheinlichkeit hoch, dass sie ungeeignete Antworten erhalten.
- Risiko fehlerhafter Eingaben: LLMs hinterfragen fehlerhafte Annahmen oder Prompts mit zu wenig Kontext nicht.
- Sie können korrekte Fragen nicht sicher unterscheiden und verstehen auch das XY-Problem (das Verfehlen der eigentlichen Ursache) nicht.
- Verlangsamung künftiger Entwicklungsgeschwindigkeit: Die Einführung von LLMs lässt technische Schulden schnell anwachsen und verwandelt die Codebasis intern in ein chaotisches und schwer wartbares System.
- Risiko der Unreifmachung der Nutzer: Weil Gelegenheiten zur Problemlösung und zur Entwicklung des Denkvermögens verloren gehen, beschleunigt sich der Kompetenzabbau bei Entwicklungstalenten.
- Senior-Entwickler sammeln keine tieferen Erfahrungen bei der Problemlösung, und Junior-Entwickler können ihre Fähigkeiten gar nicht erst aufbauen.
- Verlust der Freude am Schaffen: LLM-basiertes Coding raubt den Flow-Zustand und die Freude an der Kreativität, und das Lesen und Verändern von von AI erzeugtem Code ist oft schmerzhaft.
Die Sorge „Werde ich wegen AI meinen Job verlieren?“
Die Wahrscheinlichkeit dafür ist sehr gering.
Es gibt zwei Entwicklungskompetenzen, die LLMs nicht ersetzen können: Programmtheorie und Programmentropie.
Programmtheorie
- Wie Peter Naur argumentierte, ist „Programmieren eine Tätigkeit des Aufbaus einer Designtheorie“.
- Der Quellcode ist nicht das eigentliche Ergebnis; wichtiger ist das kollektive Verständnis (die Theorie).
- Gibt man zwei Teams mit gleicher Kompetenz dasselbe Problem und übergibt nur den Code, kann das Team, das ihn selbst geschrieben hat, Erweiterungen deutlich effektiver umsetzen.
- In einer unbekannten Codebasis ist die Produktivität zunächst gering, steigt aber allmählich, je besser man die interne Designtheorie versteht.
LLMs und Programmtheorie
- LLMs verfügen nur über Gedächtnis im Kontextfenster und können daher keine echte Programmtheorie oder tiefgehendes Design verinnerlichen.
- Das eigentliche Wesen des Codings (Design und Theoriebildung) wird in der Praxis nur vom Menschen erworben.
Programmentropie
- Fred Brooks bezeichnete Komplexität (Entropie) als die grundlegende Schwierigkeit des Programmierens.
- Die Wartung von Programmen erhöht die Komplexität, und selbst die beste Ausführung treibt ein System in irreversible Alterung.
LLMs und Programmentropie
- LLMs betreiben nur Token-Vorhersage auf Textebene und sind auf der Ebene von Ideen, Entwürfen oder Anforderungen zu semantischem Denken nicht fähig.
- Je länger die Unterhaltung oder je größer die Codemengen sind, desto häufiger wiederholen sie unnötige oder merkwürdige Änderungen und erhöhen damit nur die Komplexität.
- Aufgaben, die Komplexität verringern oder ihr widerstehen, sind nur für Menschen möglich.
Fazit
Auf Basis der Einsichten zweier Pioniere wird das Wesen von Softwaredesign und Komplexität erneut bestätigt.
Wer erwartet, dass AI die eigene Entwicklerkarriere verbessert, sollte aufpassen: Stattdessen kann sich Inkompetenz beschleunigen.
Als Entwickler mit reichhaltiger Erfahrung und ausgereiften Fähigkeiten sollte man erkennen, dass LLMs menschliche Ingenieure nicht ersetzen können.
Der geschäftliche Reiz der AI-Einführung liegt in Kostensenkung, tatsächlich entstehen jedoch neue Risiken, und bei übermäßiger Nutzung häufen sich langfristig zusätzliche Kosten und organisatorische Risiken an.
Die Bedeutung von technischem Können und tiefem Denken bleibt langfristig unverändert; AI sollte als Werkzeug genutzt werden, während weiterhin in die essenziellen Fähigkeiten investiert wird, die schon 2019 wichtig waren.
Ausblick auf den nächsten Beitrag
In einem späteren Post sollen konkrete Lösungsansätze für jedes der Risiken behandelt werden.
Literaturhinweise
- Leading Question: https://en.wikipedia.org/wiki/Leading_question
- The XY Problem: https://en.wikipedia.org/wiki/XY_problem
- ThoughtWorks Technology Radar Volume 32: https://thoughtworks.com/content/dam/…
- Coding as Craft: Going Back to the Old Gym: https://cekrem.github.io/posts/…
- Thoughts on Thinking: https://dcurt.is/thinking
- The Hidden Cost of AI Coding: https://terriblesoftware.org/2025/04/23/the-hidden-cost-of-ai-coding/
- "I wonder if I'll become redundant": https://reddit.com/r/ExperiencedDevs/…
- Programming as Theory Building: https://pablo.rauzy.name/dev/naur1985programming.pdf
- Grug on Complexity: https://grugbrain.dev/#grug-on-complexity
- Gartner Hype Cycle: https://en.wikipedia.org/wiki/Gartner_hype_cycle
1 Kommentare
Hacker-News-Kommentare
Von Softwareingenieuren wird stets erwartet, vorhersehbare Software zu bauen, die Tests besteht, und auch das Tooling ist deutlich weiter entwickelt.
Für Machine-Learning-Ingenieure hingegen gehört die Arbeit mit probabilistischen Modellen zum normalen Alltag, und auch Tests sind dort oft eher metrikenbasiert als auf konkrete Ausgaben ausgerichtet.
Deshalb sind sie stärker daran gewöhnt, dass AI nicht immer zuverlässig ist.
Auch Coding-Assistenten werden mit der Haltung genutzt, dass 80 % korrekte Antworten ausreichen, solange man die übrigen 20 % selbst erkennt.
Während der Arbeit bei Amazon waren ML-basierte Lösungen sehr nützlich für Probleme, für die es keinen klassischen Ansatz gab.
In einem Startup hingegen wurde ohne Verständnis für grundlegendes Filtering oder Mapping stur auf lernbasierte Ansätze gesetzt, was bei der Lageschätzung eines stillstehenden Flugzeugs wiederholt absurde Ergebnisse lieferte.
Diese Kluft zwischen ML- und SW-Ingenieuren ist deutlich, und es wäre wünschenswert, wenn man sie im Recruiting besser sichtbar machen könnte.
In Unternehmen, die Produkte verkaufen, bei denen Genauigkeit und Korrektheit zentral sind, behaupten ML-Teams, 80–90 % seien ausreichend, worüber sich Architekten verständlicherweise beschweren.
Das erinnert daran, dass auch kleine Prozentwerte große Auswirkungen haben können, wie bei den Diskussionen über 1 % Sterblichkeit während der Pandemie.
Der Beitrag richtet den Fokus auf eine Meta-Frage von AI und Software Engineering, nämlich das Management von Programmentropie.
Das Management von Entropie ist ein sehr großer Teil des Aufbaus von Softwareprodukten, und AI könnte das irgendwann vielleicht leicht erledigen, derzeit verschlimmert sie die Entropie aber oft eher.
MLE wird dabei aus einer breiteren SWE-Perspektive betrachtet, mit dem Bedarf, robuste Pipelines, Modellintegration, Deployment und das Gesamtbild zu verstehen.
Die meisten rein auf MLE spezialisierten Absolventen haben jedoch wenig SWE-Perspektive und verstehen oft nur ML ohne rechnerisches Gespür.
Um wirklich Full-Stack zu sein, müsse man Low-Level-Systeme, Architektur, Deployment und auch MLE verstehen.
Der Markt sucht jedoch meist entweder SWE oder MLE-PhDs, weshalb scherzhaft gefordert wurde, man möge für dieses Gesamtwissen auch entsprechend bezahlen.
Beispiele sind das Neudesign von Race Conditions, Vorhersagen von p99 bei DB-Calls oder A/B-Tests.
Für einen Senior-Entwickler mit 30 Jahren Erfahrung bedeutet das Lesen von AI-generiertem Code, dass sich Entwicklung in Richtung eines Code-Review-zentrierten Workflows verschiebt.
Das hilft auch Einzelentwicklern, teamartige Verantwortung zu lernen und Erfahrung im Lesen von Code aufzubauen.
Außerdem erfordert gute LLM-Nutzung zwingend ein Verständnis der hierarchischen Struktur eines Problems.
Wenn man abschnittsweise detailliert entwirft und dann implementiert, hilft das ganz natürlich bei der Definition von Interfaces und Grenzen.
LLMs seien ein Katalysator, der das Wachstum von Juniors zu Seniors beschleunige und ihnen ermögliche, die Lernprozesse erfahrener Entwickler mitzuerleben.
AI werde Entwickler nicht ersetzen, sondern am Ende einfach als Werkzeug in den Alltag einsickern.
LLM-generierter Code mag monoton sein, ist aber dennoch eine Lerngelegenheit.
Gerade durch LLM-generierten Code lernt man viele neue Idiome oder Library-Calls kennen.
Je senioriger jemand ist, desto bessere Prompts kann er geben, wodurch LLMs als Katalysator noch wirksamer werden.
Big Tech, Mid Tech und Small Tech setzen den Personalabbau gleichermaßen fort.
Die Behauptung lautet, AI liege näher an solchen realistischen Veränderungen als an einer Singularität.
Es wurde berichtet, dass sich ehemals selbstverständliche Formen von Vorlesungen, Aufgaben und Unterricht durch das Aufkommen von LLMs weltweit schnell verändern.
Ohne SpaceX wären viele Bereiche praktisch nicht möglich gewesen.
Am Ende verkaufen Banken nun eben Finanzprodukte auf Basis von Bitcoin.
3D-Druck gilt nicht wirklich als Ersatz für bestehende Fertigung, sondern bleibt vor allem bei Prototypen, Mockups und PoCs.
Code zu übernehmen, ohne ihn zu verstehen, führt später bei der Wartung zu hohen Kosten in Form von Technical Debt.
Das gleiche einer Illusion kostenloser Geschwindigkeit, tatsächlich aber mit einem Effekt, als würden technische Schulden mit 40 % Jahreszins anwachsen.
AI kann das Tippen automatisieren, aber das Denken muss menschlich bleiben.
tdd, Microservices usw.) vorgeschlagen.Manche vertreten die Ansicht, dass
tddund Microservices, die in klassischer Entwicklung nicht immer nötig waren, im LLM-Zeitalter wertvoller werden.Schon kleine Unklarheiten im Prompt können das Ergebnis vollständig entgleisen lassen, und wenn man das bemerkt, ist die Korrektur oft schwierig.
Gerade wegen der Mehrdeutigkeit menschlicher Sprache sind letztlich formale Sprachen entstanden.
Persönlich entstand beim Einsatz von AI-Tooling sogar das Gefühl eines starken Kompetenzabbaus; in manchen Fällen kostete es eher mehr Zeit und Energie.
AI ist nützlich, aber es scheint zwei Lager zu geben: eines, das sieht, wie sich bei komplexen Problemen kleine Fehler aufaddieren, und ein anderes aus Managern und Nichttechnikern, das nur auf Ergebnisse schaut und sofort von „Rollenersatz“ spricht.
[Detaillierte Erfahrung: früherer Kommentar]
So wie Taschenrechner die Fähigkeit zum Kopfrechnen verringert haben, könnte AI auch Schreiben, Kommunikation und Problemlösung verschlechtern.
Deshalb werde das LLM nur für kleine, klare Aufgaben oder Probleme eingesetzt, die man sonst auf StackOverflow suchen würde.
Antworten würden nicht als absolute Wahrheit, sondern als Orientierung betrachtet.
Die menschliche Fähigkeit, den Gesamtentwurf zu verstehen, bleibt der Schlüssel zum Widerstand gegen Entropie.
Dadurch lassen sich Thema und Kontext klarer schärfen.
Vielleicht hilft dieser Tipp auch anderen.
Beispielhaft wurde der alte Krieg zwischen Coke und Pepsi genannt.
Wenn man ein LLM nach Design-Intentionen fragt, etwa mit der Bitte um „vereinfachten Code“, könne man durchaus eine gute zweite Meinung erhalten.
Ohne Nachfrage gibt es natürlich auch keine Antwort, und Default-Einstellungen sind ebenfalls unsere Entscheidung; daher sei das kein Argument über das Wesen der zugrunde liegenden Technologie.
In der Realität kann ohnehin niemand ein riesiges Programm vollständig im Kopf erfassen, weshalb Werkzeuge und Sprachen sich meist auf Basis partiellen Verständnisses entwickelt haben.
LLMs teilen diese Grenze, daher haben Menschen und LLMs in diesem Rahmen ähnliche Beschränkungen.
Schade sei, dass LLMs kaum die Fähigkeit haben, zu dieser Richtung zu fragen: „Warum machst du das so?“
Das stimmt in Teilen, doch die meisten Menschen konnten sich ohnehin nie besonders gut orientieren, und durch Kartentechnologie hat sich die durchschnittliche Fähigkeit, von A nach B zu kommen, eher verbessert.
Selbst für die kleine Gruppe sehr fähiger Menschen ersetzt die Technik ihre Fähigkeit nicht unbedingt, sondern unterstützt sie eher.
AI werde auf größerer Ebene wohl ähnliche Veränderungen bringen; einige Fähigkeiten gehen verloren, doch es gibt auch viel zu gewinnen.
Karten liefern fast immer den erwarteten Wert, während LLMs selbst beim gleichen Prompt andere Ergebnisse liefern können und deshalb schwer vertrauenswürdig sind.
Wie Menschen wegen Maps in Seen fahren, kann blindes Vertrauen in LLMs sogar größere Probleme auslösen.
Man kann frei herumirren und bei Bedarf den Weg finden, wodurch die Erfahrung eher verstärkt wird.
AI ist in manchen Bereichen nicht einmal besser als ein gewöhnlicher Mensch mit nur wenigen Tagen Erfahrung.
Neuere LLMs können ganz klar auf konzeptioneller Ebene arbeiten, etwa beim Übersetzen oder Anwenden von Konzepten.
Es wurde sogar behauptet, sie verstünden Konzepte, die ein Mensch nie persönlich erfahren hat.
So liegen zum Beispiel um „dog“ herum verwandte Begriffe.
Kombinationen, Intentionen oder kontrafaktische Logik können sie jedoch nicht modellieren.
Bei Fragen, die den Trainingsdaten ähnlich sind, zeigen sie ihre Stärke.
In Bereichen wie Software Engineering, in denen Konzeptualisierung gut definiert ist, sind sie daher nützlich.
Wer ohnehin nicht ernsthaft arbeitet, ändert sich auch mit AI nicht, und nur wer wirklich lernen will, wächst gemeinsam mit AI.
Wenn AI die Arbeit besser macht, liefert man damit nur die Begründung für den eigenen Ersatz.
Auch FSD ist für normale Fahrer ohne Expertenwissen deutlich besser als deren eigene Leistung.
Überlegt wird ein Format als Forum, Mailingliste oder Multi-Blog.
Temporäre Mailingliste
In bestimmten Communities gebe es bereits erfolgreiche Beispiele dafür.