Azure DevOpsでのPBI状態管理
ScrumプロセスのPBI状態
Azure DevOpsを利用するときはProcessをAgile/Scrum/CMMIと選べるのですが、自分はScrumを使うことが多いのでScrum前提で書きます。Scrum workflow statesではStateについて以下のように説明されています。
Approved, Committedって単語がいまいち聞き慣れないのですが、自分は以下の解釈のもと使用しています。
- Approved ... POはそのアイテムをやる気になっている
(New状態は誰かが勝手に起票しただけでPOはまだやるとは言っていない、ボツになる可能性もある) - Committed ... 開発チームはPOと固い契を交わしてやることを約束した
(つまりは、スプリント計画で合意した)
ところが実際にやってみるとこれだけじゃ状態が足りない気がしてきます。
Readyであるか否か
Scrumに置いてスプリント計画を成立させるためにはPBIをReadyな状態にする必要があります。
上記の記事からの一部抜粋ですが、ReadyなPBIであるためには次のようなことが満たされている必要があります。
- 開発チームによって見積もられている
- 受け入れ基準が定義されている
経験上おわかりかもしれませんが、見積には相応の時間を要します。そして見積ることのできるだけの受け入れ基準、前提条件を整理することにもそれなりに時間を要します。Scrumではそれはバックログリファインメントというアクティビティを通じて行われます。
つまりは、Approvedであっても
- やる気はあるがまだリファインメントされていなくてReadyではない
- Readyになったのでいつでも着手可能
という2つの状態があると考えられます。
完了の意味
Scrumにおいて完了は開発チームの独自判断では決められません。POによる受け入れ確認を以て完了となります。したがってCommitted -> Doneの遷移はPOによって行われるべきです。
一方で開発者としてやれることはやった、あとはPOのレビューを受けるだけ、という状態も存在することでしょう。POとしても開発者自身がまだ終わっていないものをレビューしても時間がもったいないと言うところもあるので、どれがレビュー可能な状態のものなのかは知りたいところです。
仕掛中なのか未着手なのか
これはあまり重要ではないかもしれません。しかし一般的に進捗を測る上で
- 未着手
- 仕掛り
- 完了
3段階で把握されることも多いでしょう。
Boardsを使った状態把握
Azure DevOpsには各PBIの状態をカンバンのように管理するためのBoardsというビューが用意されています。
Boardsは基本的にはプロセスのステータス(New, Approved, Committed, Done)をそのまま表現しているのですが実はカスタマイズすることができます。
Doing/Done
列をDoing/Doneに分けると言う設定項目があります。
これを利用すると
- Approved-doing ... 絶賛リファインメント中
- Approved-done ... リファインメントが終わってReady
- Committed-doing ... 未着手 or 仕掛り中
- Committed-done ... 開発者としては完了(POレビューするだけ)
という運用が可能です。
Boad Columnのカスタム
列(Column)は実は自由に増減できます。
下図ではReadyというColumnを追加しています。
ColumnにはどのStateがマッピングされるかを設定します。この例では
- Col:Approved は State=Approved
- Col:Ready も StateApproved
と設定した例です。
Committedの未着手/仕掛り/開発完了も同じように設定してみましょうか。
結果としてこのような7つのColumnが出来上がりました。
一覧管理
BoardsはPBIの数が少ないうちは良いのですが、プロダクトによってはPBIの数は100を超えることも珍しくないでしょう。そのようなケースでBoardsはあまり使い勝手が良いとは言えません。
そこで多くの人はBacklogsビューを使うかと思います。
ところがこのビューでは先程のBoardのColmun情報は表示されなくてわからないのです。しかし安心してください、Colmun Options
で一覧に表示する項目をカスタマイズすることが可能です。
上記の様にBoard Column
という項目を表示対象に追加してみましょう。
Backlogsビューからも確認できるようになりました。
なお、同様のことはQueryでも可能なのでBacklogsビューで物足りない場合は独自のQueryを書いて運用してみてください。
結び
いかがでしたでしょうか。本エントリでは以下のことについて述べました。
- Scrumプロセスの標準の状態管理について
- Board Columnで擬似的なStateの追加することができる
- Board ColumnをBacklogsビューに表示
よりハードなカスタマイズとしてはPBI/BugのStateそのもを変更することも可能ですが、それについては別の機会としたいと思います。
Discussion