GitHub Copilot を導入した経緯とメリット


こんにちは、森田です。
Gaji-Labo では GitHub Copilot をエンジニア全員に導入しました。
もちろん使う使わないは個人の自由ですが、誰でも使える権利があります。

今回はそんな GitHub Copilot をエンジニア全員に導入した経緯やメリットなどについて書きます。

GitHub Copilotとは

GitHub Copilot は AI ペア プログラマーサービスです。
コメントやオートコンプリートで AI がコードを予測し補完してくれます。
ドキュメントにはこのように書かれています。

GitHub Copilot では、コーディング時にオートコンプリート スタイルの候補を提示する AI ペア プログラマーです。 使用するコードを書き始めるか、そのコードに何をさせたいかを自然言語のコメントで記述することで、GitHub Copilot から候補を取り入れることができます。 GitHub Copilot は、編集中のファイルや関連ファイルのコンテキストを分析し、テキスト エディター内から候補の提示を行います。 GitHub Copilot は、GitHub、OpenAI、Microsoft によって開発された生成 AI モデルを利用しています。

GitHub Copilot について

また、後述しますが、ChatGPT のように会話ベースでの質問や、コードの整形なども可能となっています。

導入について

導入を決めた理由として第一に挙げられるのが、生産性向上です。
当時の GitHub Copilot のサイトには30%コーディングの速度向上以上が見込めると書いてありました。

本当にそうならそれだけでも導入するメリットはありそうです。

しかし、ただ手放しで導入する訳にもいかず、いくつかの課題はありました。

課題

セキュリティ

まずセキュリティが課題となりました。
書いたコードを学習されないか?補完されるコードがオープンではないコードではないか?

これらに関しては、学習されるかは設定で拒否することができますし、後述するプランで一括で拒否することが可能であることがわかりました。
保管されるコードもそのまま使われるわけではなく、設定でブロックできることがわかりました。

学習への懸念

検討時の GitHub Copilot はエディタでコードをサジェストだけをするものでした。
これですと例えば新人が意味もわからずコードが保管されて完成されてしまい、そのコードに対する学習などを何もできないのでは?という学習面での懸念がありました。

しかし、そのような人間は検索したコードをそのまま使う可能性もありますし、GitHub Copilot で起こる影響は低いと考えました。

また、次節の GitHub Copilot X が発表されたこともあり、学習への懸念もクリアできそうな可能性が高まりました。

GitHub Copilot or ChatGPT?

コード上にサジェストする GitHub Copilot か?そもそも質問形式で聞くことができる ChatGPT か?

ChatGPT の方が解説なども可能なので学習するには向いているのではないかとも考えました。

ちょうどそのタイミングで GitHub Copilot X の発表があり、 GitHub Copilot でも会話ベースでのコードの質問などでできることがわかり、GitHub Copilot にする決定打となりました。

GitHub Copilot X
GitHub Copilot X – YouTube

現在は GitHub Copilot Chat が全ユーザーで使えるようになり、エディタ上で ChatGPT ライクに会話ベースでも使うことができとても便利に使えています。

試用期間

自分含め、エンジニア数名に GitHub Copilot を導入してもらい使用感を試してもらいました。

まず、自分が使った感触ですが、正直驚きました。
コード補完も素晴らしいのですが、重複したコードなども即時に学習し補完されるので、新規コードだけではなく既存コードも素早く書くことができ、生産性向上を実感することができました。

他の試用してくれたメンバーも生産性向上を実感していました。

多少トレードオフはあるかもしれませんが、生産性向上へのメリットが大きいとの結論に至りました。

エンジニア全員に導入へ

試用期間などを経て、課題もある程度クリアできると実感できたので、晴れてエンジニア全員に導入することになりました。

契約プラン

GitHub Copilot for Business を Organization を契約しています。
会社での契約ですので、基本このプラン一択なのですが、このプランではOrganization単位でメンバー全員の GitHub Copilot 設定が統一できるのでより安全に使うことができます。

Organization 設定

GitHub Copilot の Organization 設定画面

Organization の設定画面ではメンバー管理などのほかに、サジェストする候補を公開コードを同じにするか統一した設定ができます。基本ここは `Blocked` でいいと考えます。

また、GitHub Copilot Chat の有効・無効を選べました。これは先日全ユーザーに解禁されてから増えたようです。

個人設定

GitHub Copilot の個人設定画面

個人アカウントの設定画面です。
サジェストする候補を公開コードを同じにするか(Suggestions matching public code)の設定が見れますが、変更することはできません。

また、個人プランを契約していると、自分のコードを学習させるか(Allow GitHub to use my code snippets for product improvements)という設定があるのですが、Business プランではそもそも選択肢がありません。

プラン契約・メンバー登録が済めば、あとは VSCode などエディターに GitHub Copilot 拡張をインストールして、アカウントを紐付ければ利用することができます。

まとめ

全エンジニアに導入した GitHub Copilot。
エンジニアメンバーは皆、生産性向上を感じて概ね便利に使ってくれているみたいです。
技術トピックを共有する会「テックシェア」で便利な使い方を共有してさらなる生産性向上を目指しています。

次回は GitHub Copilot の便利な小ネタを紹介する予定です。

弊社では新メンバーもすぐに利用ができます。
興味があるかたは下記リンクより是非カジュアル面談をしましょう!

Gaji-Laboでは、 Next.js 経験が豊富なフロントエンドエンジニアを募集しています

弊社では Next.js の知見で事業作りに貢献したいフロントエンドエンジニアを募集しています。大きな制作会社や事業会社とはひと味もふた味も違う Gaji-Labo を味わいに来ませんか?

Next.js の設計・実装を得意とするフロントエンドエンジニア募集要項

もちろん、一緒にお仕事をしてくださるパートナーさんも随時募集中です。まずはお気軽に声をかけてください。お仕事お問い合わせや採用への応募、共に大歓迎です!

求人応募してみる!


投稿者 Morita Sou

フロントエンドグループチームマネージャー。
適切な技術提案やプロジェクトを円滑に進めるコミュニケーションを心掛けています。
CMS構築や開発環境の構築・最適化などを得意としています。チームビルティングと採用と開発環境を快適にすることにいつも燃えています。