Skip to main content Suchen

Die Vorteile und Fallstricke von GitHub Copilot

Vorteile und Fallstricke von GitHub Copilot

Die meisten Unternehmen, mit denen wir sprechen, erwägen die Einführung von KI-gestützten Codierungstools, wobei sich Entwickler bereits seit einiger Zeit intensiv mit dem Thema auseinandersetzen (von denen einige möglicherweise eine persönliche Lizenz für ihre Arbeit verwenden). Es gibt jedoch einige Bedenken hinsichtlich des Verlusts von geistigem Eigentum – vor allem, wenn Unternehmen keine Geschäfts- oder Unternehmenslizenzen für KI-gestützte Tools verwenden.

GitHub Copilot ist ein KI-gestütztes Tool zur Paarprogrammierung, das auf Milliarden von Codezeilen, hauptsächlich aus Open-Source-Projekten, trainiert wurde. Copilot wandelt Aufforderungen in natürlicher Sprache in Codierungsvorschläge für Dutzende von Sprachen um, schlägt die automatische Vervollständigung von Code vor und bietet weitere Funktionen wie einen Chatbot (ähnlich wie ChatGPT).

Wie bei jeder Technologie zögern Teamleiter und Scrum Master, mögliche Ablenkungen während des Sprints oder der Veröffentlichung einzuführen. Es gibt selten einen perfekten Zeitpunkt, um neue Tools in den Entwicklungsprozess einzubinden, weshalb oft ein tieferer Blick auf die folgenden Themen erforderlich ist:

  • Welche Veränderungen bringt Copilot in den Alltag von Softwareexperten?
  • Welche Risiken birgt der Einsatz von Copilot, und wie können sie gemindert werden?
  • Welche kurz- und langfristigen Vorteile bringt diese neue Technologie mit sich?

Wie verändert Copilot den Alltag von Softwareexperten?

Copilot ist nicht nur für Anwendungsentwickler gedacht. Jeder, der mit "Code" arbeitet, kann es nutzen, z. B. Dateningenieure oder Infrastrukturadministratoren. Es gibt viele Anwendungsfälle, und die Gemeinschaften von Softwareexperten fangen gerade erst an, sich mit den Möglichkeiten, die Copilot bietet, auseinanderzusetzen. Copilot kann uns auch helfen, älteren Code oder Sprachen zu verstehen, mit denen wir nicht vertraut sind. Das Übersetzen zwischen Programmiersprachen ist ein Bereich, in dem Copilot besonders leistungsfähig ist.

Aufgrund unserer Erfahrungen innerhalb von Eficode und mit mehreren unserer Kunden empfehlen wir den Einsatz von KI-gestützten Tools, um eure bestehenden Arbeitsweisen zu verbessern. Copilot ist nicht besonders gut darin, Komplettlösungen anzubieten oder Geschäftslogik aus bestehenden Codebasen zurückzuentwickeln. Der Chatbot, der in die Copilot-Benutzeroberfläche integriert ist, bietet jedoch zusätzliche Möglichkeiten für das Design der Lösung und das Verständnis der Auswirkungen auf den Endbenutzer. Softwareentwickler werden mit diesen neuen Tools nicht zu Architekten, auch wenn das anfängliche Gefühl der Macht stark ist, wenn sie zum ersten Mal KI-gestützte Tools verwenden. Alle traditionellen Rollen der Softwareentwicklung werden jetzt und in Zukunft benötigt.

Copilot zeichnet sich dadurch aus, dass es Boilerplate-Code erstellt und euch an komplexe Syntaxen erinnert. Allein dadurch können mehrere Stunden in der Woche für kreativere Arbeiten genutzt werden. Und nicht nur das: Die Möglichkeit, ein Skelett für eure Tests zu erstellen, ist absolut zentral für die Überwindung der entmutigenden Momente beim Schreiben von Tests für euren Code. Im Idealfall beginnt ihr mit der Gestaltung eurer Testszenarien und setzt damit die schwer fassbare und leistungsstarke testgetriebene Entwicklung (TDD) um.

