少しご無沙汰となりました・・・㉔です。
皆さんはお盆はいかがお過ごしされましたでしょうか。

さて、今回はGitHub Copilotについてのお話です。
身も蓋もありませんが、この記事の筆者はAIに関する専門家でもなんでもありません。今回の記事でAI(主に大規模言語モデル(LLM))に関する話題に触れますが、あくまで一人のフロントエンドエンジニアからみた最近のAIとシステム開発に関する所感を語ったものであることをご留意下さい。また、記事の中でLLMに関することをAIと記載することがあるかもしれませんが、そこは適宜読み替えていただければと思います。

LLMの夜明け

2022年11月、OpenAIからChatGPTなるチャットボットがリリースされました。界隈での盛り上がりは凄まじく、私もChatGPTやBingに早期アクセスを申請して使ってみたときはシンギュラリティ!!と思わず叫びたくなりました。

AI戦国時代

それからというものあれよあれよとLLMを活用した新しいサービスが生み出されました。弊社でも使用しているNotionやみんな大好きMDN Web Docsにも気づけばAIによるサポート機能が追加されています。界隈を眺めているうちに、AIに関してAzOneとしてどのように向き合うのか真剣に考える必要があるという危機感を抱くようになりました。

AIツールの導入

AzOneとしては当面の間AIを組み込んだプロダクトの開発ではなく、ツールの利用でAIを活用する路線となりました。利用ツールはGitHub Copilotです。現在までに数名のエンジニアに協力してもらい、生産性の向上や使用感などをアンケートを用いて定性的に評価しています。

GitHub CopilotはChatGPTより古参です

GitHub Copilotは2021年6月末に登場しており、実は今話題のChatGPTより1年以上早くリリースされています。リリースしてから間もない同年10月にNeoVim用のプラグインをリリースしたときは、本当に優秀なエンジニアはやはりVimを使っているのか…という気持ちになったことを覚えています。

GitHub Copilotによる生産性の向上

公式による調査報告

AzOneでの評価を紹介するのも良いですが、そもそもGitHubが公式にGitHub Copilotに関する生産性と満足度に関する調査報告(Research: quantifying GitHub Copilot’s impact on developer productivity and happiness)を2022年9月に公開しているのでそちらを紹介します。

生産性・満足度・効率性の評価

この記事は日本語訳のものも公開されているので是非最後まで読んで頂きたいのですが、この調査は[SPACEフレームワーク](<https://queue.acm.org/detail.cfm?id=3454124>)という開発者の生産性を多面的に評価するための評価フレームワークに基づいて実施されています。その中で生産性満足度効率性に関して高い割合のユーザーが高い評価をつけていることがわかります。

コーディング課題の正解率・実装速度

以下のような内容の対照実験?による結果も報告されています。

正答率に大きな差はありませんでしたが、GitHub Copilotを使用した開発者は、GitHub Copilotを使用しなかった開発者よりも55%速くタスクを完了したことを統計的に明らかにしています。

 

結局GitHub Copilotどうなの?

この記事では当初AzOne内で実施したGitHub Copilotによる定性評価について記載する予定でした。しかしながらGitHub公式の調査報告や、後で紹介するZOZOでの比較的規模の大きい調査などがすでに実施されており、残念ながらAzOne内での調査はこれらの調査以上の内容のものではありません。また、すでに紹介した記事の内容から明らかなように、GitHub Copilotの有用性は高いと考えてよいでしょう。また、ZOZOでの費用対効果に関する報告でも現状の価格では費用対効果も十分と考えられます。

個人的な気づき

GitHub Copilotの有用性に関する各企業の技術ブログなどを色々拝見しましたが、その中であまり触れられていなかったものの、個人的に生産性に大きく影響する要素があると考えているので紹介します。

業務PJでチームに貢献が難しいレベルのメンバー(新人等)をアサインするケースは少なくないと思います。その場合、メンバーの教育コストがPJにとってはリスクになります。特に開発の主要メンバーの稼働時間がペアプロやレビューなどに大きく削られるケースは少なくないでしょう。

ここでGitHub Copilotがペアプロを肩代わりできたと考えた場合、開発の主要メンバーの稼働時間を確保出来ることになります。これは個人あたりの生産性の向上以上にチーム全体の開発速度を向上させる大きな要因になりえると個人的には考えています。

GitHub Copilotの懸念点

GitHub Copilotを使うにあたって未だ議論になっている分野があります。それはライセンス侵害の問題です。実際にGitHubに投稿した著作権保護されたソースコードをCopilotのトレーニングデータとして使用したとしてGitHub、Microsoft、OpenAIへ訴訟が起こっています。私の調べた限りではCopilotの支援で実装されたシステムに対する訴訟はまだ無いと思っています。(実際これを証明するのはかなり難しい気がする)

私はライセンスに関してエンジニアとして必要最低限程度の知識しかないため、ライセンス侵害に関して詳しく語れません。先に触れたZOZOでのGitHub Copilotの調査(GitHub Copilotの全社導入とその効果)ではライセンス侵害に関する内容が触れられているので参照してみて下さい。また、この記事ではCopilotの有用性に関して大きな規模の調査を実施されているので是非読んでみて下さい。

最後に

個人的に定性的な評価をあれこれ書くのがあまり好きではないので(客観性に乏しいものを長々と書きたくない)あまりAzOne内での評価を書くことができなくて申し訳ないです。ただ、色々な企業での導入事例や調査報告を見る限り、費用対効果の側面ではGitHub Copilotは導入する価値が高いツールであると個人的には思っています。

AIとエンジニアがこれからの10年、いや5年でどういう関係になっていくのか楽しみでなりません。