7 Punkte von GN⁺ 2024-11-15 | 4 Kommentare | Auf WhatsApp teilen
  • 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

 
savvykang 2024-11-21

Die Aufblähung von Software scheint ein unvermeidliches Schicksal zu sein

 
koreaisbest 2024-11-21

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.

 
kallare 2024-11-18

Von garbage in, garbage out kommt man wohl nicht los.

 
GN⁺ 2024-11-15
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