タスクの相対見積もりによるプロジェクトの可視化を、Backlogの バーンダウンチャート で手軽に実現する

この記事は Backlog Advent Calendar 5日目の記事です。昔はできるだけ避けてたExcel / Googleスプレッドシートが、だんだん好きになってきた中村です。今日は、アジャイル開発でよく使われているタスクの相対見積もりを、Backlogの「 バーンダウンチャート 」上に手軽に適用する方法を紹介します。

1. ガントチャート と バーンダウンチャート

Backlogでは、プロジェクトの状態を視覚的に表現するツールとして、ガントチャートバーンダウンチャート を提供しています。それぞれの特徴は、下記のとおりです。

ガントチャートとバーンダウンチャートの比較表
  特徴 使い所
ガントチャート
  • 直感的に使える
  • タスクごとの状況を把握しやすい
  • タスク間の依存関係・順序関係を表現できる
  • 変化が小さい・予測しやすいプロジェクト
バーンダウンチャート
  • シンプルにプロジェクトの状況を表現でき・更新しやすい
  • 実績を考慮してチャート上に反映できる
 

  • 変化が大きい・予測しにくいプロジェクト

初見で何となく使い方を把握できることから、まずガントチャートを使う人・プロジェクトも多いことでしょう。また、先の見通しが正確にできるプロジェクトならば、予め洗い出したタスクをガントチャート上に表現し、タスクごとにステータスや担当者・期限日などを把握しつつ効率化をはかっていくこともできます。

バーンダウンチャートは、一目見ただけでは使い方が分かりづらい人もいるかもしれません。ただ、基本的には残りの作業(タスク)量とそれが全て終わるまでの時間という、2つのパラメータで表現できるため、非常にシンプルに扱えます。そのため、作業量もしくは時間に変更を加えたい場合もシンプルに更新できます。また、当初1ヶ月で予定していた作業が、この作業スピードでは実は2ヶ月かかりそう、といった実績をチャート上から自然に把握できるようになります。

変化が大きい・予測しにくいプロジェクトに携わることが多いため、私はバーンダウンチャートを第一に検討することが多いです。もちろん、バーンダウンチャートだけで完結させる必要はなく、タスク間の依存関係などを考慮する必要がある場合は、オプションとしてガントチャートなどを用意することもあります。

2. 絶対見積もりと相対見積もり

次に、タスクの見積もり方法として、以下の2つを紹介します。

  • 絶対見積もり:人日・人月というように、タスクを直接見積もる方法
  • 相対見積もり:あるタスクを1として、そのタスクと相対的な大きさを見積もる方法

絶対見積もりと相対見積もり絶対見積もりと相対見積もり

相対見積もりの単位は何でもいいのですが、ポイントと呼ぶことが多いようです。また、相対見積もりでも、最終的には絶対的な数値、つまりタスクの作業時間であれば人日などに落とし込む必要はあります。

では、そのような手間をかけてまで相対見積もりが必要な理由は何でしょう?以下の2点が大きな理由だと考えています。

  • 見積もりの結論を合意しやすい
  • 見積もりを更新しやすい

一つは、絶対見積もりは人によってぶれが出やすいけれど、相対見積もりでは大体の基準で合意しやすいという点があげられます。例えば、タスクAに5人日かかるのか、8人日かかるのかは、はたまたそれ以上かかるのかは、いくら話し合っても結局のところ答えが出ないことが多いでしょう。ですが、タスクAとタスクCは大体同じぐらいの大きさ・同じぐらい時間がかかりそうだというのは、合意しやすいはずです。

(相対見積もりから絶対見積もりへの変換のときに、1ポイントを何人日にするのかは、同様に議論になることはあります。ただ、相対見積もり時には、大きさの比較・ポイント付けと、そのポイントが何人日になるのかと議論を分けている分だけ、今考えるべき議論に集中しやすくなります。また、後述する更新の容易さという点も含めて、「何人日にするのかはいったん仮で決めておき、後からさくっと更新しよう」という流れにもなりやすく、結果として見積もりを早く終えることができるようになります。)

相対見積もりの利点 - 見積もりの結論を合意しやすい相対見積もりの利点 – 見積もりの結論を合意しやすい

もう一つの理由は、後から見積もりを更新しやすいということです。ここで、タスクAを実際に作業したところ、8日かかったとしましょう。絶対見積もりでタスクAを5日かかると予測していた場合、本来ならタスクCなども5日から8日に延ばす必要があります。ただ、人間の心理的にこのような延ばし方を避ける傾向があることや、他のタスクの見積もりを修正しすると再計算が面倒なため、結果として「タスクCは5日のままで大丈夫だろう」となりがちです。

一方、相対見積もりを用いていた場合、1ポイントのタスクAが5日から8日になったのだから、同様に1ポイントのタスクCも8日だということを、自然に見積もり更新できます。また、合計の計算も、単純な掛け算で計算できます。全体でかかる人日が急に増えるため戸惑うこともあるかもしれませんが、タスクの相対的な大きさが変わっていないのであれば、8日かかったタスクAと同程度のタスクCもまた8日かかる可能性が高いのです。

相対見積もりの利点 - 見積もりを更新しやすい相対見積もりの利点 – 見積もりを更新しやすい

3. 相対見積もりを バーンダウンチャート で表現

