Copilot hero banner

調査:GitHub Copilotが開発者の生産性と満足度に与える影響を数値化

Image of Eirini Kalliamvakou

約1年前にGitHub Copilotのテクニカルプレビューを開始したとき、私たちはこのツールがソフトウェア開発者の役に立っているのかを明確にしたいと考えていました。アンケートと実験を組み合わせた調査を実施したところ、予想していた回答と予想外の回答の両方が導き出されました。


私たちは日々、より少ない労力でより多くのことを実現するために、ツールを活用したり工程を習慣化したりしています。ソフトウェア開発においては、作業の効率化のために非常に多くのツールとテクノロジーが生み出されており、それらを選択することに疲れを感じるほどになっています。2021年にGitHub Copilotのテクニカルプレビューを開始したとき、私たちは、これによって開発者の生産性が向上するだろうという仮説を立てました。実際、初期のユーザーから「生産性が向上した」という報告がありました。リリースから数か月後、私たちは、定量的および定性的な調査を行って、その効果をより詳しく理解し、測定したいと考えました。そのためには、まず「生産的であるとはどういう意味なのか?」という質問に答える必要がありました。

開発者の生産性の測定はなぜこれほど難しいのか?

開発者の生産性を測定する場合、コンセンサスはほとんどなく、答えよりも遥かに多くの質問があります。例を挙げると…

  • 生産性の「正しい」指標とは?[12]
  • 生産性の自己申告にどれくらいの価値があるのか?[3]
  • 「インプットに対するアウトプットの割合」という従来の生産性の考え方は、開発作業に伴う複雑な問題解決や創造性に対しても適用できるのか?[4]。

2021年の調査では、開発者が生産性について少し違った見方をしていることが判明しました。それは、「良い一日を過ごす」という考えに似ていました。目の前のタスクに集中し、有意義な進捗を遂げ、気分よく一日の作業を終えられることは、開発者の満足度と生産性に大きな違いをもたらします。

これは今回限りの発見ではありません。他の学術研究でも、こうした成果が開発者にとって重要[5]であり、満足度の高い開発者はより良いパフォーマンスを発揮する[6, 7]ことが示されています。開発者の生産性にインプットとアウトプット以上のものが関係していることは明らかです。

開発者の生産性に関するGitHubの考え

AI支援によるソフトウェア開発は比較的新しい分野であるため、研究者が利用できる先行研究はほとんどありません。私たちは、GitHub Copilotのさまざまな効果を測定したいと考えましたが、それはどのようなものなのでしょうか?初期の観察とユーザーへのインタビューの後、GitHub Copilotの使用経験について大規模な情報を得るため、2,000人以上の開発者を対象に調査を実施しました。この調査手法を設計する際、以下の3つの点を念頭に置きました。

  • 全体的な視点から生産性を見る:GitHubでは、開発者の生産性とそれに影響を及ぼす多くの要因について、広範かつ持続可能な視点から見たいと考えています。そこで、SPACE生産性フレームワークを用いて、どの側面を調査すべきかを選択しました。
  • 開発者自身の視点を含める:全体像を組み立てるために定性的(知覚的)データと定量的(観察的)データを含む調査を複数回実施しました。ここで確認したかった事は、次の2つです。(a)ユーザーの実体験はテレメトリーからの推測を裏付けているのか?(b)定性的なフィードバックは大規模なユーザーベースに対して一般化されるのか
  • 日常の開発シナリオでGitHub Copilotの効果を評価する:調査の準備段階では、業務として開発に携わる人を募集すること、および開発者が特定の日に行う典型的なタスクに関するテストを設計することに特別な注意を払いました。

それでは、結果について詳しく見ていきましょう。

調査結果1:開発者の生産性はスピードだけではない

私たちは大規模な調査を通じて、GitHub Copilotを使用している開発者がタスクのスピードアップ以外にメリットを感じているかどうかを確認したいと考えました。特に目立った点は次のとおりです。

  • 開発者の満足度の向上:ユーザーの60~75%が、GitHub Copilotを使用することで仕事に満足感を覚え、コーディング中のフラストレーションが減り、より満足度の高い仕事に集中できると報告しています。自分の仕事に満足できることは、開発者にとって素晴らしいことです!
  • 精神エネルギーの節約:73%のユーザーが「GitHub Copilotがフローの維持に役立った」と回答し、87%のユーザーが「GitHub Copilotが反復作業における精神エネルギーの維持に役立った」と回答しています。これはまさに、開発者の幸福につながります。なぜなら、以前の調査から、コンテキストの切り替えや中断が開発者の一日を台無しにする可能性があることや、特定の種類の作業が特に疲労を生むことがわかっているからです[89]。

