【中間報告】GitHub Copilotの利用実態
ビジ開でのGitHub Copilot導入して一旦評価してみた(約1か月間)
ビジ開でGitHubCopilotを試験導入して 約1か月 利用者たちのアンケートから見えてきたことに対し、今後どうすべきか検討します。
個別アンケート結果
Q1. GitHub Copilotをどのくらいの頻度で利用していますか?:高い利用頻度と肯定的な評価
このグラフは、GitHub Copilot の利用頻度を示しています。最も多い回答は 「ほぼコードやドキュメント作成時は欠かさず使う」 で、次いで「毎日数時間」となっています。
ここから、日常的な開発作業に深く組み込まれている ことが伺えます。
ただし、「ほぼ使っていない」という回答もあり、これに対する理由としては、以下となりました。
「慣れてない」人には使い方を共有し、「精度が悪い」と回答した人には、ヒアリングして具体的な問題点を把握し、改善策を検討する必要があります。
- まだ慣れていないから
- 使い方がわからない, まだ慣れていないから
- 私はそもそもここ数週間はコードを書く作業がそこまでありませんでした...
- 思っていたものと違かった, 精度がわるい
その他コメントについて
「使い方の共有」や「コードレビューにも使ってみよう」、という前向きな意見と、使てみて弱点がある(ドキュメントが弱い、ユーザビリティ向上)ことも挙げられています。
内部の効率化のためにも、メンバーの使い方の共有をしていく場を設けることが重要かと思います。
- 補完してほしい場面と補完がいらない場面とあるので、簡単に切り替えられると良い
- コードレビューを一度任せてみようかと考えています
- 利用方法のノウハウは共有すると良いと思いました。また逆に必ずこういう使い方してねというコーティング規約的に入れるのも良いと思います。
- ドキュメントはあまり任せられない
- 全体的に、GitHub Copilotの利用頻度は高く、すでに日常的な開発作業に組み込まれている。
- 「ほぼ使っていない」という層には、利用方法の共有等を行い、慣れてもらう必要がある。
Q1.1 GitHub Copilot が提案するコードの品質は高かったですか?
Q2. コード補完・生成の精度についてのアンケート結果(積み上げグラフ)
以下は、コード補完・生成についての利用者の評価結果になります。
Q2.1.コードの品質は高かったか?
「まあそう思う」が多いことから 品質がすこぶる高いというよりは、ある程度の品質と割り切って使っているように推測されます。
無償のモデル GPT-4.1
であることもあるので、今後制限はあるが、プレミアムモデル(有償モデル)も開放していくことで、品質向上が期待できるかもしれません。
※制限をかけた後、公開していきます。プレミアムモデルの特性はこちらを参照してください。
Q2.2.開発効率化に役立っているか?
「非常にそう思う」「まあそう思う」が多く、開発効率の向上に寄与していることが分かります。 特に「非常にそう思う」が6件と多く、今後も使っていくことで、チームの開発効率が向上すると見込めます。
Q2.3.タイポや構文エラーの削減に役立っているか?
こちらも「非常にそう思う」「まあそう思う」が多く、タイポや構文エラーの削減に寄与していることが分かります。 ただし、「あまりそう思わない」が1件あるため、一部のユーザにはまだ改善の余地があることも示唆されています。
こちらについては、ユーザの具体的なフィードバックを分析してみます。
具体的な評価のフィードバック
2.4 どのような場面でコード補完・生成機能が特に役立ちましたか?(例:定型的なコード記述、テストコード生成、新しいライブラリの利用時など)
コード補完については、一から作成を依頼したたき台にしたり、一部だけ依頼したり、ロジックから自動でテストを作成したり、さまざまな用途で利用されています。 また、既存コードを、通常の置換ではできない(?)リファクタリングする際にも利用されています。
- ■ コード補完系
- パターン化したコードを書くときに、パターンに沿って作成してくれる。
- コード全体で1つ機能を追加する際にも要求したものが出力されて時短になる。
- テスト生成、テストデータ生成、複雑なロジックの生成
- for文などを書こうとすると自動的に意図したとおりの処理を書いてくれたとき。
- 繰り返し部分と、何も知らない分野を書く時のたたき台になる
JSON.stringfy()
など、括弧で囲むときにマウスやカーソルを移動しなくても補完してくれた。2回目からはJSON.stringfy()
も補完してくれた。- コーディング全般
- コードやコメントの補完の精度が高いと感じました。
- ■ リファクタリング系
- リファクタリング (関連する別のパラメータ修正や統一作業)
- 同じ修正をファイル全体にかけたい時