SAFeのリーン-アジャイルの原則

プロダクト開発プロセスを最大限近くまで運用することは、経済的に見ると大きな失敗である。

─Donald Reinertsen

第6原則─仕掛作業(WIP)を制限し、可視化する。バッチサイズを小さくし、待ち行列の長さを管理する

リーンなシステム開発では、持続可能な最短のリードタイムを実現するために、新しいシステム能力を概念から現金へと素早く変化させる継続的なフローの状態を得ようと努力する。継続的なフローを達成するには、開始と停止を繰り返す従来型のプロジェクト始動/開発プロセスと、フローを妨げる現在のステージゲートを廃止する必要がある(第5原則)。

フローを実現するための重要な3つの鍵は、仕掛かり作業を可視化して制限すること、作業項目のバッチサイズを小さくすること待ち行列の長さを管理することである。

WIPを可視化して制限する

チームやプログラムにやり遂げられないほどの作業を押し付けることは、よく見られる悪質な問題である。システムの仕掛かり作業(WIP)が多すぎると、多重化や頻繁なコンテキスト切り替えが発生する。それによって、作業を行う人の負荷が重くなり、目先の作業に集中できず、生産性やスループットが低下し、新しい機能の待ち時間が長くなる。

WIP制限最初のステップは、利害関係者全員が現在のWIPを見られるようにすることである。この可視化によって、各ステップでの全体の作業量が明らかになる。またこれは、現在のボトルネックを示すプロセスの初期診断にもなる。場合によっては、現在の作業を可視化するだけで、それが警鐘となって、作業が多すぎてフローが少なすぎるというシステム上の問題に開発者が対処し始める。

次のステップでは、仕掛かり作業の量と使用可能な開発用処理能力のバランス取りを開始する。WIP制限に達したステップでは、新しい作業を引き受けない。

しかし、WIPを制限するには知識と規律と確約が必要である。これは、システムに多くの作業をつぎ込むほど得られるものも多くなると信じている人にとっては、直観に反する可能性すらある。その信念はある地点までは正しいが、そこを超えるとシステムは荒れ始め、フローが低下する。効果的なWIPの管理に代わるものはない。

バッチサイズを小さくする

WIPを減らしてフローを改善するもう1つの方法は、作業(システムの中を移動していく要求、設計、コード、テストなどの作業項目)のバッチサイズを小さくすることである。単純に言うと、バッチサイズが小さければ、システム内を高速で通り抜けられ、変動が少ないため、素早く学習することができる。速度については説明は要らないであろう。変動が大きくなるのは、バッチに含まれる項目の変動が積み重なるためである。

バッチサイズの最適化経済的に見て最適なバッチサイズは、保持コスト(フィードバックや価値が遅れることによるコスト)と処理コスト(バッチを実装しテストするコスト)の両方に影響を受けて変化する。この図は、バッチサイズの「最適化のU字曲線」を示したものである[1]。

小さいバッチを処理する(スループットが増える)際の経済効果を向上させるには、それぞれのバッチの処理コストを減らすことにまず集中しなければならない。典型的には、インフラや自動化に注目し、投資をすることが挙げられる。これには、継続的な統合とビルドの環境、DevOpsの自動化、システムテストのセットアップ時間などが含まれる。これはシステム思考(第2原則)に不可欠であり、長期的な視点で最適化するには欠かせない要素である。

待ち行列の長さを管理する

フローを達成するための最後の要素は、待ち行列の長さを管理する(通常は短くする)ことである。リトルの法則(待ち行列理論の重要な法則)によると、あるシステムのサービスの待ち時間は、待ち行列の長さを平均処理速度で割った比率である(複雑に思えるかもしれないが、スターバックスの列からも分かることである)。そのため、平均処理速度を固定すると、待ち行列が長いほど、待ち時間は長くなる。

ソリューション開発の場合に当てはめると、チームによる実装を待っている作業の待ち行列が長いほど、待ち時間が長くなる。これは、作業を行うチームがいくら有能であっても同じである。早くサービスを受けたければ、待ち行列の長さを短くするか、処理速度を上げなければならない。処理速度の向上は常に皆が目標として努力しているが、待ち時間を短縮するには待ち行列の長さを短くするのが手っ取り早い。これは、バックログを減らし、大部分は確約しないでおくことで達成できる。作業を可視化すると、このプロセスは大いにはかどる。

待ち行列の長さを短くすると、遅延が減り、無駄が少なくなり、結果を予測しやすくなる。

WIPを可視化して制限する、バッチサイズを小さくする、待ち行列の長さを管理するという3点は、スループットを向上するための非常に有力な方法である。これを行うことで、顧客満足度と従業員の愛着を無視できないレベルで素早く向上させることができ、システム構築者とその顧客の全体的な経済的利益につながる。


さらに知りたい場合

[1] Reinertsen, Donald G. The Principles of Product Development Flow:Second Generation Lean Product Development.Celeritas, 2009.

Last update:11 May 2015