Die meisten Unternehmen, mit denen wir sprechen, erwägen den Einsatz von KI-gestützten Coding-Tools. Entwickler diskutieren das Thema schon seit einiger Zeit intensiv bei Gesprächen in der Kaffeeküche – manche nutzen für ihre Arbeit möglicherweise bereits eine persönliche Lizenz. Dennoch gibt es Bedenken hinsichtlich des Abflusses geistigen Eigentums, insbesondere wenn Unternehmen für KI-gestützte Tools keine Business- oder Enterprise-Lizenzen nutzen.
Tuomas Leppilampi
GitHub Copilot ist ein KI-gestütztes Pair-Programming-Tool, das mit Milliarden von Codezeilen trainiert wurde – größtenteils aus Open-Source-Projekten. Copilot wandelt Prompts in natürlicher Sprache in Codevorschläge für Dutzende von Programmiersprachen um, schlägt Code-Vervollständigungen vor und bietet weitere Funktionen wie einen Chatbot (ähnlich wie ChatGPT).
Wie bei jeder Technologie zögern Teamleiter und Scrum Master, mitten in einem Sprint oder Release mögliche Ablenkungen einzuführen. Selten gibt es einen perfekten Zeitpunkt, neue Tools in den Entwicklungsprozess zu integrieren. Daher lohnt sich oft ein genauerer Blick auf folgende Themen:
Wie verändert Copilot den Arbeitsalltag von Fachleuten in der Softwareentwicklung?
Welche Risiken bringt der Einsatz von Copilot mit sich und wie lassen sie sich minimieren?
Welche kurz- und langfristigen Vorteile bietet diese neue Technologie?
Wie verändert Copilot den Arbeitsalltag von Fachleuten in der Softwareentwicklung?
Copilot ist nicht nur für Anwendungsentwickler. Jeder, der mit „Code“ arbeitet, kann es nutzen, etwa Data Engineers oder Infrastrukturadministratoren. Es gibt zahlreiche Anwendungsfälle, und die Community der Softwareexperten beginnt gerade erst, die Möglichkeiten von Copilot zu erkunden. Es kann uns auch helfen, Legacy-Code oder Programmiersprachen zu verstehen, mit denen wir nicht vertraut sind. Besonders leistungsstark ist es bei der Übersetzung zwischen Programmiersprachen.
Auf Basis unserer Erfahrungen bei Eficode und mit mehreren unserer Kunden empfehlen wir, KI-gestützte Tools einzusetzen, um eure bestehenden Arbeitsweisen zu verbessern. Copilot eignet sich nicht besonders gut dafür, vollständige Lösungen bereitzustellen oder die Geschäftslogik aus bestehenden Codebases zurückzuentwickeln. Der in die Copilot-Benutzeroberfläche integrierte Chatbot erweitert jedoch die Möglichkeiten bei der Lösungsentwicklung und beim Verständnis der Auswirkungen auf Endnutzer. Softwareentwickler werden mit diesen neuen Tools nicht zu Architekten – auch wenn sich der erste Einsatz von KI-gestützten Tools zunächst sehr mächtig anfühlt. Alle klassischen Rollen der Softwareentwicklung werden heute und künftig gebraucht.
Copilot eignet sich hervorragend, um Boilerplate-Code zu erstellen und an komplexe Syntax zu erinnern. Allein dadurch können jede Woche mehrere Stunden für kreativere Arbeit frei werden. Außerdem hilft die Möglichkeit, ein Grundgerüst für eure Tests zu erstellen, entscheidend dabei, die oft abschreckenden Momente beim Schreiben von Tests für euren Code zu überwinden. Idealerweise beginnt ihr damit, eure Testszenarien zu definieren – und setzt so das wirkungsvolle, aber oft schwer greifbare testgetriebene Entwickeln (TDD) um.
Im größeren Maßstab ist die Verbesserung der Qualität noch interessanter als die Steigerung der Geschwindigkeit – auch wenn Letzteres meist der erste Gedanke bei KI-gestützten Tools ist. Tests zu entwickeln, an die der Entwickler selbst nicht gedacht hätte, verbessert die Produktqualität unmittelbar. Außerdem eröffnet es Entwicklern neue Perspektiven auf das Produkt in Entwicklung sowie auf ihre eigenen Vorstellungen davon, was Qualität bedeutet und wie sie sich sicherstellen lässt.
Mögliche Risiken beim Einsatz KI-gestützter Tools minimieren
Wenn ihr Codefunktionen plötzlich in Rekordzeit fertigstellen und gleichzeitig Tests dafür schreiben könnt, kann das Gefühl von Allmacht den Blick trüben. Das gilt besonders dann, wenn in der sicheren eigenen Ecke eines Repositorys alles perfekt zu funktionieren scheint und die Tests immer wieder erfolgreich durchlaufen.
Ein echtes Risiko besteht darin, nicht zu verstehen, was ihr erstellt. Möglicherweise übernehmt ihr Codevorschläge und Tests, die etwas anderes umsetzen, als eure Lösung benötigt. Es hilft nicht, schnell etwas mit ausreichender Testabdeckung zu erstellen, wenn der Code etwas anderes tut als erwartet. Manchmal liefert Copilot schlicht falsche Lösungen. Es ist leicht, in einer Schleife festzuhängen und einen Vorschlag zum Funktionieren bringen zu wollen, obwohl der Ansatz grundlegend falsch ist.
KI-gestützte Lösungen sollten kontrolliert eingeführt werden. Richtlinien und Beispiele, die für das Unternehmen oder die Organisation relevant sind, sind dabei sehr wirkungsvoll. Eine aktuelle GitHub-Studie zeigt, dass 81 % der Entwickler glauben, KI-Tools würden ihnen helfen, besser zusammenzuarbeiten.
Wenn weniger erfahrene Entwickler Code committen, ist es sinnvoll, dass ein Mentor überprüft, ob das Richtige umgesetzt wurde, bestätigt, dass die Tests ausreichend sind, und sicherstellt, dass der Entwickler den erstellten Code bei Bedarf anderen erklären kann. Jeder ist für den Code verantwortlich, den er committet – selbst wenn dieser größtenteils von einem KI-Assistenten erstellt wurde.
Einige Ideen, um Risiken zu vermeiden:
Fügt die erstellte Codefunktion wieder in das Chatmodul von Copilot ein und bittet es, sie euch in einfacher Sprache zu erklären.
Bittet den Chatbot, Code wie ein Kochrezept zu erklären. Oft fasst er die einzelnen Schritte sehr effektiv zusammen.
Bittet den Chatbot, Tests für den Code vorzuschlagen, einschließlich Edge Cases, negativer Tests oder Mocking.
Fordert Vorschläge an, um den Stil des Codes zu verbessern. Das Tool wird den verbesserten Code in der Regel direkt erstellen, sodass ihr ihn per Diff vergleichen und daraus lernen könnt.
Nehmt euch einen Moment Zeit, um wirklich gute Namen für eure Funktionsparameter zu finden, damit Copilot eure Absicht besser versteht.
Sprecht mit einer echten Person über wesentliche Teile eurer Arbeit und darüber, wie ihr KI-gestützte Tools dafür eingesetzt habt, bevor ihr die Arbeit weitergebt.
Unsere Erfahrung zeigt generell, dass erfahrene technische Experten Copilot ohne große Einführung oder externe Unterstützung einsetzen können. Die Zeit für die Einführung ist in der Regel noch in derselben Woche wieder eingespart.
Für Menschen am Anfang ihrer technischen Laufbahn sorgt die Zusammenarbeit mit einem Mentor dafür, dass die Nutzung von Copilot nicht zu einem Wettlauf mit dem früheren Ich wird, sondern zu einer Möglichkeit, schnell zu lernen und sicherer im Umgang mit Fehlern zu werden.
Kurz gesagt: Jeder kann GitHub Copilot einsetzen, solange ihm die Verantwortung bewusst ist, die beim Weitergeben der erstellten Funktionalität entsteht. Seid bereit, die Lösung bei Bedarf zu erläutern, und stellt sicher, dass ihr jeden Schritt erklären könnt – einschließlich der Gründe, warum ihr ihn auf diese Weise umgesetzt habt.
Welche kurz- und langfristigen Vorteile bieten KI-gestützte Tools?
Die meisten Menschen, mit denen wir sprechen, streben nach höherer Produktivität und Effizienz – also im Grunde danach, mit KI-gestützten Tools schneller Mehrwert zu schaffen. Untersuchungen zur Wertschöpfungskettenanalyse zeigen, dass beim Bereitstellen von Software für Endnutzer nur ein Bruchteil der Zeit für das Programmieren aufgewendet wird. Selbst wenn wir davon ausgehen, dass während eines Releases 20 % der Zeit auf das Programmieren entfallen, ist eine Halbierung dieses Aufwands im Gesamtbild nicht besonders bedeutend.
Ein weitaus interessanterer Bereich als Produktivität ist die Developer Experience (DX). Die Freude an der Arbeit und die Möglichkeit, im Kontext des gerade entwickelten Programms zu lernen, werden die Mitarbeiterbindung definitiv erhöhen.
Entwickler in eurem Unternehmen bleiben eher länger bei euch, wenn ihr ihnen Tools bereitstellt, mit denen sie sich auf die kreativen Aspekte konzentrieren und eintönige Aufgaben vermeiden können. Die meisten Entwickler entwerfen gerne Lösungen für neue Probleme, und Copilot schafft genau dafür Zeit.
Um die kurz- und langfristigen Vorteile von GitHub Copilot zu erkennen, die über Verbesserungen im Arbeitsalltag von Entwicklern hinausgehen, müssen wir den gesamten Softwarelebenszyklus ganzheitlich betrachten. Insbesondere sollten wir unsere Wunschliste für DevOps-Verbesserungen vorantreiben. Wie können wir Testumgebungen schneller bereitstellen? Können wir Probleme vermeiden, die durch unterschiedliche Konfigurationen zwischen Umgebungen entstehen? Wo liegen die Engpässe bei Release-Geschwindigkeit und -Qualität? Wie stellen wir sicher, dass unsere Ergebnisse für unsere Kunden wertvoll sind?
Was die Zusammenarbeit mit Produktteams betrifft: Können wir sicherstellen, dass wir eine Anforderung richtig verstanden und in eine passende technische Spezifikation umgesetzt haben? Die Kombination aus KI-gestützten Chatbot-Tools und Coding-Assistenten ermöglicht es uns, die Herausforderungen, die wir lösen, aus verschiedenen Perspektiven zu betrachten. Technische Spezifikationen zu erstellen oder Anforderungen mit KI-gestützten Tools neu zu formulieren, ist sehr hilfreich. Anforderungen aus unterschiedlichen Blickwinkeln zu betrachten, kann uns helfen, besser zusammenzuarbeiten und ihre Bedeutung mit unseren Endnutzern zu besprechen.
Kurzfristig kann GitHub Copilot uns dabei helfen, während der Arbeit in der integrierten Entwicklungsumgebung (IDE) zu lernen und zugleich konzentriert zu bleiben. Die Möglichkeit, im kreativen Flow zu bleiben und frustrierende Aufgaben zu vermeiden, wird den Arbeitsalltag unserer Entwicklungsteams verbessern. Langfristig kann die Kombination verschiedener KI-gestützter Tools in nahezu jedem Schritt des Designs, der Spezifikation, Entwicklung und Bereitstellung helfen.
In diesem Blogbeitrag haben wir noch nicht einmal über den Betrieb von Software in Produktionsumgebungen gesprochen – ein Bereich, der letztlich die größten Veränderungen erleben wird. Telemetriedaten aus Produktionsclustern, die für Menschen schwer zu lesen und zu analysieren sind, können in aussagekräftige Konfigurationsänderungen in unserer Runtime-Umgebung umgewandelt werden. Menschen werden diese Tools dabei auf neue und leistungsstarke Weise nutzen.
- DevOps
- GitHub
Subscribe to our newsletter
Related blogs