Softwareentwicklung mit Github Copilot (Agentic-Coding) Part 1
Meine Erfahrungen beim Einsatz von AI in der Softwareentwicklung
14.12.2025
•7 Min. LesezeitIm Post Softwareentwicklung mit AI Unterstützung (Pre-Agentic-Coding) habe ich meine Erfahrungen mit verschiedenen LLMs und Coding-Assistenten beschrieben - ohne Agentic-Coding Funktionalität.
In diesem Post möchte ich meine Erfahrungen mit den neueren Agentic-Coding-Ansätzen teilen, die es ermöglichen, dass AI-Modelle komplexere Aufgaben in der Softwareentwicklung übernehmen können, indem sie mehrere Schritte und Entscheidungen selbstständig ausführen und den Code direkt in deine Klassen schreiben.
Disclaimer!
Die in diesem Post beschriebenen Erfahrungen basieren auf meinen persönlichen Tests und Beobachtungen mit verschiedenen AI-Modellen und Coding-Assistenten. Die Ergebnisse folgen keinem bestimmten wissenschaftlichen oder statistischen Standard und sind daher subjektiv.!
Einführung
Nach wie vor habe ich ein großes Interesse daran, meinen Entwicklungsprozess mit AI-Unterstützung zu verbessern und zu beschleunigen, ohne dabei die Kontrolle über den Code zu verlieren oder schlechtere Qualität in Kauf zu nehmen. So versuche ich immer wieder, größere Aufgabenblöcke an die KI zu übergeben, um zu sehen, wie gut die Modelle mittlerweile darin sind, komplexere Aufgaben erfolgreich zu erledigen. Das Feature "Agentic Coding", das sowohl im Copilot als auch in Claude Code verfügbar ist, hat mich besonders interessiert, da es verspricht, dass die KI eigenständig mehrere Schritte ausführen und den Code direkt in die entsprechenden Klassen schreiben kann.
Entwicklungssprachen & Frameworks, Prompt und Ausgabesprache!
Die Sprachen, die ich hauptsächlich für die Entwicklung nutze, sind TypeScript, Python und Dart. Daher beziehen sich meine Erfahrungen hauptsächlich auf diese drei Sprachen.!
Die Sprachen, die ich hauptsächlich für die Analyse, Dokumentation und Diagrammerstellung nutze, sind Englisch und Deutsch. Daher beziehen sich meine Erfahrungen hauptsächlich auf diese beiden Sprachen.!
Die Frameworks, die ich hauptsächlich für die Entwicklung nutze, sind Nuxt 3/4, Vue 3, FastAPI und Flutter. Daher beziehen sich meine Erfahrungen hauptsächlich auf diese Frameworks.!
Meine Anwendungsfälle
Meine Erwartungen an die Ergebnisse sind gestiegen, die Anwendungsfälle sind im Wesentlichen jedoch die gleichen geblieben:
- Funktionen erklären lassen – Super hilfreich, um in eine komplett fremde Codebase einzusteigen.
- Funktionen entwickeln lassen – Schnell mal eine Funktion schreiben lassen, die eine bestimmte Aufgabe erfüllt.
- App-Features entwickeln lassen – Nach dem erfolgreichen Erstellen einer Funktion wollte ich wissen, ob ich ein komplettes Feature schreiben lassen kann. Das würde mehrere Klassen und Funktionen beinhalten.
- Tests schreiben lassen – Tests sind super wichtig, aber auch ziemlich aufwendig zu schreiben. Hier wollte ich wissen, ob die Modelle mir helfen können.
- Applikationen auf Bugs und Performance-Probleme prüfen lassen – Nachdem ich ein Feature oder eine Funktion entwickelt habe, lasse ich diese gerne auf Bugs und Performance-Probleme prüfen.
- Applikationen auf die Einhaltung von Best Practices und Projektarchitekturen prüfen lassen – Hierzu lasse ich mir gerne Vorschläge machen, wie ich meinen Code verbessern kann: Wo weiche ich von Best Practices ab und wie kann ich das verbessern?
- Dokumentation von bestehendem Code erstellen lassen – Auch wenn man ein Projekt alleine startet, kommen früher oder später ein oder mehrere Entwickler dazu. Damit der Einstieg in das Projekt so reibungslos wie möglich verläuft, ist eine gute Dokumentation super wichtig, aber auch ziemlich aufwendig zu erstellen. Hier wollte ich wissen, ob die Modelle eine komplette Codebase verarbeiten können und dann eine korrekte Dokumentation erstellen können.
- Flussdiagramme zu Datenflüssen in einem unbekannten Softwareprojekt erstellen – Ein weiterer Punkt, der beim Einstieg in ein neues Projekt super hilfreich sein kann, sind Flussdiagramme, die einem den Datenfluss in der Applikation erklären.
- Vibe-Faktor - Wie gut kann man mit dem Assistenten arbeiten, ist es bequem? Liefert der Assistent gute Ergebnisse? Passen die Ergebnisse zu meinem Stil? Oder muss ich ihm ständig sagen, dass er einen Fehler gemacht hat? All diese Punkte fließen in den Vibe-Faktor ein.
- App-Features verbessern lassen – Hier wollte ich wissen, ob die Modelle mir helfen können, bestehende Features zu optimieren und zu verbessern.
ANMERKUNG: Die Auflistung meiner Erfahrungen mit den verschiedenen Modellen und Tools ist in keiner speziellen Reihenfolge dargestellt. Das liegt vor allem daran, dass ich die Tools und Modelle parallel ausprobiert habe und nicht nacheinander. Je nachdem, welches Tool ein vielversprechendes Feature hatte, habe ich dieses ausprobiert.
Github Copilot
In vorherigen Posts habe ich bereits meine Erfahrungen mit dem Copilot geteilt – ich war anfangs nicht wirklich von dem Tool überzeugt. Die Einführung von Agentic-Coding im Copilot hat natürlich sofort mein Interesse geweckt: Wie gut wird mich dieses Feature in meinem Entwicklungsprozess unterstützen?
Ich muss zugeben, dass ich positiv überrascht war, wie gut der Copilot mit Agentic-Coding meine Anfragen bearbeiten konnte. Die Fähigkeit, mehrere Schritte eigenständig auszuführen und den Code direkt in die entsprechenden Klassen zu schreiben, hat meinen Arbeitsprozess deutlich beschleunigt. Die generierten Funktionen haben inhaltlich zum bestehenden Code gepasst und waren oft gut strukturiert – oft, aber nicht immer, was mich dann doch wieder etwas enttäuscht hat. Obwohl ich mittlerweile viel an den Copilot abgeben konnte und die Ergebnisse meistens gut waren, musste ich dennoch feststellen, dass der Code nicht nach meinen Vorstellungen war und ich oft noch manuell nachbessern musste. Erst mit der Einführung von copilot-instructions.md und Agents.md konnte ich dem Copilot genauere Anweisungen geben, wie er den Code gestalten soll, was die Ergebnisse deutlich verbessert hat.
Copilot mit Modell: GPT-4.1
Zunächst habe ich, genauso wie bei ChatGPT, den Chat auf der claude.ai-Website eingesetzt. Auch hier muss man sagen: Auch wenn das Modell besser war und die Ergebnisse öfter dem entsprochen haben, was ich wollte, war das Hin und Her beim Kopieren einzelner Funktionen doch ziemlich nervig. Aber Claude hatte recht schnell den Kontext erweitert, und so konnte man ganze Klassen einfügen und diese ausbessern lassen.
Die Erfüllung meiner Use Cases:
Copilot mit Modell: Claude Sonnet-4.5
Erfüllung meiner Use Cases:
Fazit
Zusammenfassend kann ich sagen, dass die Einführung von Agentic-Codding in Tools wie Github Copilot und Claude Code meinen Entwicklungsprozess deutlich verbessert hat. Die Fähigkeit der Modelle, komplexere Aufgaben eigenständig zu erledigen und den Code direkt in die entsprechenden Klassen zu schreiben, hat mir viel Zeit gespart.
Dennoch gibt es immer noch Raum für Verbesserungen, insbesondere wenn es darum geht, den Code genau nach meinen Vorstellungen zu gestalten. Ich habe regelmäßig festgestellt, dass er zwar einen Plan vorbereitet hat, wie er die ihm gestellte Aufgabe lösen möchte, es aber nicht immer geschafft hat, diesen Plan auch korrekt umzusetzen und alle Punkte zu realisieren, die geplant waren. Desweiteren bin ich auch in einige Probleme gelaufen, bei denen das Modell bestehende Funktionen verbessern oder erweitern sollte. Dabei habe ich explizit darauf hingewiesen, dass bestehende Funktionen maximal wiederverwendet werden sollen und in absolut notwendigen Fällen neue Klassen, Datenmodelle und Funktionen implementiert werden sollen. Hierbei hat das Modell dann aber oft bestehende Funktionen komplett ignoriert und neue Funktionen geschrieben. Dass hat dann dazu geführt, dass ich Funktionalität auf vielen verschiedenen Klassen verteilt hatte und somit eine hohe Komplexität in meinem Code entstehen ist. Diese musste ich dann wieder zum Teil manuell zum Teil aber auch mit Hilfe der Künstlichen Intelligenz wieder reduzieren und vereinfachen.
In meiner Arbeitsweise ist mir aufgefallen, dass ich nicht mehr in einzelnen Klassenfunktionen denke sondern in Features, Anwendungsfällen und deren Konzepte. Ich bekomme auch gute Ergebnisse, die man jedoch jedesmal genau prüfen muss, um sicherzustellen, dass sie den Anforderungen entsprechen und keine Fehler enthalten. Hier kommen wir zur Ersten größeren Herausforderung. Das Modell kann je nach Featuregröße ziemlich viel Code generieren, dieser müsste im besten Fall geprüft werden. Das wiederum kann ziemlich mühselig werden. Und als Mensch neigt man dazu, den generierten Code nicht mehr so genau zu prüfen und direkt zu akzeptieren. Was selbstverständlich dazu führt, dass man Fehler und Probleme übersieht und ab einem gewissen Zeitpunkt seine Applikation mehr überblicken kann.
Ich muss sagen, dass ich mehr und mehr merke, dass sich meine Arbeitsweise ändert. Ich schreibe nun weniger Code selbst, sondern definiere mehr und mehr die Anforderungen und Konzepte für Features und lasse mir den Code dann generieren. Diesen Code muss ich dann prüfen. Sei es durch Tests oder manuelle Prüfung. Dadurch ergibt sich für mich das Gefühl, dass ich Aufgaben die an mich gestellt werden auf einer ganz anderen Abstraktionsebene betrachte. Ich denke mehr in Konzepten und Features und weniger in einzelnen Funktionen und Klassen.
Diese Probleme kann man jedoch mit custom agents clever abfangen. Wie man Custom Agents definiert und einsetzt, werde ich in einem zukünftigen Post beschreiben.