Money Forward Developers Blog

株式会社マネーフォワード公式開発者向けブログです。技術や開発手法、イベント登壇などを発信します。サービスに関するご質問は、各サービス窓口までご連絡ください。

20230215130734

開発生産性が上がるって分かったので GitHub Copilot Business を積極活用しています

エンジニアリング戦略室の高井といいます。

みなさん、GitHub Copilot は利用されていますか? GitHub Copilot は GitHub と OpenAI が共同で開発した生成 AI を活用した開発支援ツールです。コードの自動補完、コード生成、ドキュメントの提案など、多岐にわたる機能を提供し、開発者の生産性を向上させることを目的としています。

マネーフォワードでは、昨年度にトライアルとして Copilot の利用を開始しました。本記事では、Copilot を利用して半年以上経過して、その利用がどのような効果をもたらしたかをレポートします。なお、ここで GitHub Copilot として言及されている Copilot のプランは GitHub Copilot Business です。

Copilot 利用状況・分析対象

なお、分析にはエンジニアリング組織のパフォーマンスを可視化するツールである Findy Team+ を利用しています。 Findy Team+ は主に GitHub 上でのアクティビティを収集し、測定するツールです。

今回は Findy Team+ のライセンスの都合もあり、GitHub Copilot 利用者のうち Findy Team+ のライセンス対象となっている集団が分析の対象となっています。また、比較のために GitHub Copilot 非利用者かつ Findy Team+ のライセンス対象となっている集団も抽出しました。

分析

全体アクティビティ

全体アクティビティは、一人あたりの開発における主要な活動(イシューやプルリクエストの作成、マージ済みプルリクエスト数、コミット数、レビュー数)を日別に積み上げグラフとしてプロットしたものです。左が Copilot 非利用者、右が Copilot 利用者です。

Copilot の利用を開始した7月前後から明らかに活動量が増えていることが確認できます。対照群である Copilot 非利用グループと比較すると、下記のことが明らかです。

  • Copilot 利用開始前には Copilot 非利用者と Copilot 利用者に大きな差はみられない
  • Copilot 利用開始後、 Copilot 利用者の活動量は増えている
  • Copilot 非利用の活動量は、季節要因を除いて大きな変化はみられない

以上から、 Copilot の利用によって開発における主要な活動が活発になる ことが分かります。

主要指標

主要指標に関する非 Copilot 利用者と Copilot 利用者の比較は下記の通りです。

指標 非 Copilot 利用者群 Copilot 利用者群
プルリクエスト作成数 135.8 152.2
オープンからマージまでの平均時間(h) 40.2 45.0
コミットからオープンまでの平均時間(h) 75.6 68.8
オープンからレビューまでの平均時間(h) 15.4 16.7
レビューからアプルーブまでの平均時間(h) 13.1 14.8

Copilot 利用者は非利用者に対して約12%プルリクエスト作成数が多いことが分かりました。また、「コミットからオープンまでの平均時間」、つまり機能開発を開始してからそれを完了させるまでの時間も約7時間ほど短くなっています。

一方、その他の平均時間は長くなっています。これらの活動は、他のエンジニアからのレビューが関わる活動です。あくまでも推測になりますが、プルリクエスト数が増えることで他エンジニアが行なわなければならないレビュー数が増え、一つあたりの待ち時間が増えたのではないかと考えることができます。

このことから、 Copilot を利用することで機能開発にかかる時間が短くなり、より多くの機能を開発できるようになる ということが推測できます。

プルリクエストに関する指標

次にプルリクエスト数に関する指標を見ていきます。

指標 非 Copilot 利用者群 Copilot 利用者群
マージ済みプルリクエスト数 123.8 138.8
平均コメント数 2.9 2.9
レビューされずにマージされた割合 20.0 19.9
平均変更行数 697.3 846.9
平均変更ファイル数 13.6 14

プルリクエスト数が増えているので、マージ済みプルリクエスト数も増加しています。また、平均変更行数も増えています。平均変更行数については、一般に少ない方が望ましいとされているのですが、開発量としては増加していることが示唆されます。その他の指標に大きな違いはありません。

レビューに関する指標

レビューに関する指標は以下の通りです。

指標 非 Copilot 利用者 Copilot 利用者
他者へのレビュー数 334.3 391.4
自分がレビューしたプルリク数 202.9 200.2
プルリクエストに対する自分のコメント数 380.1 415.5
自分が最初のレビューをするまでの平均時間 43.0 46.9

Copilot 利用者は非利用者に対して、他者へのレビュー数が約17%、プルリクエストに対する自分のコメント数が約9.3%多いという結果となりました。 Copilot 利用者は非利用者に比べてレビューに関する活動を活発に行なう ことが示唆されます。利用している Copilot にはレビューに関する機能はないため、これがどのような理由に基づくものなのか、はっきりとは分かりません。

Four Keys に関する指標

最後に DevOps や Four Keys に関する指標を取り上げます。

指標 非 Copilot 利用者群 Copilot 利用者群
デプロイ頻度(件) 75.0 75.4
変更のリードタイム(h) 291.2 203.2

Copilot 利用者と非利用者の群を比較したときに、デプロイ頻度に大きな変化はなく、変更のリードタイムは大幅に短くなっています。

まず、デプロイ頻度が変化しないことについては、それがプロダクトのワークフローやプロセスによって決定されるものであり、個人の活動量が反映されにくい数値であるからだと解釈できそうです。

変更のリードタイムは、Copilot 非利用者に対して Copilot 利用者は約69.7%となっており、 Copilot を利用することで、より短いサイクルで機能をリリースできるようになっていることが分かります。これは主要指標で、Copilot 利用によって機能開発にかかる時間が短くなるだろうという推測とも一致します。

まとめ

Copilot 利用者群と Copilot 非利用者群の開発に関連する指標を比較しました。各種の指標は、 Copilot 利用によって、機能開発にかかる時間が短くなり、より多くの機能を開発できるようになることを強く示唆しています。 Copilot 利用によって、少なくとも約10%以上の開発生産性向上が見込めます。

一方、 Copilot を利用するだけではプロダクトのワークフローやプロセスに関する指標は、大きく改善しませんでした。チーム全員が Copilot を利用すれば変化もあるかもしれませんが、あくまでも Copilot は開発者個人を支援するツールであり、チーム全体の生産性向上には別の施策が必要 になると考えています。

当社ではこの結果をもとに、 GitHub Copilot の積極的な活用を呼びかけ、展開しています。 GitHub Copilot がどのような効果をもたらすのか定量的にとらえることができたので、導入の費用対効果についてもデータにもとづいて議論をすることができました。2月末にリリースされた GitHub Copilot Enterprise についても同様の検証を進めていく予定です。


ここまでお読みいただきありがとうございました。マネーフォワードでは、このような開発生産性や開発者体験に関する改善に責任を持つ Developer Experience Engineer に興味があるエンジニアの方を募集しています。 Team Topologies でいうところの enabling team として、各プロダクトチームの支援をするポジションを想定しています。

いきなり応募するのも気が引けるという方のために、カジュアル面談もご用意してございます。 GitHub Copilot の説明について詳細を聞いてみたいという方も、どうぞこちらからお気軽にお問い合わせください。どうぞよろしくお願いします。