Issue Tracking Systemの利用パターン

ツールは手段です。ツールを使用するには目的が伴うのが普通です。
本記事では目的に応じたIssue Tracking Systemの使い方を示したいと思います。

Issue Tracking Systemを導入する目的

Issue Tracking Systemを導入する目的はなんでしょう?

  1. 要件を管理したい
  2. タスクを管理したい
  3. 報告書の元ネタにしたい
  4. 情報を共有する場にしたい
  5. 進捗を管理したい
  6. 課題を管理したい

いろいろ挙げられると思いますが、ここでは次の3点に絞ります。

  1. 要件管理
  2. 要件 + タスク管理
  3. 課題管理

順番に見ていきます。

その前に前置き

要件という用語はユーザーストーリーとして置き換えてもらっても構いません。
ざっくりと次のようなイメージをしてもらえば良いでしょう。

要件(ユーザーストーリー)
お客さん*1が望んでいること、お客さんに提供する価値
タスク
要件を実現するためにすべきこと、TODOと言い換えても可

もうちょっと前置き

向いているツールに(?)がついてるのは使用経験がないので憶測で書いています。*2
フィードバックがあれば歓迎しますのでお願いします。

「要件管理パターン」

プロジェクトの要件だけを管理するパターンです。
詳細なタスクまではチケットにしません。

文脈
  • 要件の変更が激しい
  • タスクが細かすぎる
  • 具体的な作業はアナログで管理したい
解説

タスクが細かすぎてチケットを作成するコストが高くなってしまう場合に有効です。
要件の変更、追加などに対応するため、1つ1つの要件は比較的小さくなるでしょう。
作業のトラッキングリポジトリのコミットコメントなどを活用します。Redmineのようにチケットとコミットを関連付ける機能を持っているツールであると助かります。

メリット
  • チケットにかけるコストが低い
  • 工夫次第で様々に管理できる
  • 要件しか乗らないのでお客さんとのやり取りにも使いやすい
デメリット
  • タスクが漏れる可能性がある
    • (漏れても気づかないリスク)
  • ツールを見ただけでは要件のステータスを把握できない
向いているツール
  • Pivotal Tracker ◎
  • JIRA (?)
  • Redmine+Backlogsプラグイン(タスクボードは使わない) ○
  • Trac (?)
  • TFS (?)
  • Backlog △

「要件 + タスク管理パターン」

要件とタスクを管理するパターンです。

文脈
  • やることが詳細まで決まっている
  • 作業を抜け漏れなく管理したい
解説

要件はタスクから積み上げられるためざっくりとした題名になりがちです。そのため要件のチケットを終了させるタイミングが難しく、誰のどういう判断基準によって終了と見なすのかチーム内でしっかりと合意する必要があります。
タスクはすべてチケットになっているため外部の人が見た時も状況把握の手助けになります。あとどれだけの作業が残っているのかもメンバー間で認識しやすくなります。*3
またデジタル上でタスク管理する利点として、バーンダウンチャートなどを自動で作成してくれるツールも活用できます。
ちなみに要件とタスクは階層関係になるためチケットも親子関係で作られることが望まれます。*4

メリット
  • 作ったタスクが漏れることがなくなる
    • アナログだと消えたり忘れられたりどこかに飛んでいってしまうリスクがある
  • バーンダウンチャートなどツールによる支援も活用できる
デメリット
  • チケットを作成してメンテナンスするコストが高い
  • 要件を終了させるタイミングが難しい
  • 1つ1つの要件が大きくなりがちなため要件間の重複が発生しやすい
向いているツール

「課題管理パターン」

課題を管理するパターンです。一般的にバグトラッキングと言えばこの使い方になります。
課題と書きましたが障害やバグと言い換えても良いでしょう。

文脈
  • バグをワークフローに沿って管理したい
解説

上述の2パターンと比較すると目的はより明確です。
1つ1つのバグを記録し、解決するためのワークフローを提供します。

メリット
  • 目的が明確であるためツールを選ばない
  • バグを記録するだけなのでチケットの粒度に悩まない
デメリット
  • ツールが多すぎて迷う
向いているツール
  • JIRA (?)
  • Redmine
  • Trac
  • Mantis (?)
  • Bugzilla (?)
  • 影舞 (?)
  • Backlog (?)

「要件管理パターン」と「要件+タスク管理パターン」の関係

「要件管理パターン」はタスクの管理をアナログな方法によって解決することが期待されます。アナログな方法はチームの工夫次第で様々な取り組みをしてよいでしょう。
一方で「要件+タスク管理パターン」はデジタル上でタスクを管理することにより、確実なタスクのトラッキングを可能にします。Issue Tracking Systemと銘打つツールですからトラッキングは重要な要素です。厳密に1つのタスクも取りこぼせない詳細な管理をしたい場合は「要件+タスク管理パターン」が有効でしょう。

パターンの組み合わせ

おそらく「課題管理パターン」はどのプロジェクトでも必須だと思われます。
そのうえで、必要に応じて「要件管理パターン」もしくは「要件+タスク管理パターン」を組み合わせるようになるでしょう。

まとめ

冒頭にも書きましたがツールは手段です。目的に応じた使い方をみなさんそれぞれで考えてみてください。
Enjoy!

*1:もしくはユーザー

*2:というかRedmineしか使ってないユーザーの主観なのでアテにしないでください

*3:要件管理パターンの場合はこれをアナログなタスクボードによって解決します

*4:またはそれに類する関係