Jiraの活用事例　～スクラム初心者編～

この記事は株式会社富士通システムズウェブテクノロジーが企画する[いのべこ夏休みアドベントカレンダー 2020](https://qiita.com/jugemsan/items/5761773308fb1df0c23a)の32日目!?の記事です。本記事の掲載内容は私自身の見解であり、所属する組織を代表するものではありません。

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

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

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

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

参考までに、本記事は下記の続編の位置付けです。

- [Jiraの活用事例　～課題管理編～](https://qiita.com/ikedahideya/items/b21c535a7db0aa03395c)
- [Jiraの活用事例　～スケジュール管理編～](https://qiita.com/ikedahideya/items/572321b4c7d07e5d59c5)

### 対象とするシステムエンジニアの業務
これまでの連載ではアジャイルとは程遠いシステムエンジニア業務をあえて対象としてきましたが、本記事ではスクラムにチャレンジしてみようというシステムエンジニアを対象にJiraの活用方法を紹介してみたいと思います。

※本記事ではスクラムについての詳しい説明は省きますが、なんとなくイメージは伝わるように心がけたつもりです。

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

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

Jira本家サイト（https://www.atlassian.com/ja/software/jira ）から申し込めばすぐに使い始められます。
![image01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/e8976aba-2efc-3113-dc49-9a82744d302f.png)
上記ページより「無料で入手する」をクリック（以下省略）

### スクラムプロジェクトを作成する
Jiraを使う準備が完了したら新規プロジェクトを作成します。「プロジェクトを作成」画面で必要な情報を入力します。満を持して、テンプレートは「次世代テンプレート」の「スクラム」を選択します。
![image02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/52680fdc-411c-a132-9e18-277c02dc3165.png)
入力が完了したら「作成」をクリックして始めていきましょう。

## スクラムのおさらい
スクラムは、プロダクト開発をアジャイルにやりたいと考えたときに、方法論として最もポピュラーな選択肢だと思います。筆者はスクラムが何かを要約できるほどの表現スキルを持ち合わせていませんが、Jira活用事例を説明するための必要最小限のことについて記載したいと思います。

- スプリントという短い周期（1週間、2週間が多い）でリリース可能なプロダクトをインクリメンタルに作る
- プロダクトが提供したい価値をリストアップした課題リストをプロダクトバックログと呼ぶ
- スプリントの流れ
  - スプリント開始前にスプリントプランニングで作業タスクの明確化と見積りを行う
  - 日々、作業タスクを完了させていく
  - 毎朝デイリースクラム（朝会）でチーム一人ひとりの作業状況を共有する
  - スプリント最終日に成果物をお披露目するスプリントレビューを開催する
  - スプリントの最後にスプリントレトロスペクティブ（振り返り会）を開催する
- スプリントとは別の時間軸でプロダクトバックログリファインメントを開催し、プロダクトバックログの棚卸・ブラッシュアップを行う

## スクラムの流れに沿ったJiraの使い方
### プロダクトバックログを作成する
どんなプロダクトを提供したいかアイデアが整理できてきたら、プロダクトバックログを作成します。左メニュー「バックログ」をクリックします。
![image03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/e8935669-f788-4d93-dd49-59f7fb24a9ed.png)
バックログを課題として入力します。次世代テンプレートのスクラムではボードに表示する課題として「ストーリー」「タスク」「バグ」の3種類から選べますが、ここでは「ストーリー」として入力します。私見ですが、使い分けについては後述します。バックログは実現したい優先順位で並べておきます。
![image04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/7affc8aa-d77c-120b-b9db-79e425190a6d.png)

### スプリントを作成する
バックログ画面の右側の「スプリントを作成」ボタンを押します。スプリント1という枠が表示されます。
![image05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/5eaf9bf0-7c90-536b-d0a7-1013186c9dec.png)
バックログが優先順位で並んでいると仮定すると、上から順にスプリントに入れていきます。バックログの課題をスプリント1の枠にドラッグ&ドロップするだけです。（スプリント枠とバックログの間にあるバーを下にずらすことでも課題をスプリントに入れることができます。これが理想ですが実際にこの機能を活用したことはないです。現実はそれほど単純じゃない。。。）
![image06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/b251407d-80d3-2dab-b994-75f84da6f161.png)
このスプリントの作成までをプロダクトオーナーが実施しておき、後述するスプリントプランニングを迎えます。スプリントプランニングが完了するまではスプリントは開始しません。

### 課題を見積る
スプリントプランニング（ミーティング）では、課題一つひとつについてチーム全員で見積り、課題ごとにストーリーポイントを設定します。

※チーム全員で見積る方法やストーリーポイントの決め方については本記事では割愛します（プランニングポーカー、相対見積、絶対時間見積等）。

ABC-1のストーリーポイントを3と入力してみましょう。課題をクリックすると右側に詳細が表示されるので、その下部のStory point estimateにストーリーポイントを入力します。するとバックログにもストーリーポイントが表示されます。
![image07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/21bdd4a2-6921-74b0-0b26-1d1c18feb538.png)
ABC-2については単純にストーリーポイントを見積れなかったとします。その場合はサブタスクに分割しましょう。課題をクリックして「子課題を追加」ボタンを押しサブタスクを追加していきます。
![image08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/720f3849-4449-019a-6492-d7ccbae8a8b8.png)
サブタスクそれぞれについてストーリーポイントを見積って入力してみましょう。
![image09-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/51ca6404-30b6-4e5d-523a-74e840e724ed.png)
どうやらサブタスクのストーリーポイントの合計値が親課題のストーリーポイントにはならないようです。親課題には改めて足し算したストーリーポイントを入力してもいいですし、忖度した数字を入力しても良いでしょう。いずれにしても親課題すべてのストーリーポイントの値を入力するようにします。

※親課題とサブタスクのストーリーポイントが無関係ということは、応用すると親課題は他の課題との相対見積、サブタスクは作業時間による絶対時間見積といった風に異なる単位とみなして運用ができることを意味します。

![image10-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/b43501cc-afbb-f2d3-5c0f-d8fe934a2b64.png)
スプリントの課題すべての見積入力が完了したら、バックログ画面のスプリント上部に表示されているストーリーポイントの合計値を確認しましょう。その値とチームの過去のスプリントでの実績であるベロシティを比較します。今回の見積りがベロシティよりも小さければ、さらにもう1〜2個の課題をこのスプリントで取り組めるかもしれません。逆に見積りがベロシティよりも大きければ優先順位が低いものをバックログに戻さなければならないかもしれません。このようなことを議論して、本スプリントで取り組むべき課題をチームで合意できたら、「スプリントを開始する」ボタンを押しましょう。
![image11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/16ae725d-c941-ff0f-49c9-63bb1d06502c.png)
スプリントの開始日と終了日を設定して開始します（筆者は時間をピッタリ合わせたい性分なのでカスタムが好み）。するとボード画面が表示されます。

### タスクを消化する
スプリント中はデイリースクラムやタスクが完了した際などのタイミングでJiraのボード画面を見ると便利です。サブタスクを使っている場合には、グループ分けを「サブタスク」にしておくと便利です。
![image12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/fca71e3a-e501-a1df-d073-912fa1a3c390.png)
ボード画面の使い方の詳細は前回までの記事で詳しく説明していますので参考にしてください。ポイントは下記の通りです。

- 次に自分がやるべきタスクを決めて進行中レーンに移動して、自分を担当者に割り当てる（ペア作業を採用している場合でも1人しか選択できないところは少し残念な仕様と思っている）
- 作業が完了したら完了レーンに移動する

### スプリントの状況を把握する
Jiraの次世代テンプレートではなぜかデフォルトでレポート機能がOFFになっているので、左メニュー「プロジェクト設定」 > 「機能」からレポート機能をONにします。
![image13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/9a64326a-0265-6b41-d637-ca6ba9e80826.png)
すると左メニューに「レポート」が表示されるようになります。クリックすると表示できるレポートが表示されます。
![image14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/d7b99b67-2e37-9fd2-dcdf-44b2e3fb7f0a.png)
この画面から「スプリントバーンダウンチャート」を見てみましょう。
![image15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/050e78ec-36d8-e2a3-fff5-9b654fbbf1b5.png)
バーンダウンチャートの「残っている作業」の赤線が、「ガイドライン」のグレー線の下側にあれば順調（前倒し）、上側にあれば遅延しているということがわかります。（ちなみにサブタスクの完了だけではバーンダウンチャートは下がりません。上側にある場合にはスプリント中に完了しない見込みということになるため計画を見直すキッカケになります。

### スプリントを完了する
スプリント作業が完了したら、ボード画面で「スプリントの完了」ボタンを押してスプリントを完了させます。この時、もし完了していない課題がある場合は、次のスプリントを作成してそこに入れるか、バックログの上部に戻すかを選択できます。
![image16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/0c77666f-588b-0f82-8f8e-de21fbc5eb87.png)

### スプリントを振り返る
スプリントの最後に実施するレトロスペクティブ（振り返り会）では、レポートの「スプリントバーンダウンチャート」や「ベロシティレポート」を見ると今後の改善に向けたヒントが得られるかもしれません。

スプリントバーンダウンチャートの下部の「スコープ変更ログ」や「未完了の課題」は、今後チームで見積精度を上げるためのヒントになります。
![image17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/0514c353-fdd0-b716-118a-3cfdea3af168.png)
![image18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/39dab20e-e43f-ce0b-9659-ab539cb7e604.png)
ベロシティレポートからは、チームのベロシティの変動が読み取れるため、安定しない場合などはその理由をチームで話し合うことでベロシティ安定のヒントが得られるかもしれません。
![image19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/a7254e71-aa5e-7c9d-684a-ac748bb7cbe2.png)
また、次回以降のスプリントプランニングでは「ベロシティレポート」からチームのベロシティを知ることができます。

### バックログを棚卸する
スプリント周期とは別の時間軸でバックログ全体のメンテナンスを行うミーティングがスクラムではプロダクトバックログリファインメントとて定義されています。プロダクトをリリースしてユーザが利用し始めると要望やバグなどが舞い込んできます。またスプリントを進めていくと、ユーザに直接価値を提供しない技術的負債への対応（開発者はリファクタリングと言う）といった課題も出てきます。プロダクトバックログリファインメントでは、そういった課題をバックログに追加して優先順位を決めていきます。

このようにスプリントが進んでいくと様々な種類の課題がバックログに入ってくるため、課題を分類しておくことをお奨めします。Jiraの次世代テンプレート「スクラム」では下記3つの課題がデフォルトで定義されていますので、最初はこの世界観に従うと良いと思います。

| 課題の種類 | 説明 |
| --------- | ---- |
| ストーリー | ユーザに新しい価値を提供する新機能等 |
| タスク     | リファクタリングや自動テスト拡充など、ユーザに直接は価値を提供しないが、放置するとベロシティ低下を招くもの |
| バグ       | リリース後に発覚したバグ |

![image20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526269/8689cb7c-8acb-e9e3-c076-24c97b5f1c11.png)

プロダクトのライフサイクルにもよりますが、スプリントで取り組む課題のストーリー（緑）、タスク（青）、バグ（赤）の割合（例えば初版リリース後で継続的に新規機能を追加している段階なら 60% : 30% : 10% など）を観察すると、プロダクトの品質、ひいては、ベロシティを維持するヒントになると思います。

## まとめ
本記事では、Jiraの次世代テンプレート「スクラム」のバックログ・スプリント、バーンダウンチャート・ベロシティレポート、3種類の課題によるバックログの分類について紹介しました。Jiraを使ってスクラムを実践する上での参考になれば幸いです。