JIRAを使ったプロジェクト管理の実例と活用ポイント

HRBrainでバックエンドエンジニアをしている藤原です。
こちらは、HRBrain Advent Calendar 2024 22日目の記事です。  

https://qiita.com/advent-calendar/2024/hrbrain

# はじめに
JIRAは強力なプロジェクト管理ツールですが、その多機能さゆえに使いこなすのが難しいと感じる方も多いのではないでしょうか。
この記事では、実際の機能開発プロジェクトで使用したJIRAの具体的な活用方法を、計画・実装・テストといった各フェーズごとに分けて紹介します。

タイムラインやスクラムボード、ダッシュボード機能を使いこなすことで、タスク管理や進捗把握がどれだけ楽になるのか、ぜひご覧ください。

# 計画フェーズ
スケジュールや担当者のアサインを決めるのには、タイムラインを使いました。
具体的には以下のような作業をしています。
- タスクの分割
- タスクの依存関係の設定
- 担当者のアサイン
- タスク毎の工数出し
- 担当者毎にタスクを直列に並べる
- 担当者へのタスクの配分を見直し均す

![Bengal_timelineボード_-_Timeline_-_Jira.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/932362/76afb210-6dba-8c10-338a-0f9320d283f8.png)

複数人で行うプロジェクトの予定を立てるのは、全体の作業進行状況を直感的に把握できるガントチャートが便利です。
チャート部分はグリグリ動かせますのでスプシやエクセルよりも扱いやすいと思います。

![chart.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/932362/120524b7-101c-35f9-2de1-4ad04c335420.gif)

また、上部の担当者のアバターをクリックすることで、選択された担当者だけのタスクに絞って表示することもできるので、リソースの重複等も防げます。他にもいろんな条件で絞り込み表示が可能です。
![Bengal_timelineボード_-_Timeline_-_Jira_と___未読メッセージ_-_HRBrain_-_1_個の新しいアイテム_-_Slack.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/932362/17a04797-5156-2028-24bd-537858027c66.png)

なお、タイムラインは単一プロジェクトでしか使えない機能のようなので（プランによる差異もなさそう2024/12/18現在）、注意が必要です。複数プロジェクト横断してる場合は、プロジェクト毎にボードを分けたり、どちらかのプロジェクトに寄せて管理する等の工夫が必要になるかと思います。

# 設計・実装フェーズ
基本的には毎日の朝会でタイムラインをみんなで確認しつつ予定通り進んでいるか、遅れていたら巻き返せそうか、バッファを潰してリスケするか、等の確認をして進捗管理をしていました。

全体のスケジュールを先に立ててウォーターフォール風味にはしていますが、一応ボードはスクラムボードで作成し、1週間毎の作業の分量も見られるようにしていました。
そのために、バックログには先々までスプリントの枠を用意しておき、タイムラインで決めた予定に沿ってタスクをスプリントに入れてました。
![Bengal_timelineボード_-_Backlog_-_Jira.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/932362/44acbbea-9ba9-8b00-c3c8-e61c23898742.png)

これにより今週どんな作業をすればよいのかをアクティブスプリントで確認できます。タイムラインと同様に上部の担当者のアバターをクリックすれば選択した担当者のみのタスクの状況も確認できます。直近のタスクの状況を確認するのはこちらの表示の方が見やすかったりします。
![Bengal_for_Lynx_11_-_Bengal_timelineボード_-_Agile_Board_-_Jira.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/932362/22b63a6e-c1c1-3733-50ae-78018e807764.png)

一応、1週間ごとにスプリントを閉じて次のスプリントを開始するという運用にはしていましたが、やるべきことは決まっていたのでプランニング等は省きました。必要に応じて随時必要なメンバーで集まって相談する形にしていました。

# QAテスト・不具合改修フェーズ
テストが始まると不具合が見つかるペースと不具合を改修するペースを比較しつつ、予定していた期限までに収束できるかを見極める必要があります。
このフェーズではダッシュボードが有用でした。

![Bengal_for_Lynx_-_Jira.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/932362/7720661d-5aa1-29a8-7eac-efa9946353d6.png)

## Created vs. Resolved Chart
作成したチケットと完了したチケットの日々の件数の変化や推移をグラフで表示してくれるパーツです。
このパーツを利用することで、テスト中に不具合が収束するペースを迅速に判断し、リカバリの検討をする材料になりました。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/932362/16259739-f159-b2d5-c3fb-d2c6a9c284b2.png" width=50%>

- 累積件数の推移
下側のグラフは残チケットの件数です。
  <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/932362/dffee487-9e0f-c97c-edcd-46ec367f173e.png">

- 日毎の件数
  <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/932362/c31e4c61-9fd4-183f-beb2-56d6105c71ed.png">
  - まるポチをクリックして表示されるリンクをクリックすると、該当日に作られれたチケットの一覧等も見られますので、前日に新たに上がってきた不具合の確認なども容易です。
    <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/932362/5637fba0-6657-a6ba-5ef8-84a88c96576f.png" width=50%>
　

- 設定
  - `Project or Saved Filter`で対象プロジェクトまたは対象プロジェクトのフィルタを指定します
    - 専用のフィルタを作ってそれを使うことで、たとえば優先度の高いものだけに絞って表示することも可能です
  - `Collection Operation`でグラフの種類を選択できます。`Count`が日毎のグラフ、`Cumulative`が累積のグラフです
  - `Display the Trend of Unresolved`をYesにすると残チケットのグラフが表示されます
  - 注意点としては、対象期間をDays Previouslyで設定するのですが「現在から何日前」という指定しかできないので、日にちが経過すると古い日が表示されなくなるので定期的に変更する必要があります
  <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/932362/1630ac3d-64b4-9d56-9415-e13f17a6fdd4.png">

## Two Dimensional Filter Statistics
チケットの任意の２つの項目をクロス集計した表を表示してくれるパーツです。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/932362/beb987ab-5846-2c77-814f-1faffba05761.png" width=50%>

- StatusとPriorityを指定した例
数字をクリックすると該当するチケットの一覧も見ることが可能です。
![Edit_-_Bengal_for_Lynx_-_Jira.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/932362/42a92fa5-f7f7-6928-f8d3-d12d9f90e9ae.png)
　

- 設定
  - `Saved Filter`で対象プロジェクトのフィルタを指定します
    - 専用のフィルタを作ってそれを使うことで、たとえば特定のラベルのものだけ絞って表示することも可能です
  - `XAxis`に横軸の項目を指定します
  - `YAxis`に縦軸の項目を指定します
  <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/932362/358d71ce-335a-afc6-e604-aa7a7dfca9b2.png">

# まとめ
JIRAの活用を通じて得られた主な効果は次の通りです。
- ガントチャートでの直感的な進捗管理
- スプリントボードを活用したチーム内の作業の透明性向上
- ダッシュボードでの不具合状況の可視化による迅速な意思決定

なお、社内ではNotionも使っておりそちらを活用することもあるのですが、スプリント管理やダッシュボード機能ではJIRAの方がまだ優れていると思います。短期的なプロジェクトやタスクが少ない場合はNotion、複雑なプロジェクト管理が必要な場合はJIRAを選ぶと良いかもしれません。