このガイドは、エンジニアリング システムの改善を推進するための戦略とメトリックを推奨する GitHub の「Engineering System Success Playbook (エンジニアリング システム サクセス プレイブック)」(ESSP) からヒントを得ています。
Copilot のロールアウトを開始する場合は、目標を定義し、それに応じてロールアウトを計画し、スタッフに目標を明確に伝えることをお勧めします。 「GitHub Copilot を使って会社のエンジニアリング目標を達成する」をご覧ください。
1.成功への障壁を特定する
ESSP が推奨する最初の手順は、会社の改善を妨げている障害を明確に理解することです。 現在のベースライン、目的とする将来の状態、進歩を妨げる障壁を理解することで、的を絞った効果的な変更を行うことができます。
Teams では、レビュー サイクルが長引いために pull request のマージが遅れることがよくあります。 多くの場合、このような遅延の原因は次のことです。
- 理解するのが難しい複雑なコード変更
- レビューを困難にする一貫性のないコードの書式設定
- 変更に関して提供されるコンテキストの一般的な欠如
- レビューを遅くしたりレビューへの対処を難しくしたりする社会的要因
レビュー担当者は、運用時の問題につながる可能性がある小さなエラーを簡単に見逃す可能性もあります。
そのために、開発プロセスでボトルネックが発生し、機能の全体的なデリバリーが遅れ、品質が低下します。
2.オプションを評価する
次の手順は、手順 1 で特定した障壁に対処するための解決策を評価し、同意することです。 このガイドでは、GitHub Copilot で特定した目標に与える影響に焦点を当てます。 新しいツールの導入を成功させるには、カルチャやプロセスの変更も必要であることに留意してください。
パイロット グループで新しいツールとプロセスの試験を実施し、フィードバックを収集して成功を測定します。 試用版で使うトレーニング リソースとメトリックについては、「3. 変更を実装する」と「監視するメトリック」セクションを参照してください。
Copilot の活用方法
GitHub Copilot には、pull request のレビュー プロセスを高速化し、コードの品質を向上させ、コラボレーションを改善し、最終的にマージ時間を短縮するように設計された一連の機能が用意されています。
Copilot の機能を活用すると、チームはワークフローを効率化し、摩擦を減らし、一貫性がある高品質のコードを実現できます。
完全で役に立つ PR の概要を生成する
Copilot を使うと、明確で簡潔な PR の概要を自動的に生成できるため、開発者の時間が節約され、レビュー担当者は PR の目的と変更を簡単に理解できます。 これにより、誤解の可能性が減り、レビュー プロセスの速度が上がります。
レビュー プロセスの間にレビュー担当者を支援する
GitHub Copilot は、強力な PR レビュー コンパニオンとして使用できます。
- Copilot は複雑なコードの変更を説明できるため、レビュー担当者は PR が提供しているものをいっそう速やかに理解できます。
- Copilot は、GitHub の pull request レビュー インターフェイス内で直接、リポジトリ全体のコンテキスト対応の提案と可能なコード改善を提供できるため、レビュー担当者が潜在的な問題を把握し、建設的なフィードバックをより効率的に提供するのに役立ちます。
- Copilot は、レビュー担当者が明確で一貫性のある効果的なレビュー コメントを下書きしたり書いたりするのに役立ちます。
Organization のガイドラインに基づいてレビューする
- Copilot は、pull request を開く前に IDE でコードの変更をレビューしたり、レビュー担当者として pull request に割り当てられたりすることができます。
- ルールセットを使うと、カスタム条件に基づいて pull request を体系的にレビューするように Copilot を設定できます。
- レビュー用のコーディング ガイドラインを使用すると (Copilot Enterprise のみ)、Copilot は organization のコーディング標準とベスト プラクティスを適用し、潜在的な違反に自動的にフラグを付けて、修正を提案できます。
これらの機能は、コードベース全体の一貫性を保証し、開発プロセスの早期にエラーを把握するのに役立つので、手作業でのコード レビューの必要性が減り、開発者とレビュー担当者の時間が節約されます。
コードの修正を提案する
Copilot は、pull request のレビュー コメントに基づいて、pull request 作成者がレビューを解決するために必要なコード変更をすばやく実装するのを補助できます。
文化に関する考慮事項
GitHub Copilot のロールアウトに加えて、目標を達成できない可能性のある社会的または文化的要因にも対処する必要があります。
次の例は、ESSP の "アンチパターン" に関するセクションから抜粋したものです。
- チームは、リリースを長く待ちすぎて、大量のコードを一度に配置することがあります。 これは、頻繁なリリースでの不安定化への恐れ、CI/CD パイプラインの成熟度の欠如、または厳格なコンプライアンス要件が原因で発生する可能性があります。
- 開発者は、コードを完全なものにするために時間をかけすぎたり、不要な機能の追加で時間を無駄にしたりすることがあります。 これは、完璧主義の文化や効果的な優先順位付けの欠如が原因である可能性があります。
- 開発者は、単純な問題のために過度に複雑な解決策を構築する場合があります。 これは、不必要な将来的保証の願望や、複雑さを通じて価値を高める圧力が原因である可能性があります。
3.変更を実装する
障害を克服するための適切なアプローチを特定したら、特定したソリューションを拡大します。 新しいツールやプロセスのロールアウトを成功させるには、ロールアウトの各部分に所有権を割り当て、目標について率直にコミュニケーションを取り、効果的なトレーニングを提供し、成果を測定することが重要です。
このセクションでは、開発者向けのシナリオ例、ベスト プラクティス、リソースについて説明します。 このセクションを使って、従業員が目標に沿った方法で Copilot を使用できるように、コミュニケーションとトレーニング セッションを計画することをお勧めします。
- 役に立つ pull request の概要を作成する
- レビュー アシスタントとして Copilot を使用する
- レビュー担当者として Copilot を追加する
- レビュー コメントの実装で支援を受ける
- 開発者向けのベスト プラクティス
- リソース
役に立つ pull request の概要を作成する
- Pull request を作成するときに、[Add a description] フィールドの Copilot アイコンをクリックしてから、[Summary] をクリックします。
- Copilot は pull request をスキャンし、行われた変更の文章による概要と、変更とその影響を受けるファイルの箇条書きを提供します。
- Copilot の説明で問題がないことを確認します。
- レビュー担当者が pull request の作業を行うときは、レビューを残すために必要なすべてのコンテキストが揃っています。
レビュー アシスタントとして Copilot を使用する
レビュー担当者として pull request に参加するときは、Copilot を使ってレビューを高速化できます。
-
Copilot を使って、pull request での変更を理解します。
-
ファイルに対して行われた変更を要約するよう、Copilot に依頼します。これは、差分が長いときに特に役立ちます。 ファイルの右上隅にある をクリックして、差分から特定のファイルを選択できます。
-
特定の行の変更については、理解を深めたい行を強調表示にして、変更を説明するよう Copilot に依頼します。 一連の行を強調表示にするには、最初に一番上の行番号をクリックし、Shift キーを押しながら、差分の一番下の行をクリックします。
-
-
Copilot を使用して PR レビューの共同作業を行います。 Copilot に要求する前に、特定のファイル差分を会話にアタッチすることを忘れないでください。
-
Provide your judgement as a PR Reviewer, both for functional and non-functional aspects that these changes bring
と尋ねることで、Copilot に PR の変更に関するその独自の意見を問い合わせることができます。 このプロンプトでは、コードの機能面と非機能面の両方を考慮するように Copilot に求めていることに注意してください。 -
ユーザー自身の PR レビュー コメントについては、Copilot に 2 番目の意見を問い合わせます:
As my peer reviewer on this pull request, give me your feedback on my own review: YOUR-REVIEW-COMMENT. Do you think it's pertinent? Am I missing something?
-
-
Copilot と共同作業して、レビュー コメントの下書きと改善を行います。
- Copilot でのレビューを計画した後、提供する必要があるコメントの一覧を示すように求めることができます:
Make a list of review comments to add to the PR and tell me exactly in which file diff and lines each comment should be added
。 - また、自分が考えているレビュー コメントの最初の下書きの作成や、投稿する前のコメントの改善を、Copilot に依頼することもできます:
Help me draft review comments as discussed
またはRefine this review comment to make it clear, concise, and actionable
。
- Copilot でのレビューを計画した後、提供する必要があるコメントの一覧を示すように求めることができます:
レビュー担当者として Copilot を追加する
レビュー時間を短縮し、より速く pull request をマージするには、最初に pull request を開く前に IDE で、次に GitHub で PR に対して、Copilot のコード レビューを体系的に使います。
Copilot のコード レビューを使っても、人手でのコード レビューが必要なくなるわけではありません。 ただし、上記の手順のようにすると、人手でのレビューをより速く完了するのに役立ちます。
- 開発者は、pull request を開く前に、Copilot のコード レビューを使ったすべての変更のレビューを要求する必要があります。
- 管理者は、保護されたブランチを対象とする pull request のレビュー担当者として Copilot を自動的に追加するように、リポジトリまたは organization のルールセットを設定する必要があります。
- チーム リーダーは、チームの標準的なスタイルとルールを把握し、Copilot がレビューでそれらを活用できるように、organization のコーディング ガイドラインとして設定する必要があります。
- コーディング ガイドラインには、コードを読みやすくするスタイル設定に関する最小限の推奨事項のセットが盛り込まれるようにします。これは、pull request のレビュー プロセスの間に役立ちます。
- スタイルの問題による PR レビュー コメントの量を減らすには、リポジトリと organization のレベルで Copilot の指示に同じ推奨事項を設定します。 これにより、Copilot によって生成されるコードは、これらのガイドラインに準拠するようになります。
レビュー コメントの実装で支援を受ける
Pull request の作成者は、Copilot の支援を受けて修正を迅速に実装することで、PR レビュー コメントの解決の時間を短縮できます。
- Copilot 自体によって残されたレビュー コメントについては、提案された修正を直接コミットするか、コミットする前に Copilot Workspace で編集します。
- ピアによって残されたレビュー コメントについては、PR レビュー コメントに関連するファイル差分に移動し、差分を Copilot Chat の会話に添付します。 その後、次のようなプロンプトを使ってレビュー コメントをコピーして貼り付けます:
Suggest a fix for this review comment:
- VS Code をお使いの場合は、レビュー コメントから必要な変更を実装するよう、エージェント モードで GitHub Copilot に指示します。
開発者向けのベスト プラクティス
開発者がすべきこと:
- 問題を早期に把握して解決するため、プッシュする前に IDE で Copilot のレビューを要求します。
- PR 作成者が問題を理解して解決できるように、Copilot を使って独自の PR レビュー コメントを計画および改善します。
- 特定のコード行などの関連する差分コンテキストを Copilot との会話にアタッチします。
開発者がすべきでないこと:
- Copilot の提案を、テストしないで適用します。
- レビューを Copilot のみに依存します。
- コードの読みやすさを無視します。
リソース
- GitHub Copilot で pull request の概要を作成する
- GitHub Copilot コード レビューの使用
- GitHub Copilot コード レビューのコーディング ガイドラインの構成
- Copilot を使って自動コード レビューを構成する
- GitHub Copilot に対する organization カスタム指示の追加
注目すべきメトリック
新しいツールの試用版を評価し、完全なロールアウトによって一貫した改善が実現されていることを確認するには、結果を監視し、必要に応じて調整を行う必要があります。 一般に、品質、速度、開発者の満足度という主要なゾーンを考慮し、これらのゾーンがどのように連携してビジネス成果に貢献するかを検討することをお勧めします。
この特定の目標に対する Copilot の影響を評価するために、検討することをお勧めするメトリックをいくつか示します。
- 開発者の満足度: 開発者アンケートを使って、エンジニアリング ツールに対する満足度を測定します。
- 開発者ごとにマージされた pull request の数: GitHub の
pull request
Webhook を使って、action
がclosed
であり、pull request
オブジェクト内のmerged
プロパティがtrue
であることを確認できます。 - Pull request のリード タイム: PR の作成とマージの間の平均時間を測定します。