はじめに
こんにちは、技術広報のnobu_msです。
ラクスでは2023年6月からGitHub Copilotを全開発組織に導入し、希望者は申請により全員利用可能となっています。GitHub Copilot導入から5カ月が経過し、利用状況や導入効果のアンケート調査を行いました。
本記事では、調査結果を踏まえて下記の内容をご紹介します。
- 全社導入前の課題とその対応
- 導入後の利用状況・効果測定
- 今後の活用に向けた課題と取り組み
より詳細な目次はこちらをご覧ください。
- はじめに
- GitHub Copilot導入の目的
- 全社導入前の課題とその対応
- 導入後の利用状況・効果測定
- GitHub Copilotは有効。「今後も使いたい」100%
- 一層の活用に向けた課題と取り組み
GitHub Copilot導入の目的
ラクスでは業務生産性向上を目的にGitHub Copilotを導入しました。 具体的な期待効果としては、
- コーディング時間短縮(効率化)
- 業務品質向上(コード品質、チャット等を援用したプログラムアイデアの創出)
- 学習・調査時間短縮
が挙げられます。
全社導入前の課題とその対応
すでに生成AI系サービスは社内でも大きな話題となっていましたが、実業務への効果的かつ安全な導入にあたっては二つの検討課題がありました。 ① セキュリティの担保と ② 費用対効果です。
① セキュリティの担保
具体的なセキュリティの課題については、下記の二つがありました。
当社の情報資産が学習に利用される可能性
生成AI系サービスによっては、情報資産が機械学習に利用される可能性があります。GitHub Copilotに関連する情報資産にはソースコード、クレデンシャル、顧客情報が考えられます。for Businessプランのプライバシーポリシー (2023/12/26参照)を確認すると、これらは学習に一切使用されないため、懸念はないことが分かりました。
他社のコードがサジェストされて著作権を侵害するのではないか?
こちらも、Organization単位で「Suggestion Matching Public Code」 (2023/12/26参照)をBlockedにすることで防止できます。GitHub上の公開情報とサジェストコードが一致した場合に、サジェストを行わない設定が可能となります。
主に上記のような観点をクリアし、安全性は担保できると判断しました。 全社展開にあたっては運用ルールの策定が必要でした。GitHub CopilotやChatGPTなどの生成AIサービスに関しては、情報セキュリティ担当部署と、セキュリティについて横断的なルール作りを行う開発管理課という組織があり、これらの組織とルール作りを行い安全性を確認の上、導入を進めました。
② 費用対効果
ラクスでは業務生産性に役立ち、快適にコードを書ける環境を整備してきました。これまでも効果検証の結果として費用対効果が得られると判断した開発ツールへは投資しており、今回も全社導入の前に事前の効果検証を行うことになりました。
テックリードの所属する4名の開発チームで、ある機能開発をパイロットプロジェクトとして、1週間程度の効果計測を行いました。具体的にはコードサジェストにより削減された作業を、リアルタイム集計する形で実施しました。
結果、同じ開発業務を行うのに12%時間削減、一人当たり約10時間/月の時間短縮になると試算されました。
これらのテックリードの調査結果を経営陣に報告し、セキュリティに関する運用ルールを早期に策定できたこと、費用対効果が期待されたことからGitHub Copilotの全社導入が6月から正式に始まりました。
導入後の利用状況・効果測定
全社で運用開始してから約5か月が経過し、ある程度使用実績が蓄積されてきたところで、社内のエンジニア63名に利用状況や、期待される効果が得られたかを調査しました。 (ただし7名はPdM等でコーディング業務を担当しておらず、GitHub Coplot使用は56名)
前提となる職種や利用エディタは下記の通りです。 当社バックエンドはJavaとPHPを用いて開発しているため、VSCodeと並んでIntelliJ IDEA、PhpStormも多くなっています。
コーディング時間短縮の効果
まず時間換算すると、71.4%のエンジニアが0.5時間以上/日の時間節約になったと回答しています。
なお時間削減効果が0.5時間未満/日のエンジニアは、業務に占めるコーディング比率が低い傾向があり恩恵の絶対量が小さかったようです。
92.9%のエンジニアがGitHub Copilotによって生産的になったと回答しています。同じ業務をこなすのに1.3倍以上生産的になったという回答も41.4%と、目立った体感が得られたようです。
業務品質向上効果
品質の高いコードが書けるようになったと回答したエンジニアは59.0%でした。
後述のように、生成されたコードに対する最終的な判断はエンジニアが行う場面も多いため、まだAIにより品質が高くなったとは言い切れないかもしれません。
サジェストによる繰り返し作業の効率化により業務品質向上が期待できますが、こちらの恩恵を感じたエンジニアは多く、83.9%が迅速にこなすことができるようになったと回答しています。
学習・調査効率化効果
66.1%のエンジニアがGitHub Copilotにより検索時間を短縮できたと回答しました。
開発時間短縮効果と比較するととびぬけて高い数値ではありませんが、学習・調査の効率化は後述の定性効果で多くのコメントが寄せられた項目でもあります。
今後の活用シーンの拡大が期待されます。
エンジニアの業務体験はどうなったか
51.8%のエンジニアが仕事に充実感を感じられるようになったと回答しています。
興味深いことに、「充実感を感じられるようになった」の回答と節約時間の間には強い相関はありませんでした。
結果的に節約できた時間は少なくても、「ボリュームのあるコードレビューが楽になる」「記述量の多いテストコード作成が楽になる」などのコメントもありました。
担当業務の質的な改善が充実感に影響している可能性はあります。
続いて、GitHub Copilot 利用によりフロー状態(作業に没頭し集中できる状態)に入りやすくなったと回答したのは39.3%でした。 全体の比率でみると高いとは言えませんが、コーディングが業務の60%以上を占める回答者については、76.9%がフロー状態に入りやすくなったと回答しています。 コーディング業務比率が高いエンジニアが多いほど、組織全体の体験改善のインパクトは大きくなると推察されます。
実務上の利用例
開発の現場ではより具体的な効果が実感されていました。社内でGitHub Copilotのメリットを感じられた具体的な例を紹介します。
もともとの導入の期待効果であった ① コーディング時間短縮(効率化)、② 業務品質向上(コード品質、チャット等を援用したプログラムアイデアの創出)、③ 学習・調査時間短縮に則してみると、
コーディング時間短縮
- 定型作業コードの自動補完
- 上流工程での画面サンプルの爆速作成
- 手順書、ドキュメント(markdown)、コミットコメントの生成
- 設定ファイルの作成補完(yml、Dockerfileなど)
業務品質向上
- コピペミス、タイプミスの減少
- コード規約に沿ったコード生成
- コードレビュー(人間によるレビュー前のチェックとしてfind probremを走らせる)
- テストケース作成
学習・調査効率化
- コードリーディングをしながらアーキテクチャの説明をさせる
- 新規関数生成時、前後の文脈を理解した処理内容のサジェスト
- レガシーなコード体系下における、モダン記法での自動生成
- 技術用語、言語使用の調査・検索(Googleでの検索ワードを考えなくてよい)
エンジニアの声
実際に使ってみたエンジニアからも、期待の大きさが伝わってきました。
- 「個人的な開発に使用するほど気に入っています。サジェストは怖いぐらい正確」
- 「まだまだ伸びしろを感じるツール。まだGitHub Copilotの機能追加はあると思うが、現状見えている氷山の一角でもかなりでかい」
- 「定型で単純な繰り返しコードの記述がすごく楽になった」
- 「コードを書いた後にサジェストするとダブルチェックになるだけでなく、勉強にもなる」
- 「タイミングで正しい文章が自動生成されたときはびっくりしました。コードの文脈を把握できていないと答えられないような内容だったので、自分の理解を確かめる目的でも利用できるかと思います」
時間短縮効果の概算
前述の時間短縮効果を概算してみます。 まず短縮された時間について、各回答の平均値(0~0.5の場合は0.25、0.5~1の場合は0.75)を使ってみます。56件の回答があるので回答割合で人数を導きます。これらを掛け合わせた合計値を出します。
0.25h×16人+0.75h×20人+1.5h×17人+2.5h×1人+4..5h×2名=56h
56h/56人とすると、「一人当たり1h/日の短縮効果」があったと計算できます。 当初の事前検証の結果と大きくは変わらない効果が得られたことになります。
GitHub Copilotは有効。「今後も使いたい」100%
ここまで時間短縮効果、業務品質向上効果、学習・調査効率化効果、エンジニアの業務体験という観点で定性・定量効果を見てきましたが、開発組織としても多くのメリットを実感しています。
今回調査に回答したエンジニア全員が今後もGitHub Copilotを使いたいと回答しており、今後の活用の拡大が期待されます。
一層の活用に向けた課題と取り組み
ここまではメリットばかりを書いてきましたが、思った通りに使いこなすにはまだ課題もあるようです。ここではその一部をご紹介します。
- 既存コードの文脈の影響を受け、最適なコードの質量でないこともあるので精査が必要
- 精度が高いがゆえに、自動出力されたギリギリ要件を満たさないコードを見抜くのが難しい。テストケースで網羅するか、経験が必要。
- なぜその実装をするのか、AIであるがゆえに曖昧なままで仕事ができてしまうため、育成の機会が減る。
- IDEのサジェストとの相性が悪い
(これらの所感は2023年11月時点の機能をベースにしています。今後の利活用を検討される方は、最新の機能アップデートで解決されている可能性もあるので是非確認してください。)
定型業務に対しては強みを発揮するGitHub Copilotですが、運用歴が長いプロダクトでレガシーなコード体系があるケース、前後の文脈があるケースや、複雑な要件を持つケースには注意が必要そうです。GitHub Copilotで削減された時間は、実装の目的・あるべき姿や要件を理解する、ある意味人間らしい業務にシフトすべきということなのかもしれません。
今回の調査で、すでに実装に関わるエンジニアの活用率は100%でした。今後の活用のためには、上記のような課題をカバーするナレッジを共有し、新しいアイデアを社内でどんどん出していくことが大事だと思います。そのための場作りもテックリードを中心に始まっています。ラクスでは複数の開発チームがあり、運用歴の異なるプロダクトがベスト・オブ・ブリード(ここでは各製品ごとに最適な設計や技術スタックを選定する開発戦略の意味)で開発されています。それぞれのチームで有効活用が図られ、GitHub Copilotに関する活用ナレッジを共有するためのチャットが立ち上がっており、議論や共有化がなされています。他にも生成AIを活用しているエンジニアたちがホットなニュースを語り合う社内ラジオも開催され、さらなる活用の機運も来年はさらに高まってくるのではないかと思います。
業務生産性向上のため、アイデアを出し合いながら積極的に新しいツールを活用していきたいですね。この記事をお読みいただいた方のご参考になりましたら幸いです。