Im Großen und Ganzen ist die Verbesserung der Qualität sogar interessanter als die Erhöhung der Geschwindigkeit, was der Hauptgedanke ist, wenn man über KI-gestützte Tools nachdenkt. Das Auffinden von Tests, an die der Entwickler nicht gedacht hätte, verbessert direkt die Produktqualität. Außerdem erhalten Entwickler dadurch neue Sichtweisen auf das zu entwickelnde Produkt und ihre eigenen Vorstellungen davon, was Qualität bedeutet und wie sie sichergestellt wird.

Entschärfung möglicher Risiken durch den Einsatz von KI-gestützten Tools

Da ihr plötzlich in der Lage seid, eure Code-Funktionen in Rekordzeit fertig zu stellen (und sogar gleichzeitig Tests für sie zu schreiben), kann das Gefühl der Allmacht blenden. Das gilt vor allem dann, wenn in der Sicherheit eurer eigenen Ecke des Repositorys alles perfekt zu funktionieren scheint und die Tests immer wieder erfolgreich sind.

Ein echtes Risiko besteht darin, dass man nicht versteht, was man da schafft. Möglicherweise akzeptieret ihr Kodierungsvorschläge und Tests, die etwas anderes implementieren als das, was eure Lösung braucht. Es nützt nichts, schnell etwas mit ausreichender Testabdeckung zu erstellen, wenn der Code etwas anderes tut als erwartet. Manchmal bietet Copilot Lösungen an, die einfach falsch sind. Es ist leicht, in einer Schleife stecken zu bleiben, wenn man versucht, einen Vorschlag zum Funktionieren zu bringen, und der Ansatz falsch ist.

KI-gestützte Lösungen sollten in kontrollierter Weise eingesetzt werden. Richtlinien und Beispiele, die für das Unternehmen relevant sind, sind sehr wirkungsvoll. Eine kürzlich durchgeführte GitHub-Studie ergab, dass 81 % der Entwickler glauben, dass KI-Tools ihnen helfen werden, besser zusammenzuarbeiten.

Wenn weniger erfahrene Entwickler Code übertragen, ist es sinnvoll, dass ein Mentor überwacht, ob das Richtige implementiert wurde, bestätigt, dass die Tests ausreichend sind, und sicherstellt, dass der Entwickler bereit ist, den Code, den er erstellt hat, bei Bedarf anderen zu erklären. Jeder ist für den Code, den er festlegt, verantwortlich, auch wenn er größtenteils von einem KI-Assistenten erstellt wird.

Einige Ideen zur Vermeidung von Risiken:

  • Fügt die erstellte Codefunktion wieder in das Chatmodul von Copilot ein und bittet ihn, sie euch in Laiensprache zu erklären.
  • Bittet den Chatbot, den Code wie ein Kochrezept zu erklären. Er fasst die Aktivitäten oft sehr gut zusammen.
  • Bittet den Chatbot, Tests für den Code vorzuschlagen, einschließlich Edge Cases, Negativtests oder Mocking.
  • Bittet um Vorschläge zur Verbesserung des Codes. Das Tool wird höchstwahrscheinlich den verbesserten Code in der Praxis schreiben, den ihr dann überprüfen und daraus lernen könnt.
  • Nehmt euch einen Moment Zeit, um über wirklich gute Namen für eure Funktionsparameter nachzudenken, da Copilot so eure Absicht besser verstehen kann.
  • Wendet euch an eine reale Person, um einen größeren Teil eurer Arbeit durchzugehen und zu erläutern, wie ihr KI-gestützte Tools zur Erstellung verwendet habt, bevor ihr sie weitergebt.

Im Allgemeinen zeigt unsere Erfahrung, dass erfahrene technische Ingenieure Copilot ohne große Einführung oder externe Unterstützung einsetzen können. Die Zeit, die für die Einführung aufgewendet wurde, wird in der Regel innerhalb einer Woche zurückgewonnen.

Für Personen, die am Anfang ihrer technischen Laufbahn stehen, stellt die Zusammenarbeit mit einem Mentor sicher, dass die Nutzung von Copilot nicht zu einem Wettlauf gegen das eigene Ich wird, sondern vielmehr eine Möglichkeit darstellt, schnell zu lernen und selbstbewusster mit Fehlern umzugehen.