チャートの内容と見方
📝 コンテキストについて: この調査では、SPACEフレームワーク.のすべての側面をカバーするようにステートメントを盛り込みました。SPACEは、開発者の生産性のさまざまな側面を表す、以下の多次元フレームワークを示した頭字語です。(1) Satisfaction and well-being(満足度と幸福)、(2) Performance(パフォーマンス)、(3) Activity(行動)、(4) Communication and collaboration(コミュニケーションとコラボレーション)、(5) Efficiency and flow(効率性とフロー)。この投稿では、「満足度と幸福」と「効率性とフロー」の側面からの結果に焦点を当てます。どちらの側面も開発者の生産性にとって重要でありながら、見過ごされがちです。調査結果とデータをまとめた別の刊行物を現在準備中のため、今回すべてをお話しすることはできません。ご了承ください。
📊 チャートの内容: 以下のチャートは、対応するステートメントに同意した回答者の割合を示しています(「非常に同意する」と「同意する」の合計)。テクニカルプレビューにサインアップした開発者から、2,000件を超える回答が寄せられました。回答者は主にプロの開発者(約60%)ですが、学生(約30%)や趣味で開発をしている人(約7%)も含まれていました。生産性の結果と開発者のGitHub Copilotの使用量との相関関係について再確認するには、過去のブログ投稿および学術論文をご覧ください。

表:GitHub Copilotを使用した場合の開発者の生産性の各側面を測定するアンケートの回答

Copilot
*すべての質問はSPACEフレームワークを使用してモデル化しました。

GitHub Copilotは開発者にとって「生産性を高める補助」ですが、それだけではありません。あるユーザーは、全体的な体験について次のように述べています。

“[Copilotを使用することで] 考えなくてはいけないことが減って、楽しいことだけ考えることができます。それはコーディングをより楽しいものに変える*と同時に*効率性をより高めます。

– シニアソフトウェアエンジニア

私たちの定性的調査から得られた結論は、「退屈な反復作業をGitHub Copilotに任せることで、認知的負荷が軽減された」ということです。これにより開発者は、複雑で重要な思考や問題解決を必要とする、より有意義な作業を楽しむ余裕が生まれ、より大きな幸福感と満足を得ることができます。

調査結果2:ただし、スピードも重要

この調査では、「GitHub Copilotを使用すると、特に反復的なタスクをより速く完了できる」という回答が多く見られました。これは(GitHub Copilotでは人間よりも速く書き出せるため)予想通りの結果でしたが、それでも90%以上の同意が得られたことは嬉しい驚きでした。大多数の開発者が「GitHub Copilotがタスク完了の時間短縮に役立っている」と認識していますが、実際にその効果を観察して測定することは可能でしょうか?そのために制御実験を行いました。

図:実験のプロセスと結果の概要

Summary of the experiment process and results

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 Copilotはタスク完了までの時間短縮をサポートし、開発者の精神エネルギーを節約し、より大きな満足度が得られる作業に集中することに役立ち、さらに、最終的にはコーディング中により多くの楽しみを見つけられることが明らかになりました。

また、GitHub Copilotの初期トライアルに参加した企業のエンジニアリングリーダーから、これらのメリットの重要性が増しているという声が届いています。エンジニアの健康と生産性を維持するための方法を考える際に、彼らは開発者の総合的な健康に関して同じように考え、喜びをもたらすツールの使用を促進しています。

“最先端の仕事をすることでエンジニアは満足を感じ、最先端のツールを提供することで私たちは満足を感じます。Copilotは物事をよりエキサイティングにしてくれます。” 

大手エンジニアリング企業のCTO

GitHub Copilotの登場により、AIを活用したコード補完ツールの影響を調査しているのは私たちだけではなくなりました。生産性の分野では、最近4人の学生による評価と、MLで強化されたコード補完に関するGoogleの内部評価を目にする機会がありました。さらに広く見渡すと、さまざまな研究者が、教育セキュリティ、開発者の慣行行動など、多岐にわたるコンテキストでGitHub Copilotの意味を理解しようとしています。現在、私たち全員がさまざまな環境でGitHub Copilotを試しながら学習しています。これは発展途上の分野であり、私たちは、研究コミュニティ(その中には私たちも含まれます)が今後数か月以内にも明らかにするであろう調査結果を心待ちにしています。

謝辞

調査と実験に参加してくださったすべての開発者に心から御礼申し上げます。皆さんからの情報提供がなければ、この調査は完成しなかったでしょう。この実験は、MicrosoftのOCE (Office of the Chief Economist)の協力のもとに実施しました。特に、Sida Peng氏とAadharsh Kannan氏から大きなお力添えをいただきました。