Skip to main content

Projects のベスト プラクティス

プロジェクトを管理するためのヒントについて説明します。

Projects を使って、issue や pull request がある GitHub 上での作業を管理できます。 プロジェクトを効率的かつ効果的に管理するためのヒントを読んでください。 Projects の詳細については、「Projects について」を参照してください。

Issue と pull request にまたがってコミュニケーションをとる

IssueとPull Requestには、コラボレータと容易にコミュニケーションが取れるようにする組み込みの機能があります。 @mentions を使い、個人や Team 全体に対してコメントに関するアラートを発します。 責任を伝えるために、Issueにコラボレータをアサインしてください。 関連性を伝えるために、関連するIssueやPull Requestにリンクしてください。

大きなIssueを小さなIssueに分割する

大きなIssueを小さなIssueに分割すると、作業が管理しやすくなり、Teamのメンバーが並列に作業できるようになります。 そうすることでPull Requestも小さくなり、レビューしやすくなります。

Issue に sub-issue を追加することで、大きな作業を小さな issue にすばやく分割することができます。 sub-issue により、issue 間の関係が作成されて、GitHub での issue の階層のサポートが追加されます。 ユーザーやチームが必要とする詳細さにタスクを分割することでプロジェクトを正確に表す sub-issue の複数のレベルを作成することができます。「sub-issue の追加」と「sub-issue の閲覧」を参照してください。

Issue の種類を使って、organization 全体のリポジトリ内の作業を sub-issue と共に分類することもできます。 詳しくは、「組織での issue の種類の管理」をご覧ください。

効率的な進行状況を確保するため、どの issue が他の issue にブロックされている、またはブロックしているかを明確に定義します。 「Issue の依存関係の作成」を参照してください。

どのように小さな issue が大きなゴールに収まっているか追跡するには、マイルストーンやラベルを使います。 詳細については、「マイルストーンについて」および「ラベルを管理する」を参照してください。

説明、Readme、状態更新を使って、プロジェクトに関する情報を共有する

プロジェクトの説明とREADMEを使って、プロジェクトに関する情報を共有してください。

たとえば次のような点です。

  • プロジェクトの目的の説明。
  • プロジェクトのビューとその利用方法の説明。
  • 関連するリンクや、詳細情報のための連絡先を含める。

プロジェクトのREADMEはMarkdownをサポートしており、画像や、リンク、リスト、ヘッダといった高度なフォーマットを使用できます。 詳しくは、「project の作成」をご覧ください。

ステータスの更新を投稿することで、プロジェクトの他のユーザーと高レベルの更新を共有することもできます。 ステータスの更新を使用すると、プロジェクトに "順調" や "危機的状況" などのステータスのマークを付けたり、開始日や目標日を設定したり、書き込まれた更新をチームと共有したりできます。 詳しくは、「project 更新の共有」をご覧ください。

プロジェクト項目のカスタマイズされたビューを作成する

プロジェクト ビューでは、テーブル、ボード、ロードマップのレイアウトを使って、さまざまな角度からプロジェクトを確認できます。 ビューを使うと、チームのバックログ、毎週のイテレーション、チームのロードマップ、機能リリースの計画などを管理できます。

たとえば、次の方法でビューをカスタマイズできます。

  • 状態でフィルター処理し、未開始の項目をすべて表示する
  • カスタム優先度フィールドでグループ化し、優先度の高い項目の量を監視する
  • カスタム日付フィールドで並べ替えて、最も早い出荷予定日の項目を表示する
  • 担当者別にスライスし、チームの容量を確認する
  • 見積もりのフィールド合計を表示して、項目のグループの複雑さを強調する
  • ボード列に列制限を追加し、フォーカスを維持する

テーブル レイアウトの例を次に示します。

テーブル レイアウトの例を示すスクリーンショット。

ボード レイアウトの例を次に示します。

ボード レイアウトの例を示すスクリーンショット。

ロードマップ レイアウトの例を次に示します。

ロードマップ レイアウトの例を示すスクリーンショット。

詳しくは、「projectでのビューのカスタマイズ」をご覧ください。

さまざまなフィールドの種類を使って、プロジェクト項目にメタデータを追加する

さまざまなフィールドの種類を利用し、ニーズに合わせて issue、pull request、ドラフトの issue にメタデータを追加することで、より豊かなビューを実現します。 issue や pull request に関して、現時点で存在している組み込みのメタデータ (担当者、マイルストーン、ラベルなど) に限定されるわけではありません。 たとえば、カスタム フィールドとして次のメタデータを追加できます。

  • 目標出荷日を追跡するための日付フィールド
  • タスクの複雑さを追跡するための数値フィールド
  • タスクの優先度が低、中、高のいずれであるかを追跡するための単一選択フィールド
  • クイック ノートを追加するためのテキスト フィールド
  • 休憩のサポートを含む、週単位で作業計画を立てるための繰り返しフィールド

