- Es gibt die Vorstellung, dass technische Schulden (tech debt) weniger wichtig werden, weil AI beim Schreiben und Aufräumen von Code hilft
- In der Praxis macht AI die Kosten technischer Schulden jedoch sogar noch höher
- In Codebasen mit geringen Schulden maximiert sich der Geschwindigkeitsgewinn durch AI-Tools, während die Effizienz von AI-Tools in Legacy-Codebasen mit hohen Schulden stark abfällt
- Dadurch haben Codebasen mit vielen technischen Schulden deutlich größere Schwierigkeiten, AI-Tools sinnvoll zu nutzen
Generative AI ist anfällig bei komplexem Code
- AI-Coding-Tools wie Cursor oder Aider reagieren sehr empfindlich auf die Komplexität von Code
- In Code mit gut definierten bestehenden Mustern oder Schnittstellen ist der Geschwindigkeitsgewinn groß, aber bei komplexen Kontrollflüssen und Code mit vielen Abhängigkeiten haben sie Schwierigkeiten, brauchbare Antworten zu erzeugen
- Komplexe Codebasen erschweren nicht nur AI-Modellen die Arbeit, sondern auch Entwicklern das klare Formulieren von Anfragen
- Deshalb neigen viele Entwickler dazu zu warten, bis AI-Tools mit Komplexität auf „Produktionsniveau“ umgehen können
AI-Tools richtig einsetzen
- Statt AI-Tools in Legacy-Codebasen mit Gewalt einzusetzen, ist es wichtig, dass menschliche Experten durch Refactoring die Voraussetzungen schaffen, damit AI reibungslos arbeiten kann
- Wenn direktes Refactoring riskant ist, können Methoden wie das Strangler-Fig-Pattern genutzt werden, um neue Module zu entwickeln und dadurch die Vorteile von AI-Tools sofort zu nutzen
- So kann sich das Entwicklungsteam auf ein höheres Abstraktionsniveau konzentrieren und statt auf Implementierungsdetails stärker auf das Architekturdesign fokussieren
Ein AI-freundlicher Ansatz
- Damit AI-Tools zuverlässig funktionieren, ist es wichtig, Systeme zu modularisieren und die Interaktionen zwischen Modulen über klare Schnittstellen zu definieren
- Eine nützliche Richtschnur ist es, eine Modulstruktur beizubehalten, in der sich Kernfunktionen und Datenflüsse in natürlicher Sprache beschreiben lassen
- Mit Tools wie Gauge Tach lassen sich Sichtbarkeit und Architekturregeln festlegen, um ein modularisiertes System weiterzuentwickeln
Qualität bestimmt das Tempo
- Es ist wichtiger denn je geworden, eine hochwertige Codebasis zu erhalten
- Wer in eine modularisierte Architektur investiert, ermöglicht dem Team, die maximale Wirkung von AI-Tools zu entfalten und gleichzeitig schnelle Feature-Entwicklung und hochwertige Software zu erreichen
4 Kommentare
Die Aufblähung von Software scheint ein unvermeidliches Schicksal zu sein
Ich habe den Eindruck, dass Manager oder Leute in solchen Rollen irgendwo aufgeschnappt haben, dass AI alles lösen wird. ChatGPT hat viel zu viele Fantasien hervorgebracht. Man sollte wohl betonen, dass es noch auf dem Niveau eines Grundschülers ist. Man müsste klar sagen, dass es nur als Hilfswerkzeug ein kleines bisschen unterstützt ... Und ich kann die oben geschilderte Situation nachvollziehen: Wenn es kompliziert wird, versteht es Dinge falsch. Es scheint nicht in der Lage zu sein, den Gesamtfluss eines Projekts zu erfassen.
Von
garbage in, garbage outkommt man wohl nicht los.Hacker-News-Kommentare
Unternehmen mit jungen, qualitativ hochwertigen Codebasen profitieren am stärksten von generativen AI-Tools. Unternehmen mit komplexen Legacy-Codebasen tun sich dagegen schwer mit der Einführung. Ich habe bei der Nutzung von LLMs in privaten Projekten Ähnliches erlebt. Sobald eine Codebasis auch nur etwas eigenständig wird, macht das Modell Fehler und die Arbeit wird schwieriger
LLMs machen einfache Aufgaben noch einfacher, aber bei schwierigen Aufgaben machen sie Fehler. Diese Lücke wird nicht kleiner, sondern größer
In Umgebungen mit "hoher Verschuldung" ist es wegen subtiler Kontrollflüsse, langfristiger Abhängigkeiten und unerwarteter Muster schwierig, brauchbare Antworten zu erzeugen. In vielen Fällen ist das keine "technische Schuld", sondern ein Zeichen für die Reife der Codebasis
Statt generative AI-Tools dazu zu zwingen, komplexe Probleme in Legacy-Codebasen zu lösen, sollten menschliche Experten den Legacy-Code refaktorisieren, damit generative AI reibungslos arbeiten kann
Es entsteht die Vorstellung, dass AI technische Schulden weniger wichtig machen werde. Doch von AI erzeugter Code ist unregelmäßig, inkonsistent und äußerst empfindlich gegenüber bestimmten Prompts und Kontext-Eingaben
AI-generierter Code kann tatsächlich wertvoll sein, aber der in diesem Artikel gewählte Rahmen ist unrealistisch
Machine Learning ist wie eine Kreditkarte mit hohen Zinsen für technische Schulden. Je einfacher Codegenerierung wird, desto mehr Code wird erzeugt, und die Wartungskosten steigen
Ich bin von den Fähigkeiten von LLMs zur Codegenerierung beeindruckt, aber das Ziel ist, die Menge an Code zu verringern
AI übernimmt einfache Aufgaben und erzeugt mehr Code, produziert dabei aber Bugs, die schwer zu finden sind. Mit diesen Tools kann man sich schneller bewegen, muss aber auf andere Weise arbeiten
AI kann beim Verstehen und Ändern von Code helfen, aber blindes Copy-and-paste ist keine gute Idee. Code-Review, das Einfordern von Erklärungen und iterative Arbeit sind weiterhin notwendig