Die Integration von KI-Features ist aus der Software-Entwicklung heute kaum wegzudenken. Natürlich macht die KI auch bei unseren eigenen Entwicklungs-Werkzeugen keinen Halt. In diesem Artikel teile ich meine realen Erfahrungen im täglichen Einsatz von KI-Coding-Tools – abseits des Hypes. Wo hilft welches Tool? Welchen Einfluss haben die Assistenten auf die tägliche Arbeit für uns und auf uns Entwickler:innen?
Unterstützung durch Chats
Glaubt man den Versprechen der KI-Tool-Provider, lässt sich die Effizienz von uns Entwicklern für einen geringen monatlichen Preis um ein Vielfaches steigern. Aber stimmt das, oder ist die Realität – wie so oft – komplexer als gedacht. Ob ein Coding-Assistent mir wenig oder viel Mehrwert stiftet, hängt meiner Ansicht nach sehr konkret von dessen Anwendungsbereich und Verwendungs-Modus ab. „It depends", wie wir Techies sagen.
AI-Coding-Assistenten lassen sich auf unterschiedlichste Arten nutzen. Viele Entwickler:innen setzen nach wie vor auf die Interaktion mit dem LLM via Chat: Sie geben zum Beispiel ChatGPT eine Aufgabe und überführen die ausgespuckten Ergebnisse in ihre Codebase. Obwohl dieser eher rudimentäre Ansatz meistens aus Mangel an Kontext nicht zu den besten Ergebnissen führt, erlaubt er Entwickler:innen jedoch schnelle Ergebnisse und eine sehr genaue Kontrolle darüber, was mit dem LLM geteilt wird und was nicht.
Integrierte Assistenten
Ein alternativer Ansatz, der sich zum Beispiel in Github-Copilot wiederfindet, ist die Integration in die Entwicklungs-Umgebung. Ein Plugin entscheidet konkret am Kontext, welche Informationen das LLM braucht, um die „richtige“ Antwort auf die Frage zu liefern, die ich noch gar nicht gestellt habe.
So nimmt mir Githubs Copilot die vielen kleinen Fleißaufgaben ab, die mich sonst verlangsamen würden. Das Tool schreibt für mich Kommentare, erstellt Unit-Tests oder nimmt mir eine ganze Menge Tipp-Arbeit beim Umbau von Funktions-Parametern ab. Vor allem dann, wenn einem selbst die Erfahrung mit der verwendeten Library oder Programmiersprache fehlt, ist ein Code-Assistent ein Segen: Mit Hilfe des Assistenten schaffe ich es, das Bash-Script zu schreiben, das die CSV-Datei einliest, filtert und dann in die lokale Datenbank einspielt. Copilot fühlt sich wie ein sehr weit fortgeschrittenes Auto-Complete an: ein IntelliSense, das den Namen wirklich verdient.
Abseits vom Happy Path - die Hürden
Abseits des „Happy Path“ trifft man jedoch sehr schnell auf Hürden, die den Assistenten ins Straucheln bringen. In komplexen Aufgaben, abseits dessen, was in typischen „Tutorials“ zu finden ist, liegt der Stolperstein versteckt: Bitte ich den Assistenten um Hilfe beim Architektur-Entwurf, erzeugt dieser Code, der weder brauchbar noch logisch korrekt ist. Eine einfache Model-Klasse ist schnell erstellt, aber ein nachhaltiger Feature-Toggle ist aus dem Copiloten nicht herauszubekommen. Es fehlt das Gespür für zukünftige Weiterentwicklung, die Balance zwischen solidem und erweiterbarem Code und der individuelle Ansatz für das konkrete Projekt und die Kunden-Anforderungen.
Die Trainingsdaten sind spürbar
Was besonders auffällt ist, dass die KI-Unterstützung nur mit den wohlbekannten Versionen bekannter Libraries adäquat umgeht. Es hapert bei den Versionen, die nach dem Training veröffentlicht wurden, und bei Libraries abseits des Mainstreams.
Und dennoch: Als täglichen Begleiter möchte ich einen integrierten Assistenten nicht mehr missen. Simple, aber zeitraubende Aufgaben, wie die Suchmaschine zu fragen, wie man eine Flächen-Berechnungs-Funktion für ein Achteck implementiert, fällt komplett weg. Und die Dinge, die man sonst aus Tipp-Faulheit doch gerne mal von der Ticket-Kante fallen lässt, wie das Validieren von Edge-Cases, erledigt Copilot perfekt für mich, sofern ich ihn danach frage.
KI-Agenten übernehmen delegierbare Aufgaben
Den nächsten Schritt gehen die Coding-Agenten: Sie integrieren sich typischerweise nicht in die bestehende IDE, sondern bieten ein alternatives Interface. Dies erlaubt mir, mit dem Agenten zu sprechen, der dann selbstständig Änderungen an der Codebase vornimmt. Der Agent macht den Schritt heraus aus dem freundlichen Helfer zum Partner in der Umsetzung.
Dadurch kann mein neuer Partner (in meinem Fall Claude Code) auch deutlich komplexere Aufgaben übernehmen:
„Leg mir ein Projekt an“
„Baue das Skelett eines Feature-Flag-Systems“
„Integriere eine konfigurierbare Verbindung zu einer SQLite-Datenbank“
Dies sind plötzlich delegierbare Aufgaben, die Claude Code mit höchster Motivation umsetzt. Claude generiert Tests, macht Verbesserungsvorschläge und erweitert Code um neue Funktionen. Besonders glänzen Coding-Agenten bei den ganzen kleinen Fleiß-Aufgaben. Dazu zählen Aufgaben wie:
das Umbenennen von Attributen
die Einführung eines neuen Datentyps
Verwendung in der gesamten Codebase
Die perfekte Unterstützung bei Exploration
Die perfekte Unterstützung bietet ein Coding-Agent bei der Exploration einer neuen Codebase: Er erlaubt mir, Fragen über die Gesamtheit des Codes schnell zu beantworten. Wie ist die Code-Qualität des Authentication-Moduls? Welche Features existieren in der Codebase und wie ist der Code jeweils aufgebaut? Diese Fragen muss ich mir nicht mehr selbst beantworten, sondern delegiere sie an den Agenten.
Aber auch hier stößt die KI an Grenzen: Komplexe Features oder umfangreiche Business-Logik führen Claude Code auf den Pfad zu einer chaotischen Codebase. Was Claude nicht schafft, ist bestehenden Code neu zu strukturieren, um den neuen Anforderungen gerecht zu werden. Stattdessen wird immer neuer Code generiert und so wächst mein Projekt unaufhaltsam. Der Preis, den ich für brauchbaren Code zahlen muss, ist, dass ich mit wachsender Komplexität der Anforderungen immer genauer in der Definition dessen werden muss, was ich gerne umgesetzt hätte. Am Ende ist meine Definition nah dran an dem, was wir Coding nennen, und der gehoffte Effizienzgewinn dadurch passé.
Lost in translation - Wo die KI Fehler macht
Ein weiterer Faktor wird besonders dann spürbar, wenn man gerade mit dem „AI Supported Coding” anfängt: Es sind die Art der Fehler, die die KI macht. Fehler von Menschen sind einfacher zu entdecken, da man selbst wahrscheinlich diese Fehler in der Vergangenheit schon mal gemacht hat, oder zumindest nachvollziehen kann, wie der Fehler zustande gekommen ist. Die Fehler einer KI sind subtiler, teilweise so anders gelagert, dass man gar nicht annimmt, dass ein Fehler an der Stelle liegen könnte. Um ein Bild zu bemühen: Während der Fehler des Kollegen womöglich ist, den Stecker nicht in die Steckdose gesteckt zu haben, ist der Fehler der KI manchmal, dass das Stromkabel an eine Anhänger-Kupplung geknotet ist.
Dennoch: Klare Aufgaben lassen sich sehr effizient mit meinem neuen Partner umsetzen. Wenn ich mir den Überblick über eine bestehende Codebase verschaffen möchte, kann ich mit einem einfachen Prompt Claude minutenlang damit beschäftigen, die Codebase zu durchwühlen und mir die Antworten zu bringen.
Fazit: Entscheidungen treffe ich, nicht die KI
Am Ende bleibt: AI-Assistenten in ihren verschiedenen Ausprägungen sind die größte Innovation im Bereich Coding-Tools seit CI/CD-Pipelines. Aufgaben, die ich als Entwickler:in klar definieren kann, lassen sich an die Assistenten delegieren. Das erlaubt mir nicht nur, ein bisschen schneller zu sein, sondern vor allem die Qualität meiner Arbeit zu erhöhen. Wo ich vielleicht vorher unter Zeitdruck ein explizites Error-Handling oder eine saubere Dokumentation meines Codes übersprungen habe, delegiere ich diese nun an den fleißigen Kollegen.
Entscheidungen trifft kein Tool für mich. Und auch die Verantwortung darüber, was ich in das Repository pushe, liegt zu 100 Prozent bei mir. Etwas an das Tool zu delegieren, was ich selbst nicht verstehe, wird immer dazu führen, dass ich etwas bekomme, was ich nicht kontrollieren kann.
Diesen Artikel teilen