Wie Software-Engineering-Teams KI nutzen
(refactoring.fm)- KI-basierte Coding-Tools nehmen rasant zu, und einige einzelne Entwickler erzielen mit KI erstaunliche Ergebnisse. In echten Engineering-Teams bleiben die Resultate jedoch oft gering.
- Für die Leistungsunterschiede gibt es zwei Gründe: "Greenfield vs. große Codebases" und "Singleplayer vs. Multiplayer"
- Deshalb wird ein neuer Coding-Workflow für KI sowie die weitere Entwicklung wie folgt prognostiziert:
- Viele Unternehmen stellen weiterhin zusätzliche Engineers ein — besonders die guten Unternehmen
- Die größte Herausforderung sind große Codebases — dort entsteht in der Praxis der eigentliche Wert
- Roboter vs. Iron Man — der philosophische Unterschied zwischen KI-Tools
- Optimierung des Developer-Glücks — welche Mühsal kann KI übernehmen?
- KI-Code-Tracking ist ein Antipattern — man sollte der Versuchung des Trackings nicht erliegen
Ursachen der Leistungsunterschiede
- Greenfield vs. große Codebases
- Die meisten KI-Tools sind für neue Projekte (Greenfield) optimiert
- In alten Codebases sinkt ihr Nutzen
- Singleplayer vs. Multiplayer
- Aktuelle KI-Workflows sind auf Singleplayer-Nutzung ausgerichtet
- Bei der Zusammenarbeit im Team entstehen Probleme (Merge-Konflikte, Umgang mit komplexem Kontext usw.)
"KI-Workflows funktionieren ganz gut, wenn man allein arbeitet, aber im Team kommt es häufig zu Konflikten und Ineffizienz."
Gute Unternehmen stellen mehr Engineers ein
- Die Prognose, dass der Bedarf an Engineers durch den Fortschritt der KI sinken werde, ist falsch
- Wenn KI die Produktivität steigert, führt das letztlich zum Jevons-Paradoxon, bei dem mehr Engineers eingestellt werden
-
Reaktionen verschiedener Organisationen auf die Einführung von KI
- Top-Teams: Produktivität steigt durch KI → zusätzliche Engineers werden eingestellt
- Durchschnittliche Teams: keine Veränderung bei der Einstellung, bedingt durch Bürokratie und Koordinationskosten
- Schwache Teams: Technologie ist nur ein einfaches Werkzeug → Teams werden zur Kostensenkung verkleinert
Das größte Problem sind große Codebases
- KI ist hervorragend beim Lösen algorithmischer Probleme, erzielt aber bei echter Freelance-Arbeit schwache Resultate
- Mangelnder Kontext ist die Hauptursache
- Wege, Kontext in einer Codebase zu vermitteln:
- Fine-tuning → unvorhersehbar und teuer
- Erweiterung des Context Window → Genauigkeit lässt sich schwer garantieren
- RAG (Retrieval-Augmented Generation) → derzeit am vielversprechendsten
Gutes RAG ist der Schlüssel zur Skalierung von KI-Coding-Tools
Roboter vs. Iron Man: der philosophische Unterschied zwischen KI-Tools
- Autonome Tools → arbeiten wie unabhängige Agenten
- Erhalten Befehle in Slack und reichen automatisch PRs ein
- Beispiele: Devin, Lindy
- Augmentierende Tools → der Mensch führt die Arbeit an, das Tool übernimmt eine unterstützende Rolle
- Nutzung als Hilfswerkzeug in der IDE, der endgültige PR wird vom Menschen eingereicht
- Beispiele: Augment, Cursor
-
Welche Strategie ist vorteilhafter?
- Feedback-Loop → augmentierende Tools können Fehler schneller korrigieren
- Skalierbarkeit → autonome Tools bergen das Risiko wachsender organisatorischer Komplexität
- Menschzentrierter Ansatz → augmentierende Tools entwickeln sich in Richtung einer Stärkung des Menschen
"KI sollte keine Klonkriege erschaffen, sondern die Avengers"
Optimierung für Developer-Glück
- Erfolgreiche Teams fokussieren sich nicht auf Produktivität, sondern auf Developer-Glück
- Der Einsatz von KI konzentriert sich darauf, einfache Arbeiten und Mühsal zu reduzieren
- Toil, das KI lösen kann
- 1) Testautomatisierung
- KI schreibt Testcode → weniger Belastung durch Boilerplate-Code
- Die Belohnung für das vorherige Schreiben von Spezifikationen steigt → TDD lässt sich leichter anwenden
- 2) Automatisierung der Dokumentation
- KI schreibt Code-Kommentare und technische Spezifikationen → geringere Last bei der Dokumentationspflege
- KI kann die Struktur und Funktionsweise des Codes erklären → die Absicht hinter dem Code muss jedoch weiterhin vom Menschen erklärt werden
- 3) Verbesserung der Codequalität
- Code-Stil und Sicherheitslücken können geprüft werden
- Beispiele für KI-Tools: Augment, Packmind, Codacy
- 1) Testautomatisierung
KI-Code-Tracking ist ein Antipattern
- Wenn KI autonom arbeitet, wird Performance-Tracking notwendig
- Wenn KI jedoch den Menschen augmentiert, ist die Trennung zwischen KI-Code und menschlichem Code bedeutungslos
- Es ist effektiver, sich auf Produktivität und Developer-Zufriedenheit zu konzentrieren
Zentrale Implikationen
- Mehr Einstellungen von Engineers durch KI-Einführung → Wenn die Produktivität durch das Jevons-Paradoxon steigt, wächst auch die Beschäftigung
- Einführung von KI für den Multiplayer-Betrieb nötig → Zusammenarbeit im Team muss gestärkt werden
- Probleme großer Codebases müssen gelöst werden → Kontextbereitstellung ist entscheidend
- Augmentierende Tools sind autonomen Tools überlegen → Der Mensch führt, KI unterstützt
- Optimierung des Developer-Glücks → Glück ist wichtiger als Produktivität
- Wiederkehr von TDD → KI reduziert den Aufwand für das Schreiben von Tests
- Weniger Dokumentationsaufwand → KI erstellt automatisch Code-Kommentare und technische Spezifikationen
- Verbesserung der Codequalität → KI prüft Code-Stil und Sicherheitsprobleme
- KI-Code-Tracking ist bedeutungslos → Leistung sollte anhand der Gesamtproduktivität und Zufriedenheit bewertet werden
1 Kommentare
Punkt 1 finde ich schwer nachzuvollziehen.
So empfinde ich das sehr stark. Denn ich versuche in einem kleinen Unternehmen, gute Ingenieure einzustellen, aber das ist wirklich nicht einfach.