2026年6月13日

キングマンの近似式とスクラムチームができること

読了時間の目安: 5分


キングマンの近似式

待ち行列理論の中にはキングマンの近似式というものがある。

Wq(ρ1ρ)(Ca2+Cs22)TsW_q \approx \left( \frac{\rho}{1 - \rho} \right) \left( \frac{C^2_a + C^2_s}{2} \right) T_s

WqW_q は、サービスを受けるまでの平均待ち時間。小さいほうがいい。

ρ\rho は利用率(混雑率)。単位時間あたりに待ち行列システムに入ってくるアイテムの数である平均到着率 λ\lambda と1アイテムの処理にかかる平均サービス時間 TsT_s を用いて、λTs\lambda T_s で計算される。0に近ければ列は空いている。1に近ければ混んでいる。1より大きいなら処理が追いついていない。ちなみに待ち行列理論では利用率が1より大きくなるとシステムが崩壊する。キングマンの近似式も成り立たなくなる。

CaC_aCsC_s は、それぞれ到着間隔のムラと処理時間(サイクルタイム)のムラ。「標準偏差 ÷ 平均値」で求められる。ばらつきが大きいほど大きい値になる。ばらつきが全くなければ0になる。

スクラムチームは、平均待ち時間が少ないほうがユーザーに素早い価値提供ができ、アジリティも高められるというわけだ。

スクラムチームはどうすれば ρ1ρ\frac{\rho}{1-\rho} を小さくできるのか

キングマンの近似式より、ρ1ρ\frac{\rho}{1-\rho} を小さくできれば平均待ち時間を短くできる。平均待ち時間が減れば、リードタイムが短くなる。

このグラフは縦軸が ρ1ρ\frac{\rho}{1-\rho} 、横軸が ρ\rhoρ\rho が1に近づくにつれて急激に増加する値であることがわかる。

ρ=λTs\rho = \lambda T_s

なので、平均到着率 λ\lambda を減らすか、平均サービス時間 TsT_s を減らすか。

平均到着率を減らすとは、プロダクトバックログへのアイテムの追加頻度を減らすということになる。なんでもかんでも追加せず、本当に価値の高いものだけを追加するようにしたほうがいい。一方で、価値の源泉でもあるので減らしすぎてもいけない。ρ\rho が大きくなりすぎず、小さくなりすぎないバランスを見極めないといけない。一般的に ρ\rho は 0.8 前後がいいらしい。

平均サービス時間は、プロダクトバックログアイテムの着手から完了までの時間、サイクルタイムと見ることができる。なので、サイクルタイムを短くしましょうということになる。サイクルタイムは分解するとアクティブタイム(作業時間)とウェイトタイム(待ち時間)がある。アクティブタイムを減らすには、スキルアップやAI活用などが効果的。ウェイトタイムを減らすには、チーム全体でWIP制限を導入しタスクの引き渡し後すぐに着手できるようにしたり、そもそもタスクの引き渡しがいらないようなクロスファンクショナル化やモブワークなどが効果的だろう。

スクラムチームはどうすれば Ca2+Cs22\frac{C^2_a + C^2_s}{2} を小さくできるのか

Ca2+Cs22\frac{C^2_a + C^2_s}{2} を小さくするには、Ca2C^2_aCs2C^2_s を小さく保つ必要がある。

到着間隔のばらつき Ca2C^2_a を小さくする

Ca2C^2_a は到着間隔のばらつき。つまり、プロダクトバックログアイテムが枯渇したかと思えば急に100個増える、みたいなことを繰り返すなという話。チームが取り組む仕事がなかったり、価値のあまり高くない仕事を無理やりしていた時間は戻らない。逆に急に増えた価値ある仕事は捌き切れずにリードタイムが伸びてしまう。高価値につながるアイデアをコンスタントにプロダクトバックログアイテムに追加していこうということになる。

アイデアを小さく分割して進めることも到着間隔のばらつきを抑えることに役立つ。大きなアイデアはどうしても考慮点が多くなり、到着間隔が大きくなりやすい。それを小さなフェーズに分割して考えることで、少しずつ具体化しながらプロダクトバックログにアイデアを到着させることができる。

リファインメントでチームがそのプロダクトバックログアイテムを取り組むべきものと判断し、Readyな状態にしているなら、リファインメントを到着とみなすことができる。毎日30分コツコツリファインメントする、などは到着間隔のばらつきを抑えているといえる。

サイクルタイムのばらつき Cs2C^2_s を小さくする

バッチサイズを小さくする。これでサイクルタイムのうち、アクティブタイムのばらつきを抑えられる。

スキルの平準化もアクティブタイムのばらつきに効く。誰がやっても同じくらいのサイクルタイムにする。でも、そのためにタスクを細かく指示したりガチガチのルールを定めるのは、チームの効果性も効率性も下げてしまう。そうではなく、教え合う・学び合う文化とゆとりを持つことで平準化を目指したい。

ウェイトタイムのばらつきはWIP制限がよき。ほどよく手が空いていればウェイトタイムを小さい範囲で維持できる。メンバーが職能横断的に動ければ待ちが発生しているボトルネックをカバーし合えるようになるので、ウェイトタイムをなくし、結果ばらつきを抑えられる。

体調管理も意外と重要。メンバーの体調が悪く、パフォーマンスが出ないとか、休みが続くとなると、サイクルタイムにばらつきが出やすい。持続可能なペースとか、食事・運動・睡眠とか、そういうのが結局最も大事だったりする。

平均サイクルタイム TsT_s について

平均サイクルタイムの縮め方はすでに言及したので割愛。ただ、ここでは結局 TsT_s の短縮は大事だという話を。

キングマンの近似式で求めているのは、平均待ち時間。なので、リードタイムで考えると、

W(ρ1ρ)(Ca2+Cs22)Ts+TsW \approx \left( \frac{\rho}{1 - \rho} \right) \left( \frac{C^2_a + C^2_s}{2} \right) T_s + T_s

になる。いくら混雑率やばらつきを抑えて平均待ち時間 WqW_q を抑えたとしても、サイクルタイム TsT_s が速くなければリードタイム WW は遅いままになってしまう。

おわり

普段スクラムチームが意識してやっていることって、数学的にも正しい方向なんだなーなんて思ったよ。

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