ユニファ開発者ブログ

ユニファ株式会社プロダクトデベロップメント本部メンバーによるブログです。

バーンダウンチャートにはどんな数字を含めるべきか?

スクラムマスターの渡部です。

スクラムでは、プロジェクトの進捗管理や問題の把握にバーンダウンチャートを使うのが良い(相性が良い)と言われています。

私のチームもスクラム開発の例に漏れずバーンダウンチャートを使用しているのですが、導入当初、少し悩んだことがありました。

それは、「バーンダウンチャートに含めるべき数字とは何か?」ということです。

今回の記事では、私自身の失敗と、「こう考えてやっているよ!」ということをお伝えできればと思います。

本記事で解説する内容
  • バーンダウンチャートに含めるべき数字とは何か?
想定読者
  • 開発で、既にバーンダウンチャートを使われている方(もしくは、使おうとしている方)

どんな悩みを抱えていたのか?

まず、バーンダウンチャートとは、縦軸に全タスクの残り時間(ストーリーポイントなど)を置き、横軸を期間(スプリントなど)で区切ったチャートです。

f:id:unifa_tech:20190716111532p:plain
バーンダウンチャートの例

スクラムの教科書では、「チームがやるべき作業を全てバックログに積むべし」との教えがありましたので、 プロジェクト内/外問わず、全ての作業をバックログにいれ、見積もりをして、完了したらその分、チャートをバーンダウンさせていました。

しかし、2〜3スプリントも完了するかどうかというときに、ふと疑問が生じました。

「元々予定してなかったタスクを後から追加して、それで着地予想は正確になるのか?」と。

次のセクション以降では、上記について私が考えたことを説明していきます。

以降の説明で使用する前提

  • プロジェクトで必要な全タスクの見積もり合計:100pt
  • チームが1スプリントで完了できるポイント数:10pt
  • 既存サービスの運用・Bug修正・その他調査系のタスクは「プロジェクト外タスク」と呼称
  • 過去3スプリントの平均ベロシティを計算し、予測線(赤色)としてチャートに表示

パターンA:プロジェクト外タスクは一切無し

まずは、3スプリント経過時点でチャートに予測線を引いてみます。

予測

f:id:unifa_tech:20190716112056p:plain
パターンAの予測

チームの3スプリント平均が10ptですので、今後も10ptずつ完了されていくと仮定すると、チャートは上記のようになります。 では、時間を進めて結果を見てみましょう。

結果

f:id:unifa_tech:20190716112207p:plain
パターンAの結果

このパターンでは、特に問題は見られませんでした。

パターンB:プロジェクト外タスク有り(2pt / スプリント)

次に、1スプリントごとに2ptのプロジェクト外タスクが追加されるパターンで見てみたいと思います。

予測

f:id:unifa_tech:20190716112512p:plain
パターンBの予測

追加されたプロジェクト外タスクはバックログに追加していますので、全タスクの見積もり合計が増えています。 今回も、3スプリント平均は10ptですから、今後も10ptずつ完了されていくことは妥当に思えますので、予測線はスプリント毎に10pt完了で表示しています。

とすると、3スプリントを終えて残り76ptですので、スプリント11にはプロジェクトは終えられるでしょうか? 時間を進めて結果を見てみます。

結果

f:id:unifa_tech:20190716112834p:plain
パターンBの結果

なんと、予想から2スプリント後ろにずれてしまいました。何故でしょうか?

ここで、チャートに表示している数字の内訳を見てみたいと思います。

f:id:unifa_tech:20190716113428p:plain
バーンダウンチャートの内訳

そうです。 チームが完了していた10ptの内、8ptしか、プロジェクトで必要なタスクを完了できていないにも関わらず、10pt完了する予測にしてしまっていたことが原因でした。

試しに、8ptずつ完了される想定でチャートを引き直して見ます。

予測(8ptずつ完了)

f:id:unifa_tech:20190716113840p:plain
パターンBの予測(8ptずつ完了想定)

スケジュールは予想と実績で一致していますので、これであれば、より正確に予想ができそうです。

パターンC:プロジェクト外タスク有り(5pt / スプリント)

念の為、極端な例として、1スプリントごとに5ptのプロジェクト外タスクが追加されるパターンで予測と結果を見てみたいと思います。

予測

f:id:unifa_tech:20190716114029p:plain
パターンCの予測

結果

f:id:unifa_tech:20190716114113p:plain
パターンCの結果

スケジュールについては予想と結果が一致していますので、問題は解決できたと思います。

ですが、予測時に、実績と予測の線の傾きが異なりすぎて、直感的にイメージしにくく、他の違和感にも気づきにくいチャートになってしまっています。

これは、実績線ではプロジェクト内/外の全タスクで完了したポイントを含めているのに対し、予測線ではプロジェクト内タスクのみを含めていることが原因です。

その差を解消するためには、実績線・予測線ともに、プロジェクト内タスクのみを含める必要があります。

パターンD:プロジェクト外タスク有り、プロジェクト内タスクのみ集計

パターンCの問題を解決するため、プロジェクト内タスクのみを含めたチャートで、予測と結果を見ていきたいと思います。

予測

f:id:unifa_tech:20190716115238p:plain
パターンDの予測

結果

f:id:unifa_tech:20190716115450p:plain
パターンDの結果

スケジュールも予測と結果が一致しており、予測線の傾きも直感的にイメージできるものになっているかと思います。

結論

上記でいろいろ試した結果、私はタスクの種類(プロジェクト内タスク or プロジェクト外タスク)によって、バーンダウンチャートに含めるか否かを判断するのが使いやすいかなと考えています。

ルール
  • 下記にはプロジェクト内タスクのみ含める
    • バックログ(見積もり合計)
    • 実績線
    • 予測線
備考

ただ上記ルールにすると、プロジェクト外タスクにどれだけチームのリソースを費やしているのかがわかりませんので、次のようなグラフも併用すると良いと思います。

f:id:unifa_tech:20190716121229p:plain

横軸にスプリント、縦軸にポイント数を置き、スプリント毎で完了されたポイントの内、プロジェクト内or外タスクがどれだけあったのか?また、どのように推移しているかを見えるようにしたものです。

さいごに

私のチームでは、上記のように考えてデータの見える化に努めていますが、 「もっと良いやり方あるよ!」とか「こんなツール使うと便利だよ!」等ありましたら、ぜひぜひコメントで教えていただけると嬉しいです。

もしくは、一緒に働きながらカイゼンしていきませんか?

ユニファでは、「世界中の家族コミュニケーションを豊かにする」ことに共にチャレンジしていく新たな仲間を積極的に募集しています!

recruit.jobcan.jp