はじめに
こんにちは、レバレジーズ株式会社テクノロジー戦略室室長の竹下義晃です。 エンジニアの生産性を高めよりよいサービスを提供するために、エンジニア全員にGitHub Copilotを導入しました。今回は導入過程でわかったGitHub Copilotを使いこなすための知見を赤裸々に公開していきたいと思います。
GitHub Copilot全エンジニア導入背景
会社の方針
レバレジーズでは主要サービスであるレバテックやレバウェル、CareerTicket、WeXpatsなどの人材サービスをはじめ、最近ではオンライン診療サービスのレバクリをリリースするなど国や業界に関わらず事業拡大を進め、理念である「顧客の創造を通じて、関係者全員の幸福を追求し、各個人の成長を促す」を追求しています。そのために、開発組織を強化し、より早くより良いサービスの実現を目指しています。
近年、GitHub Copilotを始め、OpenAI ChatGPTやGoogle Bardなど様々なGenerative AIが登場しており、AIを業務に取り入れることで、業務の効率化が様々な分野で進んでいくと考えられます。我々は現在パラダイムシフトの真っ只中にいると考えており、この新しい技術をいかに使いこなしていくかが今後の成功の鍵を握っていると考えています。そのため、まだ評価の固まっていない技術ではあるものの、社内でAIガイドラインを策定し、最大限AIを活用していきたいと考えています。
GitHub Copilotの選定
GitHub Copilotを選定したのは、Generative AIの中で現時点で最もエンジニアリングの効率化に効果が高いと考えたためです。 主な理由は以下の4点です。
- フローを維持できるため、業務効率を下げず、開発者体験の向上につながる
- (おそらく)コード生成AIとして最も性能が良い
- GitHubが出した調査結果も、良好な結果
- 個人でも使っているがとても便利
フローを維持できる
導入した結果業務効率の低下が起きてしまうと意味がありません。GitHub Copilotは各種IDEのプラグインが提供されており、弊社で利用しているVS CodeやIntteliJ、PHP Stormを始め主要なIDE、テキストエディタに対応しています。そのため、IDEの中だけで完結するため、エンジニアのフローを妨げません。Copilot不慣れな場合でも、普通に使うだけで強力な補完機能として利用開始できるため、業務効率を下げる可能性は低いです。
また、ChatGPTなどのWebサービス型のGenerative AIの場合は、ブラウザと言ったり来たりするためフローを崩してしまい、業務効率を低下させてしまう可能性があります。さらに、適切なタイミングで適切なプロンプトを記述して質問を投げるスキルも必要なため、ある程度のAIリテラシーが無いと効率が上がりきらない可能性もあります。
コード生成AIとして最も性能が良い
コード生成AIとしては、他にはAmazon CodeWhisperが有名です。性能比較はしていないのですが、こちらの記事だと日本語が怪しかったり、動きがもっさりだったりするようで、アルゴリズムもChatGPTで、学習データとしてもGitHubのデータをファーストパーティーとして使えるGitHub Copilotが最も性能が良いと判断しました。
GitHubが出した調査結果
データとしても、GitHubの調査結果が公開されており、そこでも開発効率が上がったとレポートされています。
個人でも使っている
GitHub Copilotが出た直後から個人で趣味の実装時に使っていました。体感値としてもGitHubの調査と乖離もなく、かなりコーディングの効率が上がった実感がありました。
導入過程
とはいえ、レポートが外部の情報しかなく、いきなり全エンジニアに展開するのは難しかったため、まずは一部のチームにだけ提供し効果測定を行いました。チーム単位でいくつかのチームに導入し、3週間ほど試用してもらった上で定性評価のためのアンケートの実施を行いました。その結果、開発効率が下がったという人はおらず、9割以上の人が開発効率が上がったと回答したため、全エンジニアへの導入に踏み切ることにしました。
アンケートから見えた開発効率を高める方法
分析手法
分析のために、試用してもらったチームメンバーへアンケートをとりました。アンケート項目は、効率化したかどうかより、高い効率化に成功した人がどのような使い方をしているか、またはどのような環境、状況で使用しているかを見つけることに焦点を当てて作成しました。
アンケートでは以下の項目を聞きました。
アンケート結果は、python+pandasを使用し数値化と、one-hot encoding(ダミー化)処理を行った後、Googleスプレッドシートで、平均値等の統計分析や、各アンケート項目同士の相関値マップを作成しました。(pandasではこんな感じの処理してます )
結果
統計値
Copilotの継続利用は評価1~5で、平均4.51でした。また、コーディング効率が上がったかどうかは、下がったと答えた人は0人、1,2割以上上がったと答えた人は全体の70%に達しました。
カラム間相関値マップ
赤枠で囲った列が、コーディング効率との相関を示しています。黄色く囲ったあたりが相関値が高く出ており
- 生成コードを、レビューはするが修正はせずに利用
- テストコードの作成での効率が上がった人
それぞれ、0.5、0.4程度の相関値になっています。
そのため、次のことが言えると考えています。
GitHub Copilotの生成コードをそのまま使っている人ほどコーディング効率が向上する テストコード生成に使った人がコーディング効率が向上する
フリーテキストからの考察
高い効率化ができたと感じている人のコメントだけを抜き出し、共通項を探しました。そうしたところ、コメントを書いてコードを生成、または、コードからコメントを生成している人が多くいました。
結論
結果を箇条書きにすると
- 9割の人が導入に満足している
- GitHub Copilot導入により開発効率は下がった人はいない
- 7割以上は体感できるぐらいコーディング効率が高まった
- GitHub Copilotの生成コードをそのまま使えている人ほどコーディング効率が向上する
- テストコード生成に使った人がよりコーディング効率が向上している
- 効率が大幅に上がった人は、コメントを書いてコードを生成、または、コードからコメントを生成に利用している
現時点でGitHub Copilotを上手く使うコツとしては、テストコードの生成や、コメントからのコード生成、コードからのコメント生成などを中心に、人が修正しなくても良いコードを上手くGitHub Copilotに生成させられれば、高いコーディング効率の向上を見込めるということが言えるかと思います。
余談
GitHubのActivityはまだ分析できていない
GitHubのActivityも収集し分析も進めていますが、まだ定量的な結果までは出せていません。今後も継続してデータ収集していきたいと考えています。一応、「Copilotを使うチームの出すPullRequest数が、Copilotを使っていないチームより多くなった」ことに有意差は出ていました。定量的な結果とは言えず、データの正確性も検証しきれていないので、参考までにお願いします。
費用対効果(クソ雑概算)
GitHub Copilot for Businessは月額$18で年間$216、執筆時点の為替1ドル142.46円では日本円にして30771.36円です。
一方、日本のITエンジニアの平均年収は442万円となるため、その平均から算出される年間3万円分の効率化達成には、 3 / 442 = 0.006 = 0.6%となり、0.6%以上効率が上がるならGitHub Copilotを使うほうがお得となります。定量評価は難しいものの、0.6%以上の作業効率は上がると確信しています。
よりGitHub Copilotを使いこなすためのネクストアクション
全エンジニアでのノウハウの共有の取り組み
個々で見つけたコツや使い方を共有し、昇華していければと考えいくつかの施策も継続予定です。
常設アンケートと、テクノロジー戦略室による使い方のコツのサマリー共有
常にGitHub Copilotを上手く使うコツを収集するアンケートを用意し、そこに投稿された内容を毎月サマリーして共有していく予定です。
ノウハウ共有LTの開催
また、ノウハウ共有の強化としてLT大会も開催を考えています。ライブコーディングなどを通じて、文章だけでは伝わりづらい使い方も共有していければと考えています。
追加分析
全エンジニア拡大後に再度アンケート実施
全エンジニア展開後に再度アンケートは実施予定です。
GitHubでのActivityの分析の継続
定量的な分析も引き続き行っていきたいと考えています。アンケートからだけでは分析できにくい、言語やドメイン領域など様々な観点からの分析や、アンケート結果の裏付けを行っていければと考えています。
おわりに
GitHub Copilotの全エンジニア導入により、ユーザーにより早く、より良いサービスを提供できるようになるだけでなく、エンジニアにとっても、開発者体験の向上によってより楽しくサービス開発してもらえると良いなぁと思っています。
今回はGitHub Copilotの採用とはなりましたが、他にも様々なAIサービスが登場しています。また、社内現在のAIを取り巻く環境はどんどん進化を続けており、もっと良いサービスも出てくるかもしれません。なので、今後もトレンドを追いつつ(追い抜きたい)、どのようにAIを活用すればよいかを探求し続けたいと思っています。
We Are Hiring!
レバレジーズ株式会社ではエンジニアを募集中です。AIを活用しながらの開発や、AIの活用方法を考えることに興味ある方は、是非こちらのページからご応募ください。