GitHub Copilotをエンジニア全員に導入して開発生産性を継続的に上げていく
こんにちは。Magic Momentの髙橋です。
ここのところ世間では生成系AIが注目されていますが、エンジニアが一番注目しているのはその中でもコードを自動生成してくれるAIではないでしょうか?
その中でもよく名前が上がるのが、GitHub Copilotだと思います。
Magic Momentではエンジニアの生産性をあげるべく様々な施策を実行してきましたが、今回GitHub Copilotを会社として公式に導入していくことになりました!
導入してまだ1ヶ月程度ではありますが、どのように運用しているのか?開発にどのように役立っているのか?をご紹介したいと思います。
導入した理由は、エンジニアの開発生産性を上げるため
GitHub Copilotは、エンジニアの書こうとしているコードを補完してくれる生成系AIツールです。
詳しい説明は他記事や公式ドキュメントに譲りますが、これを活用することでエンジニアがコードを書く量をぐっと減らすことができますし、考える時間や参考とするコードを検索する手間も省けます。
つまり、エンジニアの開発生産性を上げることができます!
しかし、使用する際のリスクも考えておく必要があります。生成系AIの使用ではコードの一部をインプットする必要がありそれがセキュリティリスクといえます。
本来は開発生産性を上げるために使用するものなのに、セキュリティリスクを気にするがゆえに聞きたい質問ができなかったり、気を使って使うとなればコードへの集中力が削がれてしまい、本当に必要な生産性向上が達成できません。
そこでMagic MomentではGitHub for Businessを使用しPublic Codeの提案も無効にしています。これらによってセキュリティリスクを緩和し、エンジニアには気持ちよく使ってもらえるようにしています。
GitHub Copilot使用時のセキュリティリスクについては、以下の記事でよくまとまっていますので参考にしてみてください。
また、2023/8現在においては、GitHub for Business を使用することで GitHub Copilot Chat のbeta版を使用できますので、より生産性を高めやすいのです。今後もbeta版で様々なCopilot系のツールは出てくると思うので積極的に使用して、貪欲に生産性を高めていきたいですね。
生産性を上げ続けるためのノウハウを磨き続ける
GitHub Copilotは強力なツールですが、ただ導入すれば生産性が上がるというものではありません。ChatGPTなどと同じように、使い方によって生産性がどれくらい上げることができるかは変わってきます。
そこで、Magic Momentでは月に1回どんな使い方をしているのかアンケートをとることにしました。今回はその回答の一部をお見せして行きたいと思います。
GitHub Copilot
まずは、Copilotで生産性がどれくらい上がったのか?という質問についてです。
Magic Momentでは特にエディタに指定は無く、現在Visual Studio CodeとGolandが二大エディタとなっています。今回の調査ではVisual Studio Codeを使っている方のほとんどが生産性が上がっていると回答しており、それが72%という数字の正体です。(Golandを使う方はAI Assistantを使っているなどCopilotを使用していないケースが多かった)
続いて、どのような使い方で生産性が上がっているのかを質問したところ、以下のような回答がありました。
- 多くの箇所に似た修正を入れる場合に一度書いた内容をふまえてサジェストしてくれる
- ロジックがある程度決まっている場合に自動で候補を出してくれる
- シンプルな関数はコメントをしっかり書くと提案してくれたものがそのまま使える
- 新たなメソッドを定義する時に叩き台を作ってくれる
- 単体テスト開発時に、境界値やmax/minをパッと出してくれる
今回の回答を見るに、GitHub Copilotは単純または繰り返しによる法則性が見えるようなコードの補完に対しては非常に強力であるということなのだと思われます。
使い方としてはコードを書きながらの補完やコメントによってコード生成を促すなど、複数ある中でどれが一番というわけではなく、補完してほしいものによって使い分けをするとよいのかもしれません。
他にも「知らないメソッドを補完してくれると知識が増える」や「コードの解説が便利」といった回答もあり、開発言語のスキルアップにも貢献している面がありそうです。
GitHub Copilot Chat
次にCopilot Chatについても、どのような使い方をしているか質問しており、以下のような回答がありました。
- 検索しづらい特殊記号などの、プログラミング上の意味を聞く
- 繁雑なコードの説明をしてもらう
- 良い変数名・関数名の提案
これらからすると、Copilot Chatでは今のところ既存コードや言語そのものの理解を促進するために使用すると生産性が高まるというのが実感としては多そうです。
中には「ChatGPTを使わなくなった」という意見もあり、それくらい強力なツールであるということが伺えます。今はコード理解のためだけに使っているようですが、更に他の使い方を模索して、コードの生成方面で活用できるようになるとよいのかもしれません。
このように全員の使い方を分析してノウハウを集約すれば、まだまだいい使い方があるのではないか?というアイディアがどんどん出てきそうです。今後も全員でもっと生産性を高くしていくことができるようにアンケート集計とフィードバックを繰り返して行きたいと思います。
導入効果は「クリエイティブな開発集中時間の確保」
上述した意見をまとめると「コードが理解しやすくなった」「単純作業がなくなった」というものが多いものと思います。
本来エンジニアが時間をかけるべきなのは、無駄のないロジックで機能的な仕様を満たしたメンテナンス性の高いコードはどんなものか?を考えることだと思います。
そのために必要な調査や既存コードを理解する時間が減り、単純作業をなくしてくれるというのはエンジニアがそういった時間を確保することを強力に助けてくれるものであるとわかります。
これから
今回はGitHub Copilotの導入事例として、具体的なアンケート回答をお見せしながらご紹介しました。
導入してまだ1ヶ月ですが、すでに生産性向上の兆しが見えているのではないかと思います。今後も運用の中で新たなノウハウを蓄積して生産性向上を目指します!
また、GitHub Copiltについては、今後複数のサービスもまだ出てくる予定があるようなので、それらも含め新しいツールの導入やノウハウの蓄積などの施策を進めていきたいと思います!
最後に
弊社Magic Momentでは、フロントエンド・バックエンドにかかわらず全方位的にエンジニアを募集中です!Magic Momentに少しでも興味を持っていただけたら是非エントリーください!
8/30にはFindy様主催のイベントにMagic Momentから石田さんが登壇されます!
よろしければぜひご視聴ください!
さらに、こちらのイベントも8/29開催予定です!こちらはオンラインイベントです。Magic Momentの開発がどんなものか興味を持っていただいた方は是非ご参加ください!
Discussion