[GitHub Projects] 私たちのプロジェクト管理方法を紹介

## はじめに

こんにちは。株式会社 Panta Rhei のインフラ構築を担当している岸本です。

今回は、私たちが採用しているプロジェクト管理方法についてご紹介します。
皆さんからのコメントやアイデアもお待ちしています。
以下の順序で進めていきます。

1. プロジェクト管理について
2. チケットの管理（カスタムフィールド）
3. まとめ

## プロジェクト管理について
私たちは、GitHub Projects を用いてプロジェクト管理を行っています。
今回はその一例として、特定の Projects を取り上げて解説します。
この Projects には、「 Kanban 」、「 Team capacity 」、「 Current Sprint 」、「 Roadmap 」、「 My items 」の5つのビューがあります。特に「 Kanban 」と「 Current Sprint 」について詳しく説明します。

### Kanban
まず「かんばん」についてですが、これは作業項目を視覚的にわかりやすく表示する方法です。
GitHub Projects では、Board 形式を採用しています。
Kanban Board には5つの列があります。
【列】
![スクリーンショット 2024-05-05 12.08.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3775049/2007effb-985d-601a-c2ea-04a72997bd4a.png)

列には、「 Back log 」、「 Todo 」、「 In Progress 」、「 In Review 」、「 Done 」があり、それぞれ作業のステータスを示しています。
チケットはこれらの列を移動させながら管理されます。
このボードの特徴は、全てのチケットが一目で確認できることです。

<details><summary>項目詳細はこちら</summary>

- Back log
  - 対応すべき項目。
- Todo
  - 優先度あがり取り組むべき項目。
- In Progress
  - 現在作業が進行中の項目。
- In Review
  - レビュー中の項目。
- Done
  - 完了した項目。

</details>


### Current Sprint
次に「 Current Sprint 」についてです。
アジャイル開発におけるスプリントは、短期間で集中的に行われる作業期間を指します。
弊社では、この期間を2週間と設定し、タスクを割り当てています。
GitHub Projects では、Board 形式を採用しています。
【Current Sprint】
![スクリーンショット 2024-05-05 12.24.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3775049/f9aa2c3e-6704-0121-3ee6-cee5bb0eb8df.png)


列は Kanban と同じですが、行は優先度によって分けられています。
最優先の P0 から始まり、その下に P1、P2、No Priority と設定されています。
[フィルター機能](https://docs.github.com/ja/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/filtering-projects)を使うと、直近のスプリントのみを表示させることができます。
このボードの特徴は、チケットの優先度とステータスを一目で確認できることです。

## チケットの管理（カスタムフィールド）
次に、チケットの管理方法について説明します。
各チケットには詳細とカスタムフィールドが設定されています。
【チケット詳細とカスタムフィールド】
![スクリーンショット 2024-05-05 12.00.02 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3775049/cfcc9a00-5bb0-e84e-f3f3-aa0c29932aec.png)

特に注目すべきは赤枠で示されたカスタムフィールドです。

:::note warn
カスタムフィールドの設定は[こちら](https://docs.github.com/en/issues/planning-and-tracking-with-projects/understanding-fields/about-text-and-number-fields)を参照してください。
プロジェクトの設定またはテーブルの New Field から追加が可能です。
:::

以下にチケットの一例を解説します。
【クローズアップ】
![スクリーンショット 2024-05-05 12.45.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3775049/fa6da520-28aa-1b5f-8d39-b9b587b71aeb.png)

カスタムフィールドには、「 EPIC 」、「 Size 」、「 Story Point 」、「 Sprint 」、「 Start date 」、「 End Date 」、「 Priority 」が含まれています。

<details><summary>項目詳細はこちら</summary>

- EPIC
  - 親子関係を示すため使用します。
- Size
  - チーム全員が共通認識を持っているチケットの大きさを示しています。
- Story Point
  - タスクの難易度や必要な労力を見積もるために使われます。
- Start date
  - チケット開始予定日です。
- End Date
  - チケット終了予定日です。
- Priority
  - チケットの優先度を示します。

</details>

ポイントは、「 EPIC 」です。
GitHub にはネイティブのタスクの親子関係の機能がないため、このカスタムフィールドを作成しました。
Kanban タブで Group By で EPIC を選択すると各チケットの親を見ることができます。

【EPIC 環境構築】
![スクリーンショット 2024-05-08 0.11.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3775049/b4c3cc5c-614b-b9cf-05fb-5862eeba1d6c.png)

このようにカスタムフィールドを設定することで、チケットをカテゴリ別に管理することが可能です。
これにより、プロジェクトのトレーサビリティが向上し、より効果的なプロジェクト管理が実現します。

## まとめ
いかがでしたでしょうか。
私たちはこのようにプロジェクト管理を行なっています。
他にも良いアイディアがあれば、ぜひコメントで教えてください。
また、アジャイル開発に興味のある方やエンジニアの募集も行っています。
GitHub Projects に関することや、採用に関するお問い合わせも、どうぞお気軽にご連絡ください。