繰り返しフィールドを使って、作業をスケジュールしたり、タイムラインを作成したりしてください。 繰り返しをグループ化して、アイテムが繰り返し間でバランスしているかを見たり、あるいは繰り返しの1つに焦点を当てるためにフィルタリングできます。 繰り返しフィールドを使うと、過去のイテレーションで完了した作業を表示できるため、速度の計画とチームの成果への反映に役立ちます。 繰り返しフィールドは、あなたとあなたのチームが繰り返しから離れる時間を取っている時を示す休憩もサポートします。 「繰り返しフィールドについて」を参照してください。

単一の選択フィールドを利用して、事前設定された値のリストに基づき、タスクに関する情報を追跡してください。 たとえば、優先度やプロジェクトのフェーズを追跡してください。 値は事前設定されたリストから選択されるので、グループ化や特定の値のアイテムに集中するためのフィルタリングが容易です。

さまざまなフィールドの種類については、「フィールドについて」を参照してください。

オートメーションを使ってプロジェクトを自動的に最新の状態に保つ

意味の無い作業に費やす時間を減らし、プロジェクト自体にかける時間を増やすために、タスクを自動化できます。 手動でやることを覚えておく必要が減れば、それだけプロジェクトは最新の状態に保たれるようになります。

Projects には組み込みのワークフローが用意されています。 たとえば、Issue が閉じられた場合に自動的にステータスが [Done] になるように設定できます。 また、項目が設定された条件を満たすと自動的にアーカイブしたり、項目がフィルターに一致するとリポジトリから自動的に追加されるように、ビルトイン ワークフローを設定することもできます。

加えて、GitHub Actions と GraphQL API を使用することで、ルーチンのプロジェクト マネジメント タスクを自動化できます。 たとえば、レビュー待ちのPull Requestを追跡するために、Pull Requestをプロジェクトに追加し、そのステータスを"needs review"に設定するようなワークフローを作成できます。このプロセスは、Pull Requestが"ready for review"としてマークされたときに自動的にトリガーできます。

進行状況を視覚化して共有するためのグラフと分析情報を作成する

Projects の分析情報を使って、プロジェクトにソースデータとして追加された項目を使うグラフを表示、作成、カスタマイズすることができます。 既定のグラフにフィルターを適用し、独自のグラフを作成することもできます。 グラフを作成するときは、フィルター、グラフの種類、表示される情報を設定します。グラフは、プロジェクトを表示できるすべてのユーザーが使用できます。

詳しくは、「Projects の分析情報について」をご覧ください。

プロジェクト テンプレートを作成してワークフローを標準化する

Organization 用のプロジェクト テンプレートを作成するか、プロジェクトをテンプレートとして設定することで、事前構成されたプロジェクトを organization 内の他のユーザーと共有し、他のユーザーがプロジェクトのベースとして使用できるようにすることができます。 プロジェクト テンプレートには、ビュー、カスタム フィールド、ドラフトの issue と関連フィールド、構成されたワークフロー (自動追加ワークフローを除く)、分析情報が含まれます。

詳しくは、「組織で project テンプレートを管理する」をご覧ください。

プロジェクトをチームに追加することで、チームのコラボレーター全員がそれぞれのプロジェクトにアクセスできるようにすることができます。 プロジェクトをチームに追加すると、そのプロジェクトはチームのプロジェクト ページに一覧表示されます。これにより、メンバーは特定のチームが使用しているプロジェクトを簡単に識別できます。

詳しくは、「project をチームに追加する」をご覧ください。

プロジェクトを所有する同じユーザーまたは organization が所有するリポジトリにプロジェクトを追加することもできます。

詳しくは、「project をリポジトリに追加する」をご覧ください。

信頼できる唯一の情報源を持つ

情報がずれてしまわないようにするために、信頼できる唯一の情報源を管理してください。 たとえば、ターゲットの出荷日は複数のフィールドに分散させず、一カ所で追跡してください。 そうすれば、ターゲットの出荷日が変更された場合、一カ所で日付を更新するだけでよくなります。

Projects は、担当者、マイルストーン、ラベルなどの GitHub データと自動的に最新の状態に同期されます。 これらのフィールドのいずれかがIssueあるいはPull Requestで変更されると、その変更は自動的にプロジェクトにも反映されます。

参考資料