Backlogのバーンダウンチャートは、絶対見積もり・相対見積もり双方で利用できます。実のところ、バーンダウンチャートの説明では絶対見積もりを想定していますが、バーンダウンチャートには相対見積もりの方が相性がいいと考えています。相対見積もりの利点の一つである「見積もりを更新しやすい」という点は、バーンダウンチャートが望まれる「変化が大きいプロジェクト」でより必要となってくるからです。

相対見積もりを使う方法は簡単です。通常は絶対見積もりの値を入れる「予定時間」の項目に、代わりにポイント数を入れるだけです。

相対見積もりの実現方法相対見積もりの実現方法

例えば、上記で取り上げた「1ポイント:5日、総ポイント数4ポイント=20日」の例を実際に課題上に起こしてみると、バーンダウンチャートは以下のようになります。

バーンダウンチャート の実例 – プロジェクト初期

この後、想定通り1ポイントのタスクAが5日で終わったときは、バーンダウンチャート上にも理想線と同様の推移を示すことが分かります。

バーンダウンチャートの実例 - 想定どおりにタスクが消化できた場合バーンダウンチャートの実例 – 想定どおりにタスクが消化できた場合

ただし、1ポイントが想定より多い8日で終わった場合(そして悲しいかな、実際のプロジェクトでは想定以上に時間がかかることはよくあるお話…)、バーンダウンチャートは以下の推移を示します。ここで、「慣れてきたら早くなるし、3日分のずれだから何とかなるだろう」のように、当初の計画・想定に固執するのはやめましょう。その代わり、実績ベースで計画を調整する、すなわち期間を延ばす or スコープを小さくする、といった対応を検討するのが定石です。

このとき、相対見積もりで考えているのであれば、個々のタスクが遅くなったとしても、「予定時間」の項目に入れた値は変更する必要がありません。一方、絶対見積もりで考えていて「予定時間」に文字通りの予定日数を入れていた場合、その他のタスクの予定時間を変更すべきか否か、などちょっと困ったことになります。このことからも、相対見積もりが変更に強いということが分かると思います。

バーンダウンチャート の実例 - 想定どおりにタスクが消化できなかった場合バーンダウンチャート の実例 – 想定どおりにタスクが消化できなかった場合

なお実際のプロジェクトでは、慣れやその他要因によって、タスクの消化スピードが早くなることはあります。ただ、その場合も早くなるといいなぐらいに考えておき、チャート上に実際に早くなったという軌跡が見えてから計画に組み込んでいくのがいいでしょう。

4. さらに複雑なプロジェクトでは・・・

Backlogのバーンダウンチャートは、課題と連動して自動更新されるため、非常に手軽で使いやすいものです。ただ、プロジェクトによっては、標準のバーンダウンチャートよりもっと表現力がある、カスタマイズできるツールを求めたいときがあります。

ここまで、「変化が大きい・予測しにくい」領域のプロジェクトを対象として、その中でバーンダウンチャートや相対見積もりの有用性を紹介してきました。ですが、変化という中にも、実は下記の2つの要素が含まれています。

  • スコープ:作るべき対象の範囲
  • チームの生産性:チームがタスクを消化するスピード

上記の要素を、別々に捉えたほうが考えやすい場面もあります。例えば、チームの生産性・タスクを消化するスピードは想定通りでも、スコープの方が際限なく膨らんでいった場合を考えてみます。この場合、バーンダウンチャートにプロットしても、いつまでたっても思うようにバーンダウンしないというグラフになります。バーンダウンチャートでは、両方の要素を同一に扱っているためです(そのために、シンプルになっているという側面もありますが)。

このようなケースでは、スコープとチームの生産性は別に捉えて、それぞれに対して対処していきたいと思うことでしょう。このようなときは、バーンアップチャートを反対にした、バーンアップチャートがよく用いられます。バーンアップチャートは現在のBacklogでは提供していないので、私はよくGoogleスプレッドシートを使います。

バーンアップチャートの実例バーンアップチャートの実例

上記のバーンアップチャートは、私が支援していたプロジェクトの実例のチャートです。このチャートでは、黒色の太い線と、青色の右斜め上に傾いた線の2種類が描画されています。黒色の線がスコープを表し、青色の線がチームの生産性・タスクの消化スピードを表しています。青色の線が黒色の線と交わるときが、プロジェクトの完了タイミングというわけです。

このプロジェクトでは、当初スコープの範囲内とするかどうか悩んでいた機能があったのですが、2イテレーション後にその機能を入れることにしました。そのことによって、黒色の線であるスコープが、一気に増えていることが分かります。一方、チームの生産性は安定しているため、スコープの変動を主に注意しておけば先の計画が立てやすいことが分かります。

(なお青色の薄い線は、最悪の場合・最良の場合の生産性を表す補足線です。この補足線も、それまでのタスクの消化スピードから自動的に計算して描画しています。こういう具合に、自分たちが見たいものに応じてカスタマイズできるのも、Googleスプレッドシートの魅力です。)


今回は、Backlogのバーンダウンチャート上に、相対見積もりを反映させる方法を紹介しました。今回のやり方は、同僚が前職時代にやってた方法を教えてもらったのですが、聞いたとき目から鱗に感じ、ぜひこの機会に紹介したいと思っていたところでした。

みなさんのBacklog活用例も、ぜひ Backlog Advent CalendarJBUG (Japan Backlog User Group) などでお聞かせください。それでは、よいBacklogライフを!

より良いチームワークを生み出す

チームの創造力を高めるコラボレーションツール

製品をみる