- 技術 💻
バーンダウンチャートの作り方(エクセル)|見方7パターンとベロシティ計算
バーンダウンチャートとは、横軸に日付、縦軸に残りの作業量を取り、「期限までに終わりそうか」を1本の折れ線で見る図です。 右下がりの理想線と、日々の残りを結んだ線の2本を重ね、その開き方から進み具合を読み取ります。
この記事では、表計算ソフトに貼るだけで理想線・残り・完了見込み日まで計算されるタブ区切りのシートを用意し、使っている数式をセル番地つきで説明します。線の形7パターンの読み方、同じグラフを Python の matplotlib で描くコード、ベロシティ(1スプリントで完了した量)の計算と範囲での予測、バーンアップチャートとの違いも扱います。
確認環境:Ubuntu 24.04、LibreOffice Calc 24.2.7(数式の検算。Excel 本体ではなく Calc で同じ数式を計算した値を載せています)、Python 3.11.15、matplotlib 3.10.9。Excel の関数の仕様は Microsoft サポートのページで確認しました。
バーンダウンチャートの早見表
| 知りたいこと | 答え |
|---|---|
| 横軸・縦軸 | 横軸は稼働日、縦軸は残りの作業量(ストーリーポイント、時間、件数のどれか1つ) |
| 理想線の式 | 合計 − 合計 ÷ 稼働日数 × 経過稼働日 |
| 残りの式 | 前日の残り − その日の完了 + その日の追加 |
| 稼働日数の求め方 | =NETWORKDAYS(開始日,終了日,休日の範囲) |
| 稼働日を順に並べる | =WORKDAY(前の日,1,休日の範囲) |
| 未来の日付を線に出さない | =IF(日付>今日,NA(),計算式) |
| 線が理想線より上 | 残りが想定より多い。必要な1日あたりの量を計算して手を打つ |
| 線が理想線より下 | 想定より早い。追加できる作業があるかを確かめる |
| ベロシティ | 1スプリントで完了した量の合計。直近3回の平均と最小〜最大の幅で見る |
| バーンアップとの違い | バーンアップは完了の累計と全体量の2本。全体量の増減が見える |
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「バーンダウンチャートの作り方(エクセル)|見方7パターンとベロシティ計算」
作る前に決める3つのこと
| 決めること | 選び方 | この記事の例 |
|---|---|---|
| 縦軸の単位 | ストーリーポイント・残り時間・残り件数から1つ。途中で変えない | ストーリーポイント |
| 期間と稼働日 | 開始日・終了日と、土日以外の休日 | 2026/10/5(月)〜10/16(金)、10/12(月)は休日で9稼働日 |
| 更新の時点 | 毎日同じ時刻に、完了したものだけを数える | 朝会の前に前日分を入力 |
「完了」は、途中まで進んだものを含めず、完了の条件をすべて満たしたものだけを数えます。ここがそろっていると、線の形が素直に読めます。
エクセルに貼って使えるサンプルデータ
次のタブ区切りのブロックを丸ごとコピーして、新しいシートの A1 セルに貼り付けます。数式もそのまま入るので、D列(完了ポイント)とE列(追加ポイント)に毎日の数字を入れるだけで、残りの列が計算されます。
スプリント開始日 2026/10/5 休日(祝日など)
スプリント終了日 2026/10/16 2026/10/12
開始時の合計ポイント 36
稼働日数 =NETWORKDAYS(B1,B2,H2:H3)
今日 2026/10/14
日付 経過稼働日 理想線 完了ポイント 追加ポイント 残り(実際) 残り稼働日 完了累計 スコープ
開始 0 =$B$3 =$B$3 =$B$4 0 =$B$3
=$B$1 =NETWORKDAYS($B$1,A10,$H$2:$H$3) =$B$3-$B$3/$B$4*B10 3 =IF(A10>$B$5,NA(),F9-D10+E10) =$B$4-B10 =IF(A10>$B$5,NA(),SUM($D$10:D10)) =$B$3+SUM($E$10:E10)
=WORKDAY(A10,1,$H$2:$H$3) =NETWORKDAYS($B$1,A11,$H$2:$H$3) =$B$3-$B$3/$B$4*B11 2 =IF(A11>$B$5,NA(),F10-D11+E11) =$B$4-B11 =IF(A11>$B$5,NA(),SUM($D$10:D11)) =$B$3+SUM($E$10:E11)
=WORKDAY(A11,1,$H$2:$H$3) =NETWORKDAYS($B$1,A12,$H$2:$H$3) =$B$3-$B$3/$B$4*B12 5 =IF(A12>$B$5,NA(),F11-D12+E12) =$B$4-B12 =IF(A12>$B$5,NA(),SUM($D$10:D12)) =$B$3+SUM($E$10:E12)
=WORKDAY(A12,1,$H$2:$H$3) =NETWORKDAYS($B$1,A13,$H$2:$H$3) =$B$3-$B$3/$B$4*B13 0 4 =IF(A13>$B$5,NA(),F12-D13+E13) =$B$4-B13 =IF(A13>$B$5,NA(),SUM($D$10:D13)) =$B$3+SUM($E$10:E13)
=WORKDAY(A13,1,$H$2:$H$3) =NETWORKDAYS($B$1,A14,$H$2:$H$3) =$B$3-$B$3/$B$4*B14 6 =IF(A14>$B$5,NA(),F13-D14+E14) =$B$4-B14 =IF(A14>$B$5,NA(),SUM($D$10:D14)) =$B$3+SUM($E$10:E14)
=WORKDAY(A14,1,$H$2:$H$3) =NETWORKDAYS($B$1,A15,$H$2:$H$3) =$B$3-$B$3/$B$4*B15 5 =IF(A15>$B$5,NA(),F14-D15+E15) =$B$4-B15 =IF(A15>$B$5,NA(),SUM($D$10:D15)) =$B$3+SUM($E$10:E15)
=WORKDAY(A15,1,$H$2:$H$3) =NETWORKDAYS($B$1,A16,$H$2:$H$3) =$B$3-$B$3/$B$4*B16 4 =IF(A16>$B$5,NA(),F15-D16+E16) =$B$4-B16 =IF(A16>$B$5,NA(),SUM($D$10:D16)) =$B$3+SUM($E$10:E16)
=WORKDAY(A16,1,$H$2:$H$3) =NETWORKDAYS($B$1,A17,$H$2:$H$3) =$B$3-$B$3/$B$4*B17 =IF(A17>$B$5,NA(),F16-D17+E17) =$B$4-B17 =IF(A17>$B$5,NA(),SUM($D$10:D17)) =$B$3+SUM($E$10:E17)
=WORKDAY(A17,1,$H$2:$H$3) =NETWORKDAYS($B$1,A18,$H$2:$H$3) =$B$3-$B$3/$B$4*B18 =IF(A18>$B$5,NA(),F17-D18+E18) =$B$4-B18 =IF(A18>$B$5,NA(),SUM($D$10:D18)) =$B$3+SUM($E$10:E18)
経過稼働日 =NETWORKDAYS(B1,B5,H2:H3)
完了ポイントの合計 =SUMIF(A10:A18,"<="&B5,D10:D18)
現在の残り =INDEX(F10:F18,MATCH(B5,A10:A18,0))
残り稼働日 =B4-B20
1日あたりの完了(これまで) =B21/B20
1日あたりの必要量(これから) =B22/B23
このペースで終わるまでの稼働日 =ROUNDUP(B22/B24,0)
完了見込み日 =WORKDAY(B5,B26,H2:H3)
理想線との差(プラスは遅れ) =B22-INDEX(C10:C18,MATCH(B5,A10:A18,0))
貼り付けたあとの調整は2つです。
- A10〜A18 と B27 の表示形式を「日付」にする:WORKDAY 関数は日付をシリアル値(日付を表す連番)で返すため、表示形式が標準のままだと 46301 のような数値で表示されます。
- B5(今日)を
=TODAY()に置き換える:毎日開くたびに今日の日付になります。サンプルでは値を確かめやすいように 2026/10/14 に固定しています。
セルの配置
| セル | 内容 | 入力するもの |
|---|---|---|
| B1・B2 | スプリントの開始日・終了日 | 日付を入力 |
| B3 | 開始時の合計ポイント | 数値を入力 |
| B4 | 稼働日数 | 数式 |
| B5 | 今日 | 日付、または =TODAY() |
| H2・H3 | 休日の一覧(足りなければ範囲を広げる) | 日付を入力 |
| A9〜I9 | 開始時点の行(経過0日) | 数式 |
| A10〜I18 | 稼働日ごとの行 | D列・E列だけ入力 |
| B20〜B28 | 見通しの計算 | 数式 |
理想線・残り・残り日数の数式(セル番地つき)
表の部分(10行目の式。18行目までコピーする)
| セル | 数式 | 意味 |
|---|---|---|
| B4 | =NETWORKDAYS(B1,B2,H2:H3) |
開始日から終了日までの稼働日数(土日とH列の休日を除く) |
| A10 | =$B$1 |
1日目は開始日 |
| A11 | =WORKDAY(A10,1,$H$2:$H$3) |
前の行の次の稼働日 |
| B10 | =NETWORKDAYS($B$1,A10,$H$2:$H$3) |
開始日からその日までの稼働日数(経過稼働日) |
| C10 | =$B$3-$B$3/$B$4*B10 |
理想線。毎日同じ量ずつ減り、最終日に0になる |
| F10 | =IF(A10>$B$5,NA(),F9-D10+E10) |
残り。今日より先の日付は #N/A にして線を止める |
| G10 | =$B$4-B10 |
残り稼働日 |
| H10 | =IF(A10>$B$5,NA(),SUM($D$10:D10)) |
完了の累計(バーンアップ用) |
| I10 | =$B$3+SUM($E$10:E10) |
全体量(開始時の合計 + 追加の累計。バーンアップ用) |
NETWORKDAYS の書式は NETWORKDAYS(start_date, end_date, [holidays])(開始日、終了日、休日)で、土日と、3つ目の引数に渡した日付を除いた日数を返します。3つ目の引数は省略でき、セルの範囲で渡せます。サンプルでは、10/5〜10/16 の平日10日から休日の10/12を除いて 9 になります。
NA 関数は引数を取らず、エラー値 #N/A を返します。 Microsoft のサポートページには、折れ線グラフで #N/A のセルを空白として扱い線を途切れさせる表示と、前後の点を線でつなぐ表示の両方が説明されています。未来の日付に 0 を入れると、残りが0になったように線が描かれてしまうため、ここでは NA() を使っています。
見通しの部分
| セル | 項目 | 数式 |
|---|---|---|
| B20 | 経過稼働日 | =NETWORKDAYS(B1,B5,H2:H3) |
| B21 | 完了ポイントの合計 | =SUMIF(A10:A18,"<="&B5,D10:D18) |
| B22 | 現在の残り | =INDEX(F10:F18,MATCH(B5,A10:A18,0)) |
| B23 | 残り稼働日 | =B4-B20 |
| B24 | 1日あたりの完了(これまで) | =B21/B20 |
| B25 | 1日あたりの必要量(これから) | =B22/B23 |
| B26 | このペースで終わるまでの稼働日 | =ROUNDUP(B22/B24,0) |
| B27 | 完了見込み日 | =WORKDAY(B5,B26,H2:H3) |
| B28 | 理想線との差(プラスは遅れ) | =B22-INDEX(C10:C18,MATCH(B5,A10:A18,0)) |
B22 と B28 は、B5 の日付が A10〜A18 の中にある(稼働日である)ことを前提にしています。休日に開く場合は、B5 に直前の稼働日を入れます。
計算結果(LibreOffice Calc で検算)
上のタブ区切りデータを Calc に読み込んで計算させた値です。
| 日付 | 経過稼働日 | 理想線 | 完了 | 追加 | 残り(実際) | 残り稼働日 | 完了累計 | スコープ |
|---|---|---|---|---|---|---|---|---|
| 開始 | 0 | 36 | 36 | 9 | 0 | 36 | ||
| 10/5(月) | 1 | 32 | 3 | 33 | 8 | 3 | 36 | |
| 10/6(火) | 2 | 28 | 2 | 31 | 7 | 5 | 36 | |
| 10/7(水) | 3 | 24 | 5 | 26 | 6 | 10 | 36 | |
| 10/8(木) | 4 | 20 | 0 | 4 | 30 | 5 | 10 | 40 |
| 10/9(金) | 5 | 16 | 6 | 24 | 4 | 16 | 40 | |
| 10/13(火) | 6 | 12 | 5 | 19 | 3 | 21 | 40 | |
| 10/14(水) | 7 | 8 | 4 | 15 | 2 | 25 | 40 | |
| 10/15(木) | 8 | 4 | #N/A | 1 | #N/A | 40 | ||
| 10/16(金) | 9 | 0 | #N/A | 0 | #N/A | 40 |
10/9(金)の次の行が 10/13(火)になり、土日と休日の 10/12 が飛ばされていることが分かります。
| 項目 | 値 |
|---|---|
| 稼働日数(B4) | 9 |
| 経過稼働日(B20) | 7 |
| 完了ポイントの合計(B21) | 25 |
| 現在の残り(B22) | 15 |
| 残り稼働日(B23) | 2 |
| 1日あたりの完了(B24) | 3.57142857142857 |
| 1日あたりの必要量(B25) | 7.5 |
| このペースで終わるまでの稼働日(B26) | 5 |
| 完了見込み日(B27) | 46316(日付の表示形式にすると 2026/10/21) |
| 理想線との差(B28) | 7 |
読み取り方:残り2日で15ポイントを終えるには1日7.5ポイントが必要ですが、これまでは1日あたり約3.6ポイントでした。同じペースなら終わるのは 10/21 で、終了日の 10/16 を3稼働日過ぎます。この数字があると、「残りのうちどれを次のスプリントに回すか」を具体的に相談できます。
グラフにする
- A8〜A18(日付)、C8〜C18(理想線)、F8〜F18(残り)を選びます。離れた列は Ctrl キーを押しながら選びます。
- 折れ線グラフを挿入します。
- 縦軸の最小値を 0 にし、グラフの題名にスプリント名を入れます。
- 理想線は破線、残りの線はマーカーつきの実線にすると見分けやすくなります。
線の形7パターンの見方と次に打つ手
9稼働日・合計36ポイントのスプリントを想定した数値の例を添えています(理想線は 36→32→28→…→0)。
| No | 線の形 | 残りの例(開始→最終日) | 読み取れること | 次に打つ手 |
|---|---|---|---|---|
| 1 | 理想線に沿って下がる | 36, 32, 29, 24, 20, 15, 12, 8, 4, 0 | 見積もりと進み方が合っている | 今の進め方を続ける。うまくいった理由をふりかえりで言葉にしておく |
| 2 | ずっと理想線の上を走る | 36, 34, 32, 29, 27, 24, 22, 19, 17, 14 | 作業量が多い、または見積もりが小さい | 必要な1日あたりの量を出し、優先度の低いものを次へ回す相談を早めにする |
| 3 | ずっと理想線の下を走る | 36, 30, 25, 20, 15, 11, 7, 3, 0, 0 | 見積もりに余裕があった、または作業が少ない | 優先度の高い項目を追加できるか持ち主と相談する。次回の見積もりに反映する |
| 4 | 途中で横ばいが続く | 36, 33, 30, 30, 30, 30, 26, 22, 18, 14 | 待ちや調査で進みが止まっている | 止まっている原因を朝会で1つに絞り、取り除く担当を決める |
| 5 | 途中で上に跳ねる | 36, 32, 28, 34, 30, 26, 22, 18, 14, 10 | 作業が追加された、または見積もりを増やした | 追加の分だけ何かを外すかを決める。追加の量はE列に分けて記録する |
| 6 | 終盤に急に下がる | 36, 36, 35, 35, 34, 33, 30, 20, 8, 0 | 完了の入力や確認が最後にまとまっている | 項目を小さく分け、できた順に完了まで持っていく |
| 7 | 階段のように下がる | 36, 36, 36, 24, 24, 24, 12, 12, 12, 0 | 1つひとつの項目が大きい | 1〜2日で終わる大きさに分割する |
サンプルデータの線(36, 33, 31, 26, 30, 24, 19, 15)は、No.2 と No.5 の組み合わせです。10/8 に4ポイントが追加されて線が上に跳ね、その後は理想線と同じ傾きで下がっていますが、差は7ポイントに広がっています。
形を見分けるための数字
| 見る数字 | 式 | 目安 |
|---|---|---|
| 理想線との差 | 残り − 理想線(B28) | プラスが2日分の完了量を超えたら相談の合図にする |
| 必要量とこれまでの比 | B25 ÷ B24 | 1を超えると、今のペースでは届かない |
| 横ばいの日数 | 完了が0の日が続いた数 | 2日続いたら原因を確かめる |
| 追加の合計 | E列の合計 | 開始時の合計に対する割合を、ふりかえりで確かめる |
目安の数値はチームで決めてかまいません。大事なのは、線を見て感想を言うのではなく、数字で次の一手を決めることです。
Pythonのmatplotlibで同じグラフを描く
表計算ソフトを使わずに、同じデータからグラフの画像を作るコードです。稼働日の並びと理想線も Python で計算しているので、表の値との突き合わせにもなります。
pip install matplotlib
python3 burndown.py
from datetime import date, timedelta
import matplotlib
matplotlib.use("Agg") # 画面の無い環境でも画像に保存できるようにする
import matplotlib.pyplot as plt
plt.rcParams["font.family"] = "Noto Sans CJK JP" # 手元にある日本語フォント名に置き換える
start, end = date(2026, 10, 5), date(2026, 10, 16)
holidays = {date(2026, 10, 12)}
total = 36
done = [3, 2, 5, 0, 6, 5, 4] # その日に完了したポイント(入力済みの日まで)
added = [0, 0, 0, 4, 0, 0, 0] # その日に追加されたポイント
# 稼働日(土日と休日を除く)を並べる
days = []
d = start
while d <= end:
if d.weekday() < 5 and d not in holidays:
days.append(d)
d += timedelta(days=1)
n = len(days)
labels = ["開始"] + [f"{d.month}/{d.day}" for d in days]
ideal = [total - total / n * i for i in range(n + 1)]
actual = [total]
for x, a in zip(done, added):
actual.append(actual[-1] - x + a)
print("稼働日数:", n)
print("理想線:", [round(v, 1) for v in ideal])
print("残り(実際):", actual)
fig, ax = plt.subplots(figsize=(8, 4.5))
ax.plot(labels, ideal, linestyle="--", color="gray", label="理想線")
ax.plot(labels[: len(actual)], actual, marker="o", color="tab:blue", label="残り(実際)")
ax.set_ylim(bottom=0)
ax.set_xlabel("日付")
ax.set_ylabel("残りポイント")
ax.set_title("スプリント7 バーンダウンチャート")
ax.grid(alpha=0.3)
ax.legend()
fig.tight_layout()
fig.savefig("burndown.png", dpi=150)
print("burndown.png を保存しました")
実行結果:
稼働日数: 9
理想線: [36.0, 32.0, 28.0, 24.0, 20.0, 16.0, 12.0, 8.0, 4.0, 0.0]
残り(実際): [36, 33, 31, 26, 30, 24, 19, 15]
burndown.png を保存しました
稼働日数・理想線・残りのどれも、Calc で計算した値と一致しました。保存された画像には、開始から 10/16 まで続く灰色の破線(理想線)と、10/14 で止まる青い実線(残り)が描かれ、10/8 で線が上に跳ねる様子が見えます。
フォントの行は、手元に入っている日本語フォントの名前に置き換えてください。入っているフォントの名前は次のコードで調べられます。
from matplotlib import font_manager
names = sorted({f.name for f in font_manager.fontManager.ttflist})
print([n for n in names if "CJK" in n or "Gothic" in n or "Meiryo" in n])
ベロシティの計算と範囲での予測
ベロシティは、1スプリントの間に完了した項目の見積もりの合計です。 Agile Alliance の用語集でも、スプリントの終わりに完了している項目だけを合計し、途中まで進んだ項目は含めないと説明されています。
直近3スプリントの平均と幅
| スプリント | 完了ポイント |
|---|---|
| スプリント4 | 18 |
| スプリント5 | 26 |
| スプリント6 | 22 |
貼り付け用のタブ区切りデータ(A1 セルに貼り付け):
スプリント 完了ポイント
スプリント4 18
スプリント5 26
スプリント6 22
直近3回の平均 =AVERAGE(B2:B4)
最小 =MIN(B2:B4)
最大 =MAX(B2:B4)
残りのバックログ 130
必要スプリント数(速い場合) =ROUNDUP(B8/B7,0)
必要スプリント数(平均) =ROUNDUP(B8/B5,0)
必要スプリント数(ゆっくりの場合) =ROUNDUP(B8/B6,0)
| セル | 項目 | 数式 | 値(Calc で検算) |
|---|---|---|---|
| B5 | 直近3回の平均 | =AVERAGE(B2:B4) |
22 |
| B6 | 最小 | =MIN(B2:B4) |
18 |
| B7 | 最大 | =MAX(B2:B4) |
26 |
| B8 | 残りのバックログ | (入力) | 130 |
| B9 | 必要スプリント数(速い場合) | =ROUNDUP(B8/B7,0) |
5 |
| B10 | 必要スプリント数(平均) | =ROUNDUP(B8/B5,0) |
6 |
| B11 | 必要スプリント数(ゆっくりの場合) | =ROUNDUP(B8/B6,0) |
8 |
予測は1つの数字ではなく幅で伝えます。 この例なら「残り130ポイントは、5〜8スプリント、平均のペースなら6スプリントで終わる見込み」です。スプリントが2週間なら10〜16週間にあたります。幅が広いと感じたら、バックログの項目を小さく分けて大きさをそろえると、スプリントごとの完了量がそろいやすくなります。
ベロシティを次のスプリントに使う
| 使い道 | やり方 |
|---|---|
| 次のスプリントで引き受ける量 | 平均(22)を目安にし、休みが多いスプリントは稼働日の割合で減らす |
| バーンダウンの合計(B3) | 引き受けた量をそのまま入れる |
| リリース時期の見通し | 上の表のように最小・平均・最大の3通りで計算する |
稼働日の割合で減らす例:ふだんが10稼働日で平均22ポイントのチームが、9稼働日のスプリントを迎えるなら 22 × 9 ÷ 10 = 19.8 で、20ポイント前後が目安になります。
ベロシティを扱うときの注意
Agile Alliance の用語集では、次の点が挙げられています。
- ベロシティは終わった後に測る値で、先に「設定」する目標ではない
- チームどうしで比べない(見積もりの基準がチームごとに違うため)
- 見るのはチーム全体の値で、個人ごとの値は意味を持たない
バーンアップチャートとの違い
バーンアップチャートは、完了の累計(右上がり)と全体量(スコープ)の2本を描く図です。 サンプルシートのH列(完了累計)とI列(スコープ)が、そのままバーンアップ用のデータになります。
| 日付 | 完了累計 | スコープ | 残り(スコープ − 完了累計) |
|---|---|---|---|
| 10/7(水) | 10 | 36 | 26 |
| 10/8(木) | 10 | 40 | 30 |
| 10/9(金) | 16 | 40 | 24 |
10/8 は完了が0で追加が4でした。バーンダウンでは残りの線が 26→30 に上がるだけですが、バーンアップでは 完了の線は横ばい、スコープの線が 36→40 に上がる ので、「進みが止まった」のと「作業が増えた」のを見分けられます。
| 比べる点 | バーンダウン | バーンアップ |
|---|---|---|
| 描く線 | 残りの量(と理想線) | 完了の累計と全体量 |
| 線の向き | 右下がり | 右上がり |
| 作業の追加 | 残りの線が上に跳ねる(進みの遅れと区別しにくい) | 全体量の線が上がる(区別できる) |
| 一目で分かること | 期限までに0になりそうか | どれだけ終わり、全体がどれだけ増えたか |
| 向いている期間 | 1スプリントのように全体量があまり変わらない期間 | リリースまでのように全体量が変わりやすい長い期間 |
| グラフの範囲(サンプル) | A・C・F列 | A・H・I列 |
スクラムガイド2020は、進み具合の見通しを立てる手法としてバーンダウン、バーンアップ、累積フローなどがあると述べており、どれか1つを必須とはしていません。チームが読み取りやすいものを選べます。
つまずきやすい点と直し方
| 症状 | 原因 | 直し方 |
|---|---|---|
| A列に 46301 のような数値が出る | WORKDAY の結果がシリアル値のまま表示されている | セルの表示形式を日付にする |
| 残りの線が今日の先で0へ落ちる | 未来の行に 0 が入っている | =IF(日付>今日,NA(),…) にして #N/A にする |
| 稼働日数が1日多い | 休日の範囲に日付が入っていない、または文字列になっている | H列に日付として入力し、NETWORKDAYS の3つ目の引数に指定する |
| B22 が #N/A になる | 今日(B5)が土日や休日で、A列に同じ日付が無い | B5 に直前の稼働日を入れる |
| 理想線が終了日に0にならない | 稼働日の行数と B4 の値が合っていない | 行を B4 の数だけ用意する(期間を変えたら行を足す・減らす) |
| 線が毎日ほとんど動かない | 項目が大きく、完了がまとまって入る | 1〜2日で終わる大きさに分ける |
よくある質問
Q. 縦軸はポイントと時間のどちらがよいですか? A. スプリント全体の見通しにはストーリーポイントが、日々の作業の残りを細かく追うには時間が向いています。どちらでも式は同じです。途中で単位を混ぜると線が読めなくなるので、1つのグラフでは1つに決めます。
Q. 作業が追加されたとき、理想線も引き直しますか? A. 引き直さない方が、追加の影響がそのまま見えます。この記事のシートでは、理想線は開始時の合計(B3)から計算し、追加はE列に分けて記録しています。追加が大きく、スプリントの目標そのものを見直した場合は、B3 を変えて引き直します。
Q. Google スプレッドシートでも同じ数式を使えますか? A. この記事で値を確かめたのは LibreOffice Calc です。ほかの表計算ソフトで使う場合は、貼り付けたあとに上の「計算結果」の表と同じ値になるかを見比べてください。
Q. ベロシティが毎回大きく変わるときはどうしますか? A. 平均だけでなく最小〜最大の幅で予測し、幅が広い理由(項目の大きさ、休み、途中の追加)をふりかえりで1つずつ確かめます。項目の大きさをそろえることが、幅を狭める近道です。
まとめ
- バーンダウンチャートは、理想線と残りの線の2本で「期限までに終わりそうか」を見る図
- 稼働日数は NETWORKDAYS、稼働日の並びは WORKDAY、未来の日付は NA() で線を止める
- 残り ÷ 残り稼働日(必要量)と、完了の合計 ÷ 経過稼働日(これまで)を比べると、次の一手を数字で決められる
- 線の形は7パターン。横ばい・跳ね上がり・終盤の急降下・階段は、項目の大きさや追加の記録を見直す合図
- ベロシティは直近3回の平均に加えて最小〜最大の幅で使い、予測は「5〜8スプリント」のように幅で伝える
- 作業の追加が多い期間は、完了累計と全体量を分けて描くバーンアップチャートが読みやすい
参考
- Microsoft サポート「NETWORKDAYS function」https://support.microsoft.com/en-us/office/networkdays-function-48e717bf-a7a3-495f-969e-5005e3eb18e7
- Microsoft サポート「WORKDAY function」https://support.microsoft.com/en-us/office/workday-function-f764a5b7-05fc-4494-9486-60d494efbf33
- Microsoft サポート「NA 関数」https://support.microsoft.com/ja-jp/office/na-関数-5469c2d1-a90c-4fb5-9bbc-64bd9bb6b47c
- Microsoft サポート「Display empty cells, null (#N/A) values, and hidden worksheet data in a chart」https://support.microsoft.com/en-us/office/display-empty-cells-null-n-a-values-and-hidden-worksheet-data-in-a-chart-a1ee6f0c-192f-4248-abeb-9ca49cb92274
- Agile Alliance「Velocity」https://www.agilealliance.org/glossary/velocity/
- スクラムガイド2020(日本語版)https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-Japanese.pdf
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「バーンダウンチャートの作り方(エクセル)|見方7パターンとベロシティ計算」
株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。
WE ARE HIRING
RJCで一緒に開発しながら、
成長を楽しみませんか?
RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!
- 127日年間休日
- 12時間平均残業時間
- 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!
ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。