スクラムマスターの渡部です。
スクラムでは、プロジェクトの進捗管理や問題の把握にバーンダウンチャートを使うのが良い(相性が良い)と言われています。
私のチームもスクラム開発の例に漏れずバーンダウンチャートを使用しているのですが、導入当初、少し悩んだことがありました。
それは、「バーンダウンチャートに含めるべき数字とは何か?」ということです。
今回の記事では、私自身の失敗と、「こう考えてやっているよ!」ということをお伝えできればと思います。
本記事で解説する内容
- バーンダウンチャートに含めるべき数字とは何か?
想定読者
- 開発で、既にバーンダウンチャートを使われている方(もしくは、使おうとしている方)
どんな悩みを抱えていたのか?
まず、バーンダウンチャートとは、縦軸に全タスクの残り時間(ストーリーポイントなど)を置き、横軸を期間(スプリントなど)で区切ったチャートです。
スクラムの教科書では、「チームがやるべき作業を全てバックログに積むべし」との教えがありましたので、 プロジェクト内/外問わず、全ての作業をバックログにいれ、見積もりをして、完了したらその分、チャートをバーンダウンさせていました。
しかし、2〜3スプリントも完了するかどうかというときに、ふと疑問が生じました。
「元々予定してなかったタスクを後から追加して、それで着地予想は正確になるのか?」と。
次のセクション以降では、上記について私が考えたことを説明していきます。
以降の説明で使用する前提
- プロジェクトで必要な全タスクの見積もり合計:100pt
- チームが1スプリントで完了できるポイント数:10pt
- 既存サービスの運用・Bug修正・その他調査系のタスクは「プロジェクト外タスク」と呼称
- 過去3スプリントの平均ベロシティを計算し、予測線(赤色)としてチャートに表示
パターンA:プロジェクト外タスクは一切無し
まずは、3スプリント経過時点でチャートに予測線を引いてみます。
予測
チームの3スプリント平均が10ptですので、今後も10ptずつ完了されていくと仮定すると、チャートは上記のようになります。 では、時間を進めて結果を見てみましょう。
結果
このパターンでは、特に問題は見られませんでした。
パターンB:プロジェクト外タスク有り(2pt / スプリント)
次に、1スプリントごとに2ptのプロジェクト外タスクが追加されるパターンで見てみたいと思います。
予測
追加されたプロジェクト外タスクはバックログに追加していますので、全タスクの見積もり合計が増えています。 今回も、3スプリント平均は10ptですから、今後も10ptずつ完了されていくことは妥当に思えますので、予測線はスプリント毎に10pt完了で表示しています。
とすると、3スプリントを終えて残り76ptですので、スプリント11にはプロジェクトは終えられるでしょうか? 時間を進めて結果を見てみます。
結果
なんと、予想から2スプリント後ろにずれてしまいました。何故でしょうか?
ここで、チャートに表示している数字の内訳を見てみたいと思います。
そうです。 チームが完了していた10ptの内、8ptしか、プロジェクトで必要なタスクを完了できていないにも関わらず、10pt完了する予測にしてしまっていたことが原因でした。
試しに、8ptずつ完了される想定でチャートを引き直して見ます。
予測(8ptずつ完了)
スケジュールは予想と実績で一致していますので、これであれば、より正確に予想ができそうです。
パターンC:プロジェクト外タスク有り(5pt / スプリント)
念の為、極端な例として、1スプリントごとに5ptのプロジェクト外タスクが追加されるパターンで予測と結果を見てみたいと思います。
予測
結果
スケジュールについては予想と結果が一致していますので、問題は解決できたと思います。
ですが、予測時に、実績と予測の線の傾きが異なりすぎて、直感的にイメージしにくく、他の違和感にも気づきにくいチャートになってしまっています。
これは、実績線ではプロジェクト内/外の全タスクで完了したポイントを含めているのに対し、予測線ではプロジェクト内タスクのみを含めていることが原因です。
その差を解消するためには、実績線・予測線ともに、プロジェクト内タスクのみを含める必要があります。
パターンD:プロジェクト外タスク有り、プロジェクト内タスクのみ集計
パターンCの問題を解決するため、プロジェクト内タスクのみを含めたチャートで、予測と結果を見ていきたいと思います。
予測
結果
スケジュールも予測と結果が一致しており、予測線の傾きも直感的にイメージできるものになっているかと思います。
結論
上記でいろいろ試した結果、私はタスクの種類(プロジェクト内タスク or プロジェクト外タスク)によって、バーンダウンチャートに含めるか否かを判断するのが使いやすいかなと考えています。
ルール
- 下記にはプロジェクト内タスクのみ含める
- バックログ(見積もり合計)
- 実績線
- 予測線
備考
ただ上記ルールにすると、プロジェクト外タスクにどれだけチームのリソースを費やしているのかがわかりませんので、次のようなグラフも併用すると良いと思います。
横軸にスプリント、縦軸にポイント数を置き、スプリント毎で完了されたポイントの内、プロジェクト内or外タスクがどれだけあったのか?また、どのように推移しているかを見えるようにしたものです。
さいごに
私のチームでは、上記のように考えてデータの見える化に努めていますが、 「もっと良いやり方あるよ!」とか「こんなツール使うと便利だよ!」等ありましたら、ぜひぜひコメントで教えていただけると嬉しいです。
もしくは、一緒に働きながらカイゼンしていきませんか?
ユニファでは、「世界中の家族コミュニケーションを豊かにする」ことに共にチャレンジしていく新たな仲間を積極的に募集しています!