2026年5月24日

Time in Statusの中央値の合計はCycle Timeの中央値にならない

読了時間の目安: 3分


「そりゃそうだろ」と「え、そうなの」をよく右往左往するので、ブログにまとめておく。

Cycle TimeとTime in Status

まずはCycle TimeとTime in Statusの定義をおさらい。

Cycle Timeはある定義されたワークフローにおける「作業項目の開始してから終了までの経過時間」(From latest | カンバンガイド | カンバンガイド )。

Time in Statusはそのワークフロー内の各ステータスの滞留時間のこと。

例えば、ワークフローAは2つのステータス1、2(待ちやアクティビティ)からなっているとする。ステータス1に2日、ステータス2に5日滞留していたとすると、Cycle Timeは7日。

つまり、

CycleTime=iTimeinStatusi\mathrm{Cycle Time} = \sum_i \mathrm{Time in Status}_i

一方で、

med(CycleTime)imed(TimeinStatusi)med(\mathrm{Cycle Time}) \neq \sum_i med(\mathrm{Time in Status}_i)

直感的にわかりそうでわからない。

ばらつきがあるとTime in Statusの中央値の合計はCycle Timeの中央値にならない

例えば、

Time in Status1Time in Status2Cycle Time
Item A1100101
Item B235
Item C1001101

このとき、

med(CycleTime)=101imed(TimeinStatusi)=2+3=5\begin{align*} med(\mathrm{Cycle Time}) &= 101 \\ \sum_i med(\mathrm{Time in Status}_i) &= 2+3 = 5 \end{align*}

となる。逆に、

Time in Status1Time in Status2Cycle Time
Item A1100101
Item B9998197
Item C1001101

のときは、

med(CycleTime)=101imed(TimeinStatusi)=99+98=197\begin{align*} med(\mathrm{Cycle Time}) &= 101 \\ \sum_i med(\mathrm{Time in Status}_i) &= 99 + 98 = 197 \end{align*}

となり、こちらもCycle TimeとTime in Statusで乖離があるように見えてしまう。

このように同じステータスでもアイテムによってTime in Statusにばらつきがあったり、同じアイテムでもステータスによってTime in Statusにばらつきがある場合、Cycle Timeの中央値とTime in Statusの中央値の合計は全く違う値になる。

これはちなみに平均値だと起きない。

Time in Status1Time in Status2Cycle Time
Item A1100101
Item B235
Item C1001101
平均値34.334.769

クロスファンクショナルなチームではTime in Statusの合計はCycle Timeよりも長くなる

集計方法によるけど。

ここで言っているクロスファンクショナルチームとは、『 The New New Product Development Game 』のアプローチの分類のType B(Sashimi)やType C(Rugby)のようなチーム。

シーケンシャル開発とオーバーラップ開発の比較図

こういうチームは従来のフェーズ分けがオーバーラップするので、開発中かつテスト中みたいなことが起こる。各ステータスごとに開始日・終了日を独立して計測したりしてる場合、オーバーラップ部分はTime in Statusを合計すると重複して加算されることになる。

なので、こっちは平均値でもTime in Statusの合計とCycle Timeは一致しない。

おわり

思い切った数字を例で使うとわかりやすかった。

気に入っていただけたら、
サポートもお待ちしております!
  • 名前:asato
  • 仕事:スクラムマスター
  • 好き:家族、温泉、旅行、謎解き
  • 苦手:はじめまして、あんこ、うなぎ