Die Welt der Softwareentwicklung entwickelt sich ständig weiter. KI spielt dabei eine immer wichtigere Rolle. Angesichts der Vorteile, wie z. B. die Möglichkeit, den Zeit- und Arbeitsaufwand für die Programmierung zu reduzieren, ist es nicht verwunderlich, dass KI heute ein heißes Thema in der Softwareentwicklung ist.
92 % der Entwickler in den USA verwenden bereits KI-Codierungswerkzeuge bei der Arbeit und außerhalb der Arbeit.
4 von 5 Entwicklern erwarten, dass KI-Tools die Zusammenarbeit in ihrem Team verbessern.
70 % der Entwickler sind der Ansicht, dass KI-Werkzeuge ihnen bei ihrer Arbeit einen deutlichen Vorteil verschaffen, z. B. durch bessere Codequalität, kürzere Entwicklungszeiten und bessere Problemlösungsfähigkeiten.
Obwohl KI im Vergleich zu früher noch nicht das Stadium erreicht hat, in dem sie Softwareprodukte ohne menschlichen Eingriff selbstständig erstellen, testen und einführen kann, hat sie die Gesamtdurchlaufzeit erheblich verkürzt.
Es gibt viele KI-gesteuerte Werkzeuge, die bei der Entwicklung benutzerdefinierter Anwendungen helfen können, indem sie Code generieren und automatisch vervollständigen sowie Fehler erkennen und beheben. Das Forschungs- und Entwicklungsteam von ELEKS hat ein solches Tool - GitHub Copilot - eingehend untersucht, um seinen Einfluss auf die Aufgaben der Entwickler, die Dauer der Fertigstellung und die Qualitätsstandards der bereitgestellten Empfehlungen zu bewerten.Lassen Sie uns einen Blick darauf werfen.
GitHub Copilot ist ein Werkzeug zur automatischen Vervollständigung und Generierung von Code. Es basiert auf OpenAI Codex und ist auf die öffentlichen GitHub-Repositories trainiert. Als Ergebnis schlägt es Code für jede Programmiersprache vor. Die Qualität der Vorschläge hängt jedoch von der Anzahl der öffentlichen Repositories ab, die auf einer bestimmten Programmiersprache und einem bestimmten Framework basieren.
GitHub Copilot arbeitet mit Code unter Verwendung von Plugins für integrierte Entwicklungsumgebungen (IDE). Derzeit werden nur die folgenden IDEs unterstützt:
Ziel dieser Studie war es, die Auswirkungen des Einsatzes von Copilot sowohl auf die Entwicklungsgeschwindigkeit als auch auf die Qualität zu untersuchen.
Zur Durchführung der Studie wurde ein kleines Pet-Projekt initiiert, das als Testfeld für verschiedene Hypothesen diente. Mit einem Team von vier erfahrenen Entwicklern mit Kenntnissen in React, Redux, TypeScript, Jest, Vite, PHP, Symfony und Codeception begannen wir die Untersuchung und definierten unsere Ziele und Vorgehensweisen wie folgt.
Ziel | Ansatz |
---|---|
Bewertung des Zusammenhangs zwischen der Kompetenz des Entwicklers und der Leistung beim Einsatz des Copiloten | Für die Entwicklung des Backends wurde das Framework Symfony gewählt. Das Backend-Team hatte keine nennenswerte Erfahrung mit diesem Framework. Um die Qualität der Backendlösung zu beurteilen, wurde ein Symfony-Experte für ein Code-Review hinzugezogen. Der Experte entwickelte auch eine grundlegende Projektstruktur, die über die typische Struktur hinausging und in einem großen kommerziellen Projekt verwendet wurde. |
Untersuchung der Auswirkungen auf typische Entwicklungsaufgaben | Vor Projektbeginn erstellten wir einen Projektstrukturplan, der die typischen Aufgaben eines Entwicklers in einem kommerziellen Projekt abdeckte. Außerdem führten wir eine Aufgabenkalkulation durch. |
Untersuchung der Auswirkungen der Popularität auf Programmiersprachen und Frameworks | Wir haben eine Webanwendung mit Testabdeckung entwickelt. |
Bewertung der Auswirkungen auf die Dauer der Durchführung der Aufgaben | Wir haben eine vorläufige Schätzung der einzelnen Aufgaben im Rahmen des Projekts vorgenommen. |
Verbesserung der Effizienz der Forschung | Wir haben während der täglichen Synchronisationen Sitzungen zum Wissensaustausch innerhalb des Teams abgehalten. |
Prüfung der Qualität der Vorschläge | Wir haben getestet, wie Copilot mit einer nicht klassischen und komplexeren Projektstruktur umgeht. |
Die von ELEKS durchgeführte Untersuchung von GitHub Copilot führte zu mehreren wichtigen Erkenntnissen, die die Möglichkeiten und Vorteile des Tools aufzeigen. Nachfolgend eine ausführlichere Beschreibung:
Bitte beachten Sie, dass die Prüfungsergebnisse auf dem subjektiven Feedback des Teams, der Beobachtung ihrer Arbeit und der Codeüberprüfung ihrer Lösungen beruhen.
Während des Projekts stieß das Team auf mehrere Fehler in GitHub Copilot.Zum Beispiel schlug Copilot Code vor, der auf dem Code eines anderen Projekts basierte, das in einem anderen IDE-Fenster geöffnet war. Der vorgeschlagene Code war syntaktisch falsch. Copilot kollidierte mit den Funktionen einiger (integrierter oder von Drittanbietern hinzugefügter) Plugins, die ebenfalls über eine Autovervollständigungsfunktion für Code verfügen.
GitHub Copilot ist ein leistungsstarkes Tool, das sich positiv auf die Entwicklungsgeschwindigkeit und die Arbeitszufriedenheit der Entwickler auswirkt. Wie jedes andere Entwicklungswerkzeug braucht es Zeit, um es zu beherrschen.
Im Moment kostet eine monatliche Lizenz nur $10, während der Business Plan $19 pro Monat kostet. GitHub Copilot wird sich zweifellos finanziell lohnen, wenn es in Projekten eingesetzt wird, insbesondere für Spezialisten auf mittlerem und höherem Niveau.
Das Team prognostiziert, dass mit zunehmender Erfahrung mit GitHub Copilot die Entwicklungsgeschwindigkeit um 5 bis 25 % gesteigert werden kann, je nach Popularität der Technologie und Kompetenzniveau des Entwicklers. GitHub Copilot wird die Entwicklung garantiert nicht verlangsamen, da die Entwickler nach und nach das Know-how und das Verständnis dafür entwickeln, wann es vorteilhaft ist, das Tool zu verwenden und wann nicht.
Zusammenfassend lässt sich sagen, dass die Auswirkungen von KI in der Softwareentwicklung, die durch Tools wie GitHub Copilot veranschaulicht werden, unbestreitbar sind. Insgesamt können Tools wie GitHub Copilot einen Entwickler nicht ersetzen, aber sie sind ein wertvolles Werkzeug, um den Komfort und die Produktivität von Entwicklern zu erhöhen und zur Weiterentwicklung der Softwareentwicklung in einer zunehmend von KI geprägten Welt beizutragen.
Wir sind zufrieden mit dem Know-how sowie der Arbeit, die ELEKS für uns geleistet hat. Wir haben zum Produkt, über dessen Design, den Funktionen sowie der Benutzerfreundlichkeit hervorragendes Feedback erhalten. Insgesamt waren wir sehr zufrieden mit der Zusammenarbeit mit ELEKS, und wir können uns ganz sicher vorstellen, weitere Projekte mit ihnen durchzuführen.