Kurz gesagt, jeder kann GitHub Copilot nutzen, solange er sich der Verantwortung bewusst ist, die ihn erwartet, wenn er die erzeugte Funktionalität nach unten weitergibt. Seid bereit, die Lösung durchzugehen, wenn ihr gefragt werdet, und stellt sicher, dass ihr jeden Schritt erklären könnt und warum Sehr euch für diese Art der Implementierung entschieden habt.

Welche kurz- und langfristigen Vorteile bringen KI-gestützte Tools?

Die meisten Menschen, mit denen wir sprechen, streben eine höhere Produktivität und Effizienz an – also seineschnellere Wertschöpfung durch den Einsatz von KI-gestützten Werkzeugen. Untersuchungen zur Analyse der Wertschöpfungskette haben ergeben, dass nur ein Bruchteil der Zeit, die für die Bereitstellung von Software an die Endnutzer aufgewendet wird, in die Programmierung fließt. Wenn wir auch nur 20 % der für die Programmierung aufgewendeten Zeit während einer Veröffentlichung berücksichtigen, ist eine Kürzung um 50 % für das Gesamtbild nicht allzu bedeutend.

Ein viel interessanterer Bereich als die Produktivität ist die Developer Experience. Die schiere Freude an der Arbeit und die Möglichkeit zu lernen, während man im Kontext des Programms bleibt, das man entwickelt, erhöht definitiv die Mitarbeiterbindung.

Die Wahrscheinlichkeit, dass eure Entwickler länger im Unternehmen, ist größer, wenn ihr ihnen Tools zur Verfügung stellt, die es ihnen ermöglichen, sich auf die kreative Seite der Dinge zu konzentrieren und die langweilige Arbeit zu vermeiden. Die meisten Entwickler lieben es, Lösungen für neuartige Probleme zu entwerfen, und Copilot hilft dabei, Zeit für genau das zu lassen.

Wir müssen den Software-Lebenszyklus ganzheitlich betrachten, um die kurz- und langfristigen Vorteile der Verwendung von GitHub Copilot über die Verbesserungen im täglichen Leben der Entwickler hinaus wirklich zu nutzen. Insbesondere sollten wir unsere Wunschliste für DevOps-Verbesserungen vorantreiben. Wie können wir Testumgebungen schneller bereitstellen? Können wir Probleme durch unterschiedliche Konfigurationen in verschiedenen Umgebungen verhindern? Was sind die Engpässe für die Geschwindigkeit und Qualität von Releases? Wie können wir sicherstellen, dass die Ergebnisse, die wir produzieren, für unsere Kunden wertvoll sind?

Können wir bei der Zusammenarbeit mit Produktteams sicherstellen, dass wir Anforderungen richtig verstanden und in eine passende technische Spezifikation umgesetzt haben? Die Kombination aus KI-gestützten Chatbot-Tools und Programmierassistenten gibt uns die Möglichkeit, die Herausforderungen, die wir lösen, auf andere Weise zu betrachten. Das Schreiben technischer Spezifikationen oder das Umformulieren von Anforderungen mit KI-gestützten Tools ist sehr nützlich. Wenn wir die Anforderungen aus verschiedenen Blickwinkeln betrachten, können wir besser zusammenarbeiten und ihre Bedeutung mit unseren Endnutzern diskutieren.

Kurzfristig kann GitHub Copilot uns dabei helfen, zu lernen und uns bei der Arbeit in der integrierten Entwicklungsumgebung (IDE) zu konzentrieren. Die Fähigkeit, im kreativen Fluss zu bleiben und frustrierende Aufgaben zu vermeiden, wird die Tage unserer Entwicklungsteams verbessern. Langfristig kann der Einsatz einer Kombination von KI-gestützten Tools bei fast jedem Schritt des Design-, Spezifikations-, Entwicklungs- und Lieferprozesses helfen.

In diesem Blogbeitrag haben wir noch gar nicht über den Betrieb von Software in Produktionsumgebungen gesprochen – ein Bereich, in dem sich die größten Veränderungen abzeichnen werden. Telemetriedaten, die wir von Produktionsclustern erhalten und die von Menschen nur schwer zu lesen und zu analysieren sind, können in aufschlussreiche Konfigurationsänderungen in unserer Laufzeitumgebung umgewandelt werden, wobei Menschen diese Tools auf neue, leistungsstarke Weise nutzen.

Veröffentlicht:

Aktualisiert:

DevOpsGitHub