GitHub Copilotが開発者の生産性と満足度に与える影響を数値化
オープンソースプロジェクトおよびビジネスユースを含む、ソフトウェアの開発プラットフォームを提供するGitHub, Inc.(本社:米国サンフランシスコ)は、9月7日(米国時間)にAIペアプログラマー「GitHub Copilot」が開発者の生産性と満足度に与える影響を数値化した調査を発表しました。
ソフトウェア開発において、作業の効率化を目指し多くのツールとテクノロジーが誕生したことで、適切にツールを選択することが難しいという状況があります。
GitHub Copilotのテクニカルプレビューを開始した2021年、このツールが開発者の生産性向上に寄与するだろうという仮説を立てていたところ、初期のユーザーから実際に「生産性が向上した」という報告がありました。リリースから数か月後、定量的および定性的な調査を行い、その効果をより詳しく測定したいと考えましたが、そのためにはまず、「生産的であるとはどういう意味なのか」という質問の答えを導き出す必要がありました。
開発者の生産性の測定はなぜ難しいのか?
開発者の生産性を測定する場合、コンセンサスはほとんどなく、答えよりも遥かに多く、以下のような質問があります。
- 生産性の「正しい」指標とは?[1(https://link.springer.com/article/10.1007/s10664-020-09820-z)、2(https://ieeexplore.ieee.org/abstract/document/8643844)]
- 生産性の自己申告にどれくらいの価値があるのか?[3(https://dl.acm.org/doi/abs/10.1145/2635868.2635892?casa_token=j1_2RtHeHBoAAAAA:Ic_ycWwPvzW2a4SPzZ6vFrHQG4N7PzjoCP9cb1CaljCmGge4DNmYiSC2d_Lc7a5rz-9Otiph1nSm)]
- 「インプットに対するアウトプットの割合」という従来の生産性の考え方は、開発作業に伴う複雑な問題解決や創造性に対しても適用できるのか?[4(https://link.springer.com/book/10.1007/978-1-4842-4221-6)]。
2021年の調査では、開発者が生産性について少し違った見方をしていることが判明しました。それは、「良い一日(https://github.blog/2021-05-25-octoverse-spotlight-good-day-project/)を過ごす」という考えに似ていました。目の前のタスクに集中し、有意義な進捗を遂げ、気分よく一日の作業を終えられることは、開発者の満足度と生産性に大きな違いをもたらします。
この発見は、今回限りのものではありません。他の学術研究でも、こうした成果が開発者にとって重要[5(https://discovery.ucl.ac.uk/id/eprint/10090507/1/Barr_Today%20was%20a%20Good%20Day.%20The%20Daily%20Life%20of%20Software%20Developers_AAM2.pdf)]であり、満足度の高い開発者はより良いパフォーマンスを発揮する[6(https://arxiv.org/pdf/1505.00922.pdf), 7(https://arxiv.org/pdf/1405.4422.pdf)]ことが示されています。開発者の生産性にインプットとアウトプット以上のものが関係していることは明らかです。
開発者の生産性に関するGitHubの考え
AI支援によるソフトウェア開発は比較的新しい分野であるため、研究者が利用できる先行研究はほとんどありません。GitHubでは、GitHub Copilotのさまざまな効果を測定したいと考え、初期の観察とユーザーへのインタビューの後、使用経験について大規模な情報を得るために2,000人以上の開発者を対象に調査を実施しました。調査手法として以下3つの点に着目し設計しました。
- 全体的な視点から生産性を見る:GitHubでは、開発者の生産性とそれに影響を及ぼす多くの要因について、広範かつ持続可能な視点(https://github.swoogo.com/2021/session/692592/the-sustainable-future-of-developer-productivity)から見たいと考えています。そこで、SPACE生産性フレームワーク(https://queue.acm.org/detail.cfm?id=3454124)を用いて、どの側面を調査すべきかを選択しました。
- 開発者自身の視点を含める:全体像を組み立てるために定性的(知覚的)データと定量的(観察的)データを含む調査を複数回実施しました。この調査を通して確認したかった事は、次の2つです。(a)ユーザーの実体験はテレメトリーからの推測を裏付けているのか?(b)定性的なフィードバックは大規模なユーザーベースに対して一般化されるのか 。
- 日常の開発シナリオでGitHub Copilotの効果を評価する:調査の準備段階では、業務として開発に携わる人を募集すること、および開発者が特定の日に行う典型的なタスクに関するテストを設計することに細心の注意を払いました。
調査結果1:開発者の生産性はスピードだけではない
今回の大規模な調査を通じて、GitHub Copilotを使用している開発者がタスクのスピードアップ以外にメリットを感じているかどうかを確認しました。特に注目すべき点は次のとおりです。
- 開発者の満足度の向上:ユーザーの60~75%が、GitHub Copilotを使用することで仕事に満足感を覚え、コーディング中のフラストレーションが減り、より満足度の高い仕事に集中できると報告しました。
- 精神エネルギーの節約:73%のユーザーが「GitHub Copilotがフローの維持に役立った」と回答し、87%のユーザーが「GitHub Copilotが反復作業における精神エネルギーの維持に役立った」と回答しています。これはまさに、開発者の幸福につながります。以前の調査で、コンテキストの切り替えや中断が開発者の一日を台無しにする可能性があることや、特定の種類の作業が特に疲労を生むことがわかっています[8(https://dl.acm.org/doi/pdf/10.1145/2635868.2635892?casa_token=QSunRfpWvOQAAAAA:2HVi9JV6N7A5KKMRXe23pT8j71mFXoxdzKwwMiBXd_UdqvAClkQ1H_w3DJx-AJbz9AD9PRHiSYau)、9(https://github.blog/2021-05-25-octoverse-spotlight-good-day-project/)]。
チャートの内容と見方
コンテキストについて:この調査では、SPACEフレームワーク(https://queue.acm.org/detail.cfm?id=3454124)のすべての側面をカバーするようにステートメントを盛り込んでいます。SPACEは、開発者の生産性のさまざまな側面を表し、以下の多次元フレームワークを示した頭字語です。(1) Satisfaction and well-being(満足度と幸福)、(2) Performance(パフォーマンス)、(3) Activity(行動)、(4) Communication and collaboration(コミュニケーションとコラボレーション)、(5) Efficiency and flow(効率性とフロー)。本調査結果1では、「満足度と幸福」と「効率性とフロー」の側面からの結果に焦点を当てます。どちらの側面も開発者の生産性にとって重要でありながら、見過ごされがちです。調査結果とデータをまとめた別の刊行物を現在準備中のため、今回が調査結果のすべてではありません。
チャートの内容:以下のチャートは、対応するステートメントに同意した回答者の割合を示しています(「非常に同意する」と「同意する」の合計)。テクニカルプレビューにサインアップした開発者から、2,000件を超える回答が寄せられました。回答者は主にプロの開発者(約60%)ですが、学生(約30%)や趣味で開発をしている人(約7%)も含まれていました。
生産性の結果と開発者のGitHub Copilotの使用量との相関関係について再確認するには、過去のブログ投稿(https://digitalpr.jp/r/61423)および学術論文(https://dl.acm.org/doi/10.1145/3520312.3534864)をご覧ください。
表:GitHub Copilotを使用した場合の開発者の生産性の各側面を測定するアンケートの回答
*すべての質問はSPACEフレームワーク(https://queue.acm.org/detail.cfm?id=3454124)を使用してモデル化しました。
GitHub Copilotは開発者にとって「生産性を高める補助」ですが、それだけではありません。あるシニアソフトウェアエンジニアは、全体的な体験について次のように述べています。「Copilotを使用することで考えなくてはいけないことが減り、自分が楽しいと思えることだけを考えることができます。それはコーディングをより楽しいものに変えると同時に効率性をより高めます」
定性的調査から得られた結論は、「退屈な反復作業をGitHub Copilotに任せることで、認知的負荷が軽減された」ということです。これにより開発者は、複雑で重要な思考や問題解決を必要とする、より有意義な作業を楽しむ余裕が生まれ、より大きな幸福感と満足を得ることができます。
調査結果2:しかし、スピードも重要
本調査では、「GitHub Copilotを使用すると、特に反復的なタスクをより速く完了できる」という回答が多く見られました。GitHub Copilotは人間よりも速く書き出すため予想通りの結果でしたが、それでも90%以上の同意が得られたことは嬉しい驚きでした。大多数の開発者が「GitHub Copilotがタスク完了の時間短縮に役立っている」と認識していますが、実際にその効果を観察して測定することは可能か、検証するために制御実験を行いました。
図:実験のプロセスと結果の概要
95人の開発者を無作為に2つのグループに分け、JavaScriptでHTTPサーバーのコーディングに要した時間を計測しました。片方のグループのみにGitHub Copilotを使用してもらい、もう一方は使用しないという実験です。それと同時に、できるだけ多くの要因を制御しようと試みました。すべての開発者がJavaScriptに精通しており、全員に同じ指示を与えました。最後にGitHub Classroomを使用して、テストスイートで提出物の正確性と完全性を自動採点しました。実験のセットアップの舞台裏に関するブログ記事は、後日公開予定です。
実験では、両グループのタスク成功率の平均、および両グループが完了するまでに要した時間の平均を測定しました。
- GitHub Copilotを使用したグループのほうが、タスクの完了率が高かった(GitHub Copilotを使用しないグループの70%に対して、78%)。
- 顕著な違いは、GitHub Copilotを使用した開発者は、GitHub Copilotを使用しなかった開発者よりも55%速くタスクを完了したことです。具体的には、GitHub Copilotを使用した開発者はタスク完了に平均1時間11分を必要としました。一方のGitHub Copilotを使用しなかった開発者は平均2時間41分を要しました。これらの結果は統計的に有意(P=.0017)であり、速度増加率の95%信頼区間は[21%, 89%]です。
明らかにすべきことは他にもあります。GitHubはさらに多くの実験を行い、すでに収集した実験データを徹底的に分析しています。また、それによって、効果の異質性、またはコードの品質への潜在的な影響を調査します。今後も、学術出版物を通じた調査結果の発表を計画しています。
こうした調査結果は、開発者にとって何を意味するのか
GitHubは、開発者がソフトウェアを開発する際に、より効率的に作業し、仕事でより満足のいく仕事を見つけられるようサポートすることを目的としています。今回の調査により、GitHub Copilotはタスク完了までの時間短縮をサポートし、開発者の精神エネルギーを節約し、より大きな満足度が得られる作業に集中することに役立ち、さらに、最終的にはコーディング中により多くの楽しみを見つけられることが明らかになりました。
また、GitHub Copilotの初期トライアルに参加した企業のエンジニアリングリーダーから、これらのメリットの重要性が増しているという声が届いています。エンジニアの健康と生産性を維持するための方法を考える際に、彼らは開発者の総合的な健康に関して同じように考え、喜びをもたらすツールの使用を促進しています。大手エンジニアリング企業のCTOは、「最先端の仕事をすることでエンジニアは満足を感じ、最先端のツールを提供することで私たちは満足を感じます。Copilotは物事をよりエキサイティングにしてくれます」と述べています。
GitHub Copilotの登場により、AIを活用したコード補完ツールの影響を調査しているのはGitHubだけではなくなりました。生産性の分野では、最近では24人の学生による評価(https://tianyi-zhang.github.io/files/chi2022-lbw-copilot.pdf)と、MLで強化されたコード補完に関するGoogleの内部評価(https://ai.googleblog.com/2022/07/ml-enhanced-code-completion-improves.html)を目にする機会がありました。さらに広く見渡すと、さまざまな研究者が、教育(https://dl.acm.org/doi/pdf/10.1145/3511861.3511863)、セキュリティ(https://arxiv.org/abs/2108.09293)、開発者の慣行(https://ieeexplore.ieee.org/document/9796235)と行動(https://arxiv.org/abs/2206.15000)など、多岐にわたるコンテキストでGitHub Copilotの意味を理解しようとしています。この分野は発展途上中であり、GitHubは、研究コミュニティが今後数か月以内にも明らかにするであろう調査結果に期待を待っています。
GitHub Blog
英語:https://github.blog/2022-09-07-research-quantifying-github-copilots-impact-on-developer-productivity-and-happiness/
日本語:
https://github.blog/jp/2022-09-15-research-quantifying-github-copilots-impact-on-developer-productivity-and-happiness/
GitHubに関する情報は、こちらからもご覧いただけます。
Blog: (英語) https://github.blog (日本語) https://github.blog/jp
Twitter:
(英語) @github( https://twitter.com/github )
(日本語) @GitHubJapan( https://twitter.com/githubjapan )
【GitHub について】https://github.co.jp
GitHubは「開発者ファースト」の思想のもと、開発者のコラボレーションおよび困難な問題解決、世界にとって重要なテクノロジーの創出を促進させるための開発環境を提供しています。また、ソフトウェアを起点とする新たな未来を創造し、世界に変化をもたらすため、個人または企業規模に関わらず、ベストなコラボレーションができるコミュニティの拡大を支援しています。
安全なソフトウェア開発には、日常のワークフローの中でできる限り早いタイミングで脆弱性を発見し、対処できる仕組みづくりが重要です。GitHubは、企業とオープンソースのメンテナーが、ソフトウェア開発のライフサイクル全体を通じて、安全にコーディングできるようにするツールとプロセスを構築しています。
GitHubは、開発者がコードを開発、共有、そしてリリースする場です。学生や趣味で開発を行う人、コンサルタント、エンタープライズの開発者、経営者など、初心者から高い専門性をもつ世界8,300万人以上の方々および400万以上のOrganizationに利用されています。GitHubは単なるソースコードを共有する場ではありません。GitHubはオープンソースコラボレーションの源としてさまざまなソリューションを提供します。
【製品/サービスに関するお問い合わせ先】
ギットハブ・ジャパン営業およびサポート窓口
Email: jp-sales@github.com