2023/11/04
KDDIアジャイル開発センター株式会社(KAG)/KDDIの三宅です。
KAGでは生成AIが非常に盛り上がっています! (本記事のサムネイル画像はChatGPT(DALL-E 3)で生成しています)
この盛り上がりはエンジニアだけでなくデザイナーやプロダクトオーナーなどロールを問わず活用しています。
今回は生成AI活用の中でも我々KAGのエンジニアが最も身近に活用しているGitHub Copilotについて利用状況や効果について共有します!
KAGでは3割くらいGitHub Copilotからの提案コードを受け入れています。 すでにGitHub Copilotを利用している方ならこれだけでKAGの利用状況が大体分かるかもしれません。
ここからは、GitHub Copilotとは?開発業務で利用する上で考慮していることは?という基本的な内容から、KAGにおけるGitHub CopilotのTelemetry(利用状況)についての考察、利用者に向けたアンケートによる導入効果について説明していきます。
GitHubが提供しているAIによるコーディングツールです。 ユーザーはコメントやコードの一部を入力することで、AIからコードの提案を受け、まるでAIと一緒にペアプログラミングをしているような感覚でソースコードを実装することができます。
また、KAGではGitHub Copilot for Businessを利用することで、著作権・ライセンス侵害とプライベートな情報の流出リスクを考慮しています。
具体的には、Organization全体にパブリック コードに一致する候補をブロックする設定をポリシーとして管理することで著作権やライセンス侵害のリスクを低減しています。 さらに、GitHub Copilot for Businessでは、Copilotがコードを提案する際に必要なコンテキストとして収集した私たちのコードや、Copilotから提案されたコードの候補はGitHub側に保持されることはなく、Copilotの学習・改善に利用されることはありません。
GitHub Copilot for Business について
上記がGitHub Copilotの利用状況データです。 注目すべきポイントはGitHub Copilotからのコード提案の受け入れ率(Acceptance Rates)です。28.4%ということでだいたい3割ほどAIの提案を受け入れています。
また、言語別に見ていくと以下の状況です。
Accepts(提案の受け入れ数)上位で見ていくと、TypeScript(React), JavaScript, TypeScript, Python, Javaが他の言語/フレームワークよりも桁が一つ大きく3000台です。さらにAccept Rateを見ていくとJavaScriptが41.77%, Pythonが32.92%, TypeScriptが32.55%, Javaが30.08%となっており全体平均の28.4%以上です。 これら言語別の数値は私が認識しているKAGの技術スタックに近い印象です。
アンケート回答者56名に対して、以下の2つの観点でアンケートに回答してもらいました。
まずは、削減時間の体感についてです。 1日あたりの平均削減時間は約34分となりました。1ヶ月あたりに換算すると約10.8時間(20営業日)です。 1日あたりだと少し弱い印象ですが、それが積み重なっていくことで1ヶ月あたりの数値で見ると改善効果としてインパクトが強いですね。 実装作業は日々継続していることなので、これが半年、一年と積み重なるとても大きな改善に繋がります!
次は7項目の定性的な設問の結果まとめです。 平均値および中央値は「そう思わない」を1、「そう思う」を5として算出しています。
どの設問においても、ポジティブな回答が多数を占めていました。
GitHub Copilotの利用状況データを再掲します。
現状、受け入れ率が28.4%ということで大体3割くらいのコードをCopilotから提案してもらったものをまずは受け入れています。 提案されたコードの内容を読んで吟味したり、必要に応じてコードを修正しているので、単純に30%の効率化であったり、コードを書く時間の削減という ことでは無いと考えています。 導入効果のイメージとしては効率化・工数削減というより機械的にできる作業をAIが手伝ってくれることで、自分の頭を使う部分にフォーカスできるようになった(=能力を拡張できた)という方が個人的にはしっくりきます。 今まで公式ドキュメントを読んだり、サンプルコードをコピペしていた手間が省けて、より短時間でコードの形に落とし込めるようになりました。 それによって、そのコードでどんな価値を提供したかったんだっけ?何が嬉しいんだっけという部分によりフォーカスできるようになりました。
Copilot導入によるエンジニアメンバーの能力拡張や生産性向上効果をより定量的に計測していきたいです。 そのためにはGitHubから取得できる各種メトリクスや、それらを自動収集して可視化できるようなFindy Teams+のような便利なツールを活用することで実現していきます。 また、今後のソフトウェア開発領域における生成AIでは、個人・チーム・企業の独自の文化やノウハウを取り込んでチューニングされていくことでさらに業務活用が進むと考えています。 GitHub CopilotなどのAIペアプログラミングツールも今後は個人・チーム・企業のクセや好みに寄り添った提案をしてくれるよう個別にモデルをチューニングできる世界になってくるのではないかと私は予想しています。
KAGにおけるGitHub Copilotの活用状況と今後の展望について記載しました。 ざっくり3割くらいを生成AIにより提案されたコードを受け入れています。現状これは色々な捉え方の出来る数値だと認識しています。誰がどのように使うことで、どのような効果が出ているのかを各種指標より見極めていき、さらなる活用をしていきたいです。
また、KAGにはGitHub Enterpriseを活用したソフトウェア内製開発やGitHub Copilotの導入・活用のリアルな経験を通した確かな知見があります。 自社における開発内製化や生成AIを活用した開発能力や生産性向上を検討されていましたら、ぜひKAGでご支援させていただきますのでお気軽に問い合わせください。