Jiraの活用事例　～チケットの時間管理編～

この記事は株式会社富士通システムズウェブテクノロジーが企画する[いのべこ（富士通システムズウェブテクノロジー）Advent Calendar 2020](https://qiita.com/advent-calendar/2020/fsweb)の20日目の記事です。本記事の掲載内容は私自身の見解であり、所属する組織を代表するものではありません。

## はじめに
本記事ではアトラシアン社のサービス／プロダクトであるJiraの具体的な活用方法について紹介したいと思います。

Jiraはいわゆるチケット管理ツールですが、特にアジャイルチームのためのプロジェクト管理ツールとして使いやすいように作られています。

Jiraは高機能でやろうと思えば様々なことが実現できる反面、自由度が高く、効果的な使い方に行きつくには時間をかけて試行錯誤をする必要があるように思えます。インターネットで活用事例を探そうにも、なかなか自分にフィットする使い方が見つからないのではないでしょうか。

本記事では、3年ほどJiraを活用してアジャイルチームを運営してきた経験を踏まえ、システムエンジニアが仕事をする上で具体的に活用できそうな使い方を紹介していきたいと思います。なるべくJiraの思想に沿ったシンプルでかつ効果的な活用方法にまとめたつもりです。

参考までに、本記事は下記の続編の位置付けです。
- [Jiraの活用事例　～課題管理編～](https://qiita.com/ikedahideya/items/b21c535a7db0aa03395c)
- [Jiraの活用事例　～スケジュール管理編～](https://qiita.com/ikedahideya/items/572321b4c7d07e5d59c5)
- [Jiraの活用事例　～スクラム初心者編～](https://qiita.com/ikedahideya/items/60b247a031684d29786a#まとめ)

### 対象とするシステムエンジニアの業務
本記事で対象とするシステムエンジニアの業務はタスクの予定時間と実績時間の振り返りです。左記のことをJiraの時間管理機能を使ったチュートリアル形式で説明したいと思います。

スクラムの開発チームの成長を示す指標の1つとして見積精度があります。見積精度が高ければチームが期日までにどれくらいのものを生産することができるかを見通すことができます。そして、見積精度を上げるためには予定に対しての実績を振り返ることが重要です。時間管理機能をこの目的で活用できるように紹介していきます。

※システムエンジニアは見積と聞くと将来覆せない約束を連想して嫌な気分になるかもしれません。予定期日を超過すると終わるまで地獄の残業をすることになるなど筆者にも嫌な思い出があります。予定時間にこういったペナルティ的な要素が伴うと開発チームは見積にサバを読むようになったり、早く作業が終わっても終わっていないことにしたくなります。長期的には良いことがありませんので、純粋に予定時間に対する実績時間の精度を上げることを目標にできるような心理的安全性の確保が大前提になります。

## 準備
### Jira無料版を申請する
2020年12月現在、下記の条件でJira無料版が利用できます。

- 無料機能へのアクセス
- 2 GB のストレージ
- 10 ユーザーまで
- コミュニティサポート

Jira本家サイト（https://www.atlassian.com/ja/software/jira ）から申し込めばすぐに使い始められます。
![スクリーンショット 2020-12-29 11.47.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/edcdddf3-9708-2326-2ae3-17455e380881.png)
上記ページより「無料で入手する」をクリック（以下省略）

### プロジェクトを作成する
Jiraを使う準備が完了したら新規プロジェクトを作成します。「プロジェクトを作成」画面で必要な情報を入力します。満を持して、テンプレートは「次世代テンプレート」の「スクラム」を選択します。
![スクリーンショット 2020-12-29 11.49.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/de7a84aa-4e92-f4a4-4369-de2702ccc9ba.png)
入力が完了したら「作成」をクリックして始めていきましょう。

※タスクの時間管理は「カンバン」テンプレートでも利用可能です。

## タスクの時間管理
### 課題タイプのコンテキストフィールドに時間の管理を追加する
左メニュー「プロジェクト設定」>「課題タイプ」を選択します。
課題タイプのコンテキストフィールドに作成済みのフィールド「時間の管理」を追加します。
![スクリーンショット 2020-12-29 15.25.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/d221c2d8-4a1d-61cb-7968-4367908d4805.png)
ドラッグ&ドロップすると下記の画面のように追加されるので「変更を保存」をクリックします。
![スクリーンショット 2020-12-29 15.30.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/b094779b-8892-fcc8-fa31-fd419f60da76.png)
上記と同様の操作により課題タイプ「Story」「Task」「サブタスク」にも「時間の管理」を追加します（手順は省略）。

### 課題への予定時間の入力
左メニュー「バックログ」を選択し、例として1つのStoryと1つのTaskを登録します。
![スクリーンショット 2020-12-29 15.47.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/c62ed1bc-d58f-5137-5720-6164ff402872.png)
またStoryの方にはサブタスクを3つ作成します。
![スクリーンショット 2020-12-29 15.52.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/c631abe4-bf53-ebb7-054f-c72113c46c11.png)

課題に予定時間を入力していきます。まずはStoryのサブタスクの1つを選択します。
![スクリーンショット 2020-12-29 16.01.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/52e81baf-7c9a-ba1b-9b18-fc0b57a86d05.png)
すると課題のフィールドに「時間の管理」という項目が表示されています。この項目をクリックします。
![スクリーンショット 2020-12-29 16.04.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/2142336f-acf6-0992-5d0f-f98b6eec0afc.png)
「時間の管理」サブウィンドウが開き、「所要時間」と「残り時間」を入力することができるようです。ここでは初期見積という意味合いで「残り時間」の方に予定時間を入力します。「所要時間」の方は空欄のままにしておきます。「保存」をクリックすると予定時間が記録されます。
![スクリーンショット 2020-12-29 16.09.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/92eb0a75-a601-7eb2-8827-346b5a93b73f.png)
同じStoryのサブタスク残り2つにも同じように「残り時間」をそれぞれ「5h」「2h」と入力します（手順は省略）。するとStoryには下図のようにサブタスクの合計時間が表示されます。
![スクリーンショット 2020-12-29 16.13.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/fe7a2afa-5581-b010-22c4-97ec98415d17.png)
同様に、Taskにも「残り時間」を入力しておきます。
![スクリーンショット 2020-12-29 20.23.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/3cfee9d5-de88-b6da-1e80-c047c88ecda8.png)

### 予定時間の確認
次のスプリントで実施予定の課題が、メンバーが稼働できる時間枠に収まっているかどうかを確認すると仮定して、課題の予定時間の合計値や一覧を確認するにはどうすればいいでしょうか？

まずは事前準備として、スプリントを作成して実施予定の課題をスプリントの中に入れます。バックログ画面で「スプリントを作成」ボタンを押してスプリントを作成します。
![スクリーンショット 2020-12-30 14.48.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/57bb79fd-4349-8988-d753-ad509a01534c.png)
そして、課題をドラッグ&ドラッグするなどしてスプリントに含めます。
![スクリーンショット 2020-12-30 14.50.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/18cfe6f9-d1de-234d-b794-c2d43bc1e39e.png)

2020年12月現在では、次世代プロジェクトにはそのための最適なビューはまだ提供されていないように思われますが、ここでは2通りの方法を提案します。

1. 高度な課題検索を使う
1. Story point estimateに予定時間と同じ数値を入力しておく

#### 高度な課題検索を使う
上部メニューから「フィルター」>「高度な課題検索」を選択します。
![スクリーンショット 2020-12-29 20.38.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/1bb5e60c-2c18-5141-2cc7-396931f1c727.png)
画面右端からビューを「一覧ビュー」にしておきます。（画面上部の検索条件で「プロジェクト」「Sprint」を選択することで課題に絞って表示することができます。)
![スクリーンショット 2020-12-30 14.55.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/91d97187-a960-6347-7dbc-f8a0ca200790.png)
画面右の「列」をクリックして表示列をカスタマイズします。「Story point estimate」「Σ残余見積」「Σ消費時間」「Σ進捗状況」を表示しておきます。
![スクリーンショット 2020-12-30 15.01.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/6de4d10b-77ff-f5b2-472f-eaed5db82ae7.png)
このように高度な課題検索で、対象の課題を抽出し、表示する列をカスタマイズすることで、予定時間の一覧と合計を確認することができます。「Σ残余見積」の合計値を確認しましょう。
![スクリーンショット 2020-12-30 15.15.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/77a60763-4384-742b-593c-bd7eb55fc76a.png)

ちなみに「Σ残余見積」は実際に作業実績を入力すると減っていき、課題が無事に完了するとゼロになります。後で計画時の予定時間と実績時間を比較しようと思った時に、計画時の予定時間が分からなくなってしまいます。この問題はどうすればいいのでしょうか？高度な課題検索で表示可能な項目に「Σ初期見積」という列があり、そこに初期の見積値が入って欲しいのですが、残念ながら現時点ではそういう仕様にはなっていないようです。

#### Story point estimateに予定時間と同じ数値を入力しておく
上述した通り「Σ初期見積」が使えればベストなのですが、現時点では諦めて代替方法を考えました。その方法が、Story point estimateに予定時間と同じ数値を入力しておくという方法です。

下図のように時間の管理に入力した「残り時間」と同じ値を「Story point estimate」に入力しましょう。すべてのサブタスクと課題に同様に入力していきます。（サブタスクがある課題でもStory point ensimateは下位のサブタスクの合計値が自動反映されないため手入力します。）
![スクリーンショット 2020-12-30 15.24.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/01ef5b51-a25f-c7fa-9916-a65674fa3bd7.png)
入力すると、下図のようにバックログ画面にて予定時間が確認できるようになります。
![スクリーンショット 2020-12-30 15.30.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/fb375d19-1666-ebb1-c336-9bace836c86b.png)

Story point estimateは課題に要する予定時間の大きさという意味合いなので、課題の予定時間の管理方法としてはこちらの方法の方が適切と思われます。しかし、Story pointの本来の使い方は1時間単位といった絶対時間ではなく相対的な大きさでざっくり見積るというものです。なので、Story pointをこのように時間で使いたくないのが本音です。

### 実績入力
以上の手順により課題の予定時間を見積りスプリントの枠に収まりそうと確認できたと仮定して、「スプリントを開始する」をクリックします。
![スクリーンショット 2020-12-30 15.40.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/cab4cd4d-951b-80c4-9e3e-491d945d3510.png)
ここからは課題に実際にかかった時間の記録方法について見ていきます。

ボード画面で1つ目のサブタスクを進行中（IN PROGRESS）に移動して作業に着手したとしましょう。
![スクリーンショット 2020-12-30 15.45.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/400c6060-4fd1-76e8-134d-a1a6835013eb.png)
2時間作業してあと1時間で終わりそうという状況で作業を中断になった場合を想定すると、実績の入力方法は下記の通りとなります。まず、実績を入力したい課題（サブタスク）をクリックします。
![スクリーンショット 2020-12-30 15.48.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/fd33e810-cc01-3c06-fb13-29000f079be0.png)
そして、この画面の「時間の管理」をクリックします。「所要時間」に実際にこれまでに作業した時間を、「残り時間」にあと何時間かかりそうかという見込みを入力して保存します。
![スクリーンショット 2020-12-30 15.50.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/fc42aa63-0de4-95af-c15d-3caf6dbdbc97.png)

その後、作業を再開して（予定を1時間超過して）2時間作業して完了したとします。課題をDONEレーンに移動した後に下図の通り「所要時間」と「残り時間」を入力しましょう。
![スクリーンショット 2020-12-30 15.56.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/3a1f775b-378b-ff1f-2131-f5de295e24db.png)

このように1つの課題に対して複数の作業ログを登録することが可能です。作業ログは下図のように課題のアクティビティの「作業ログ」から確認できます。
![スクリーンショット 2020-12-30 15.59.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/da6dac35-e6ff-8d11-7b60-120e6fbbe069.png)

スプリントが進んでいき、Storyに紐づくサブタスクは予定と実績の差異こそあれ、すべて完了したとします。しかし、Bugの割り込みがあり、Bugは対応完了下ものの、Taskの課題が完了しなかったという状況を想定して見ます。ボードは下図の通りになります。
![スクリーンショット 2020-12-30 16.10.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/3d160205-e6e4-7e14-1eea-9363577c90f5.png)

この状態でスプリントを振り返ることにしましょう。

### 課題の予定時間と実績時間を比較する
「高度な課題検索」でスプリント対象の課題を絞り込んで表示してみましょう。「Story point estimate」と「Σ消費時間」を比較することで、計画時点から乖離があった課題を把握することができます（わかりやすいとは言えませんが・・・）。
![スクリーンショット 2020-12-30 16.14.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/97bee6a9-6a53-a38f-81cd-a4f4868c944a.png)

計画時点から乖離が大きいタスクは、今後のチームの見積精度向上のために振り返るようにすることで、チームの成長材料になると思います。

## まとめ
本記事では、Jiraの時間管理機能について紹介してきました。きちんと予実比較を繰り返してチームの成長を促したい場合にこの機能の活用を検討してみてください。

※次世代プロジェクトではなくクラシックプロジェクトでは初期見積が使用できたので、理想的に課題の予実比較ができました。近いうちにこの機能が次世代プロジェクトにも実装されることを期待しています。