Wie Entwickler ChatGPT auf GitHub nutzen
Eine Analyse der Interaktionen von Entwicklern mit ChatGPT auf GitHub.
― 5 min Lesedauer
Inhaltsverzeichnis
ChatGPT ist ein wichtiges Tool für Softwareentwickler geworden, das ihnen bei verschiedenen Aufgaben wie Programmierung, Testen und Debuggen hilft. Trotz seiner Beliebtheit bleibt weitgehend unbekannt, wie Entwickler ChatGPT in einer kollaborativen Umgebung, insbesondere auf Plattformen wie GitHub, nutzen. Dieser Artikel untersucht die Gespräche, die Entwickler mit ChatGPT in GitHub-Pull-Requests (PRs) und Issues teilen, und gibt Einblicke, wie sie mit diesem KI-Assistenten interagieren.
Verständnis des Datensatzes
Um die Gespräche der Entwickler mit ChatGPT zu verstehen, haben wir einen grossen Datensatz von 580 geteilten Gesprächen von GitHub untersucht. Davon stammen 210 aus Pull-Requests und 370 aus Issues. Wir haben diese Gespräche manuell analysiert, um zu sehen, welche Art von Hilfe die Entwickler suchten und wie sie diese Informationen miteinander teilten.
Arten von Fragen, die Entwickler stellen
Entwickler nutzen ChatGPT für eine Reihe von Software Engineering-Fragen. Wir haben 16 verschiedene Arten von Anfragen identifiziert, die Entwickler stellen, wenn sie Gespräche mit ChatGPT teilen. Die häufigsten Kategorien sind:
- Code-Generierung: Entwickler bitten ChatGPT oft, Code-Snippets zu erstellen oder vollständige Programmieraufgaben zu erledigen.
- Konzeptionelle Fragen: Viele Anfragen drehen sich um das Verständnis technischer Konzepte oder theoretischer Prinzipien.
- How-to-Anleitungen: Entwickler suchen häufig nach Schritt-für-Schritt-Anleitungen, um bestimmte Aufgaben zu erledigen.
- Problemlösung: Entwickler suchen Hilfe bei der Behebung von Bugs und anderen Problemen in ihrem Code.
- Code-Überprüfung: Entwickler bitten um Vorschläge und Feedback zu ihrem Code von ChatGPT.
Durch die Kategorisierung dieser Anfragen können wir die gemeinsamen Bedürfnisse der Entwickler erkennen, wenn sie sich an ChatGPT wenden.
Mehrere Interaktionen
Ein erheblicher Teil der Gespräche zwischen Entwicklern und ChatGPT besteht aus mehreren Austauschrunden. Wir haben herausgefunden, dass mehr als ein Drittel der Gespräche in Pull-Requests und Issues Mehrfachinteraktionen waren. Das bedeutet, dass Entwickler oft im Austausch mit ChatGPT stehen, ihre Fragen verfeinern oder zusätzlichen Kontext nach einer Antwort bereitstellen.
Während dieser Mehrfachinteraktionen nutzen Entwickler verschiedene Strategien, wie zum Beispiel:
- Iterative Folgefragen: Anpassung und Verbesserung ihrer Anfragen basierend auf den vorherigen Antworten von ChatGPT.
- Prompt-Verfeinerung: Bereitstellung von mehr Kontext oder Einschränkungen, um ChatGPT zu helfen, bessere Antworten zu geben.
- Nach Klarstellung fragen: Weitere Erklärungen zu den Antworten von ChatGPT anfordern.
Diese Strategien zeigen, dass Entwickler aktiv mit ChatGPT interagieren und die Qualität der KI-Antworten verbessern wollen.
Rollen der Entwickler und Teilverhalten
In kollaborativen Umgebungen nehmen Entwickler je nach ihren Verantwortlichkeiten im Projekt unterschiedliche Rollen ein. Unsere Untersuchung hat gezeigt, dass Entwickler Gespräche mit ChatGPT unterschiedlich teilen, je nach ihren Rollen. Zum Beispiel verweisen Autoren von Pull-Requests oft auf ChatGPT als Quelle ihrer Lösungen, während Code-Reviewer die Gespräche nutzen, um neue Ideen oder Vorschläge einzubringen.
Wir haben die Gründe für das Teilen von Gesprächen in mehrere zentrale Punkte kategorisiert:
- Verweis auf eine Quelle der Lösung: Entwickler zitieren häufig ChatGPT, um zu zeigen, woher ihre Lösungen stammen.
- Potenzielle Lösungen: Viele Entwickler beziehen sich auf die Antworten von ChatGPT als mögliche Lösungen für Probleme.
- Unterstützung von Behauptungen: Einige Entwickler nutzen geteilte Gespräche, um ihre Argumente oder Vorschläge während Diskussionen zu untermauern.
Orte der geteilten Gespräche
Der Ort, an dem Entwickler diese Gespräche auf GitHub teilen, variiert ebenfalls. In Pull-Requests findet man Links zu ChatGPT-Gesprächen in der Beschreibung, in Kommentaren oder im Code-Überprüfungsbereich. In Issues werden Links hauptsächlich in Kommentaren und Beschreibungen geteilt. Diese Verteilung hebt die Bedeutung des Kontexts hervor, wie Entwickler ihre Fragen und Lösungen kommunizieren.
Auswirkungen auf Software-Entwicklungstools
Die Ergebnisse dieser Studie haben wichtige Auswirkungen auf das Design und die Entwicklung von Tools, die KI wie ChatGPT integrieren. Zu verstehen, wie Entwickler mit ChatGPT interagieren, kann die Effektivität dieser Tools in kollaborativen Umgebungen verbessern.
- Verbesserung der Tools: Zu wissen, welche häufigen Anfragen Entwickler machen, kann helfen, KI-Tools zu verfeinern, um besser auf diese Bedürfnisse einzugehen.
- Unterstützung der Zusammenarbeit: Einblicke in das Teilverhalten können zur Entwicklung von Funktionen führen, die eine bessere Zusammenarbeit unter Entwicklern fördern.
- Benchmarking der KI-Leistung: Die Arten von Anfragen und Interaktionen zeigen, dass bestehende Benchmarks möglicherweise nicht das gesamte Spektrum der Eingaben erfassen, die Entwickler bei der Arbeit mit KI verwenden.
Indem wir uns auf die spezifischen Weise konzentrieren, wie Entwickler ChatGPT nutzen, können wir zukünftige Forschungen und Entwicklungen informieren, die darauf abzielen, die Rolle der KI im Softwareentwicklungsprozess zu verbessern.
Zukünftige Forschungsrichtungen
Es gibt mehrere Ansätze für zukünftige Forschungen, basierend auf den Ergebnissen dieser Studie:
- Grössere Datensätze: Den Datensatz erweitern, um Gespräche von anderen Plattformen oder zusätzlichen Zeiträumen einzubeziehen, kann umfassendere Einblicke bieten.
- Untersuchung der Prompt-Entwicklung: Zu untersuchen, wie Entwickler ihre Aufforderungen formulieren, kann zu einem besseren Verständnis der effektiven Kommunikation mit KI führen.
- Rollenspezifische Tools: Die Entwicklung spezialisierter Tools, die sich an den unterschiedlichen Rollen orientieren, die Entwickler im kollaborativen Coding spielen, kann die Produktivität steigern.
Durch die Erkundung dieser Bereiche können Forscher und Entwickler besser verstehen, wie KI zunehmend Einfluss auf die Softwareentwicklung nimmt und wie sie die Zusammenarbeit unter Entwicklern verbessern kann.
Fazit
ChatGPT erweist sich als wertvolle Hilfe in Gesprächen zur Softwareentwicklung, insbesondere auf kollaborativen Plattformen wie GitHub. Durch die Analyse geteilter Gespräche haben wir Einblicke in die Arten von Anfragen gewonnen, die Entwickler stellen, wie sie mit ChatGPT interagieren und die Gründe für das Teilen dieser Gespräche. Die Ergebnisse betonen die Bedeutung des Kontextverständnisses und massgeschneiderter Tools, um effektive Interaktionen zwischen Entwicklern und KI zu unterstützen und Innovationen sowie Effizienz im Softwareentwicklungsprozess voranzutreiben.
Titel: An Empirical Study on Developers Shared Conversations with ChatGPT in GitHub Pull Requests and Issues
Zusammenfassung: ChatGPT has significantly impacted software development practices, providing substantial assistance to developers in a variety of tasks, including coding, testing, and debugging. Despite its widespread adoption, the impact of ChatGPT as an assistant in collaborative coding remains largely unexplored. In this paper, we analyze a dataset of 210 and 370 developers shared conversations with ChatGPT in GitHub pull requests (PRs) and issues. We manually examined the content of the conversations and characterized the dynamics of the sharing behavior, i.e., understanding the rationale behind the sharing, identifying the locations where the conversations were shared, and determining the roles of the developers who shared them. Our main observations are: (1) Developers seek ChatGPT assistance across 16 types of software engineering inquiries. In both conversations shared in PRs and issues, the most frequently encountered inquiry categories include code generation, conceptual questions, how-to guides, issue resolution, and code review. (2) Developers frequently engage with ChatGPT via multi-turn conversations where each prompt can fulfill various roles, such as unveiling initial or new tasks, iterative follow-up, and prompt refinement. Multi-turn conversations account for 33.2% of the conversations shared in PRs and 36.9% in issues. (3) In collaborative coding, developers leverage shared conversations with ChatGPT to facilitate their role-specific contributions, whether as authors of PRs or issues, code reviewers, or collaborators on issues. Our work serves as the first step towards understanding the dynamics between developers and ChatGPT in collaborative software development and opens up new directions for future research on the topic.
Autoren: Huizi Hao, Kazi Amit Hasan, Hong Qin, Marcos Macedo, Yuan Tian, Steven H. H. Ding, Ahmed E. Hassan
Letzte Aktualisierung: 2024-03-15 00:00:00
Sprache: English
Quell-URL: https://arxiv.org/abs/2403.10468
Quell-PDF: https://arxiv.org/pdf/2403.10468
Lizenz: https://creativecommons.org/licenses/by-nc-sa/4.0/
Änderungen: Diese Zusammenfassung wurde mit Unterstützung von AI erstellt und kann Ungenauigkeiten enthalten. Genaue Informationen entnehmen Sie bitte den hier verlinkten Originaldokumenten.
Vielen Dank an arxiv für die Nutzung seiner Open-Access-Interoperabilität.
Referenz Links
- https://github.com/features/copilot
- https://aws.amazon.com/codewhisperer
- https://openai.com/chatgpt
- https://github.com/RISElabQueens/analyzing-shared-conversation
- https://github.com/NAIST-SE/DevGPT
- https://github.com/polywrap/evo.ninja/pull/206
- https://github.com/pemistahl/lingua-py
- https://chat.openai.com/share/01ba1f78-371b-4ebc-bddd-32b88e4770f7
- https://chat.openai.com/share/a41f5514-8ca7-48cf-b348-b0a995498971
- https://chat.openai.com/share/095e7ed7-7fe0-477e-8482-6369695ee9d4
- https://chat.openai.com/share/b937e7e8-1c09-4c96-be08-27551f70c1f4
- https://queensu.zoom.us/j/93382805661?pwd=cC9VNXdFNkM4b2lWTGJLcW54WFQ0Zz09
- https://doi.org/10.1109/ICSE48619.2023.00125
- https://2024.msrconf.org/track/msr-2024-mining-challenge
- https://arxiv.org/abs/1706.03762
- https://arxiv.org/abs/2305.14871
- https://arxiv.org/abs/2203.05794
- https://aws.amazon.com/codewhisperer/
- https://help.openai.com/en/articles/7943611-create-a-shared-link
- https://help.openai.com/en/articles/7925741-chatgpt-shared-links-faq