GitHub Copilotの生産性向上における貢献度を調査


オープンソースプロジェクトおよびビジネスユースを含む、ソフトウェアの開発プラットフォームを提供するGitHub, Inc.(本社:米国サンフランシスコ)は、米国を拠点とする2,000名以上のソフトウェア開発者を対象に、GitHub Copilotによる生産性の向上とコーディングの改善への貢献度について調査を実施しました。この調査から得られた定性的なフィードバックと主観的認識を、客観的な使用状況の測定値と生産性に関する定量的なデータと照合しました。

2021年、GitHub Copilotのテクニカルプレビュー(https://github.blog/2021-06-29-introducing-github-copilot-ai-pair-programmer/)の開始以来、AIペアプログラマーとして、コーディングに関する提案をリアルタイムで提供しています。プレビューのシート数制限があったにも関わらず、使い始めた開発者は「GitHub Copilotが日々の業務フローにおいて欠かせない存在になった」と話しています。

現在、GitHub Copilotの一般提供(GA)が開始され、すべての開発者が利用できるようになっています(https://github.blog/jp/2022-06-22-github-copilot-is-generally-available-to-all-developers/)。これまでに寄せられた数々のフィードバックや、最近受け取ったフィードバックは、「AIはコーディング中の開発者の生産性と満足度の向上に役立つ」というGitHubの主要なテーマを裏付けるものとなっています。それに加え、当社の理論を検証するため、GitHub Copilot自体の実際の開発者の生産性向上への貢献度の計測を試みました。

GitHubの調査チームとエンジニアリングチームが連携し、2,000名以上から収集した定性的な調査データと匿名化されたデータを組み合わせて、「開発者がGitHub Copilotによって生産性の向上を実感しているかどうか」、さらに「GitHub Copilot使用時の開発者の生産性向上がデータによって実証されているかどうか」を判定しました。

(本調査の最終結果は、本年開催されたPLDIのMAPS 2022カンファレンス(https://pldi22.sigplan.org/home/maps-2022)にてGitHubチームが発表した学術論文(https://dl.acm.org/doi/10.1145/3520312.3534864)(英語)に掲載されています。)

人、計算機、そしてGitHub Copilot
「友人と一緒にペアプログラミングを行うと、生産性は向上しますか?」という問いに対し、ほとんどの人が「生産性が向上する」と回答します。例えば、友人の提案が完璧なものではなくても、多くの人が、誰かと一緒に作業をすることで、短時間でコーディングし、完成品の質を高めるだけでなく、共同作業を通じて何か新しいことを学ぶことができると考えます。さまざまな学術研究者も、ペアプログラミングによって生産性が向上するという証拠を発見しています。
[1(https://www.sciencedirect.com/science/article/abs/pii/S0950584909000123), 2(https://www.tandfonline.com/doi/abs/10.1080/08993408.2011.579808)]

間違った答えを頻出するような計算機は、数学の問題を解くことには全く役に立たないでしょう。ここでの違いは、私たちが計算機に対して最も重視している点は精度だということです。インスピレーションを得るために計算機を利用する人は多くありません。

ある意味、GitHub Copilotは「計算機が付属したペアプログラマー」と言えるでしょう。細かくて面倒な作業が非常に得意で、すべての括弧を正しい順序で閉じる機能などは安心して任せられるため、とても便利です。


括弧を正確に閉じてくれる機能に加え、全体的なパターンの提案や少し変更するだけで完成できるような、あらかじめ用意されたテンプレートなどは利便性は非常に高いと言えるでしょう。また、大胆な式の提案も、そのまま使用できるものではありませんが、たたき台として有益なものです。

調査法:GitHub Copilotが開発者の生産性にもたらす影響
GitHub Copilotの背後にあるGitHubのビジョンは開発者の満足度と生産性を高めることです。開発者にとって最も重要な目標である「優れたソフトウェアの開発」に注力できる環境を提供したいと考えています。

しかし、「生産性」という言葉は一見シンプルですが、実際にはさまざまな意味が含まれています。開発者は、キーストロークを減らしたり、GoogleやStack Overflowでの検索を避けたいと考えているでしょうか?GitHub Copilotは、計算機のような機械的なタスクに対して高精度なソリューションを提供することで、開発者がフロー状態を維持できるように支援すべきでしょうか?それとも、開発者が行き詰まった時に、その状況の打開に役立つかもしれない推測的なスタブ(代用品)でインスピレーションを提供するべきでしょうか?

GitHub Copilotの開発に際しては、分からないことがたくさんあったため、先ず、ユーザーに質問することから調査を開始しました。その後、匿名化されたユーザーデータと照らし合わせて回答を確認し、開発者が感じているGitHub Copilotの生産性レベルへの影響が、実際の使用状況に反映されているかを判断しました。

計2,000人以上の開発者を対象とした調査結果から得られた回答を、同期間のユーザーデータと比較しました。その際、次の3つの疑問への回答を得ることに注力しました。
  1. GitHub Copilotによって生産性が向上していると感じているか?
  2. そうした感覚は、客観的な使用状況の測定値に反映されているか?
  3. そうした感覚を最もよく反映している使用状況の測定値はどれか?
調査結果:GitHub Copilotを使うことは、開発者の生産性向上と相関関係がある
調査回答者から寄せられた「GitHub Copilotは多くの面で役に立っている」という声は、GitHub Copilotを開発したチーム メンバーにとって非常に嬉しいものでした。 また、客観的な使用状況データとの強い関連性があることも判明しました。例えば、GitHub Copilotが貢献した文字数、そのまま使用された提案の数、およびGitHub Copilotが提案を行った頻度をカウントしました。これらすべてが、報告された有用性や生産性の向上と相関関係が確認できました。

現時点で関連性が最も強いのは、「受け入れられた提案数」を「表示された提案数」で割ったものです。この受け入れ率によって、GitHub Copilotが生成するコード提案のうち、受け入れるに値すると判断されたかという割合を算出しました。

【GitHub Copilotにより非常に生産性が向上したと報告する開発者は、表示されたコード提案を受け入れる数が最も多い】


GitHub Copilotの有用性に応じてユーザーを四分位に分類したところ、これらのグループ間には明確な違いがありました。非常に生産性が向上したと回答した開発者は、入力補完の受け入れ率が遥かに高かった(huge)のです。

GitHub Copilotが適切な出発点を提示している限り、その提案が多少の手直しが必要であった場合でも、開発者はそれほど気にしないことが分かり、非常に理にかなっていると言えます。GitHub Copilotは、それ自体でソフトウェアを開発するように設計されている訳ではありません。開発者のフロー状態を維持しやすくするために、有用な提案を提供するように設計されています。つまり、GitHub Copilotは開発者にパーツを提供しますが、それらを組み立ててデザインし、完成品を作り上げるのは開発者自身の仕事なのです。

詳細情報:GitHub Copilotが生産性に与える影響に関する調査結果
GitHubは、今回の調査結果を含む学術研究論文(https://dl.acm.org/doi/10.1145/3520312.3534864)を発表しました。この論文では、GitHub Copilotユーザーに見られるコード提案の受け入れ率に関する一般的な背景についても説明しています。保持、言語による違い、週末のコーディングなどのトピックについて、より深く体系的に記した詳細をご覧いただけます。この論文はPLDIのMAPS 2022で紹介しました。

ソースコードの書き方は開発者によって異なります。当社の調査結果が、開発者の皆さまにも当てはまるかを、是非試していただきたいと考えています。

下記より、GitHub Copilotにご登録いただけます。
https://copilot.github.com/

GitHub Blog
英語:https://github.blog/2022-07-14-research-how-github-copilot-helps-improve-developer-productivity/

日本語:
https://github.blog/jp/2022-07-25-research-how-github-copilot-helps-improve-developer-productivity/

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

この企業の関連リリース

この企業の情報

組織名
GitHub Japan
ホームページ
https://github.co.jp/
代表者
   
上場
非上場

検索

人気の記事

カテゴリ

アクセスランキング

  • 週間
  • 月間
  • 機能と特徴
  • Twitter
  • Facebook
  • デジタルPR研究所