Upgrade to Pro — share decks privately, control downloads, hide ads and more …

制約理論(ToC)入門 2026版

Avatar for Recruit Recruit PRO
August 05, 2026

 制約理論(ToC)入門 2026版

2026年度リクルート エンジニアコース新人研修の講義資料です。

Avatar for Recruit

Recruit PRO

August 05, 2026

More Decks by Recruit

Other Decks in Technology

Transcript

  1. 株式会社リクルート 販促領域プロダクトディベロップメント1ユニット(住まい) Vice President 上島 賢士(Satoshi UEJIMA) ▪経歴 2007年:大手SIer 新卒入社

    2013年:株式会社リクルートテクノロジーズ 入社 2015年:株式会社リクルートテクノロジーズ エンジニアリングG グループマネージャー 2016年:同上 兼 株式会社リクルートマーケティングパートナーズ 2017年:同上 兼 株式会社リクルート住まいカンパニー 2019年:株式会社リクルートテクノロジーズ ライフイベント領域エンジニアリング部 兼 株式会社リクルート住まいカンパニー 2020年:株式会社リクルート 住まい領域エンジニアリング部 兼 部長 部長 住まい領域開発ディレクション部 2022年:株式会社リクルート 販促領域(住まい・M&F・自動車・旅行)エンジニアリング部 兼 住まい領域開発ディレクション部 2023年:株式会社リクルート 住まい領域開発ディレクション部 兼 事業開発領域開発ディレクション部 兼 新規事業開発室 部長 2024年〜:株式会社リクルート 住まい領域プロダクトディベロップメントU VP 部長
  2. 2. 企業のゴール(目標)とは 『お金を儲け続けること』 経営の指標 • 純利益 • 投資回収率 • キャッシュフロー

    Not 生産 現場の指標 • スループット:販売を通じてお金を作り出す割合。時間あたりの速度。 • 在庫:販売しようとする物を購入するために投資した全てのお金。 • 業務費用:在庫をスループットに変えるために費やす全てのお金。
  3. 統計的変動と依存的事象 依存 遅く歩く 依存 依存 遅く歩く 止まる 靴紐結ぶために 止まる 歩く

    速く歩く (= 変動) (3km/時) (= 変動) 変動により広がった間隔 速く進むには制限があるが、遅く進む分には制限が無いため、隊列は無制限に長くなっていく。 一度長くなってしまった隊列を元の長さに戻すためには、後ろを歩く全ての人が 自身の前に広がった間隔の合計(変動の蓄積)を先頭の人の平均速度より速く歩く必要がある。
  4. 3. 制約(ボトルネック)とスループット 【製品の販売】 【材料の投入】 スループット( ) 歩くのに必要なエネルギー = 業務費用( 列の長さ

    = 在庫( ) ) この隊列を「歩いた道」という製品を作っているとみなすと、先頭が未踏の道を歩く = 生産を開始、 最後尾が歩いてはじめて製品が販売されることになる。よって、最後尾の歩くスピード = スループット。 ↗︎ ↘︎ ↗︎ 先頭が歩き始め、最後尾が歩き終わるまでの道は仕掛品や部品の在庫になる。
  5. 3. 制約(ボトルネック)とスループット 制約に他を従属させる 隊列の先頭へ 頼む 遅 はよ おそ 列の長さ =

    在庫( 遅い ) ↘︎ 隊列全体の速度を一番歩くのが遅い人に従わせることで列が長くなってしまうことを抑制。 しかし、スループットを上げるためには、先頭の人のスピードを如何に上げるかが鍵。
  6. とある工場(機械+人手でモノを作る) 「今日の17時までに100個作って出荷せよ」 組み立て(平均25個/時) 12時 13時 14時 15時 組み立て 組み立て 組み立て

    組み立て 25個 25個 25個 25個 16時 出荷 100個 溶接 溶接 溶接 溶接 25個 25個 25個 25個 溶接(平均25個/時) 出荷までの工程は「組み立て」と「溶接」のみ。 各工程の平均処理量から計算すると17時までに100個は作ることができるはず… 17時 組み立て・ 溶接済み
  7. とある工場(機械+人手でモノを作る) 「今日の17時までに100個作って出荷せよ」 組み立て(平均25個/時) 12時 13時 14時 15時 組み立て 組み立て 組み立て

    組み立て 2519個 2521個 2528個 2532個 16時 17時 出荷 10090個 溶接 溶接 溶接 溶接 2519個 2521個 25個 25個 組み立て・ 溶接済み 溶接(平均25個/時) 組み立て工程にばらつき(統計的変動)があり、そこにつながり(依存的事象)のある溶接工程に • 12時台と13時台:処理能力よりも少ない部品しか流れてこなかった。 • 14時台と15時台:処理能力を超えた部品が流れてきたが、超過分は処理できなかった。
  8. ② 制約(ボトルネック)を最大活用する 最大活用を考える 追加投資の前にまず徹底的に活用する方法を考える 処理能力:100 処理能力:80 処理能力:60 処理能力:100 稼働率:100% 稼働率:100%

    稼働率:80% 稼働率:48% 資材投入 100 出荷 48 工程A 工程B 工程C 工程D • 稼働率が80%→100%を目指す 在庫:20 在庫:32 • いま必要なモノだけ作る • B工程への負荷分散
  9. ② 制約(ボトルネック)を最大活用する (非制約リソースで制約リソースを助けることで) こうなるはず 制約の性能を上げる 処理能力:100 処理能力:80 処理能力:60 処理能力:100 稼働率:100%

    稼働率:85% 稼働率:100% 稼働率:60% 資材投入 100 出荷 60 工程A 工程B 工程C +12 -24 在庫:32 在庫:8 非制約を制約の能力を超えて働かせているため発生する余剰在庫 → 工程D 減らしたい(一定のバッファは必要だけど)
  10. ③ 他の決定を制約(ボトルネック)に従わせる ボトルネックに合わせて資材投入 制約に他を従属させる ※バッファ(在庫・期間)も考慮 処理能力:100 処理能力:80 処理能力:60 処理能力:100 稼働率:80%

    稼働率:85% 稼働率:100% 稼働率:60% 資材投入 出荷 100→80 60 工程A 工程B 工程C -20 在庫:12 在庫の減少 = キャッシュフローの良化 在庫:8 工程D
  11. ④ 制約の能力を高める +10 資材投入 処理能力:100 処理能力:80 • 設備投資 • 作業改善

    • 工程改善 処理能力:80→90 +30? 処理能力:100 どうなるか? 出荷 80→90 60 工程A 工程B 工程C 工程D ムダが最小化された状態で、投資によりボトルネックの能力向上 = スループット向上を狙う。
  12. ⑤ 制約が解消したら①制約を見つける、に戻る 制約(ボトルネック) 処理能力:100 処理能力:80 処理能力:90 処理能力:100 稼働率:90% 稼働率:85% 稼働率:75.5%

    稼働率:68% +8 資材投入 出荷 80→90 68 工程A 工程B 工程C 工程D +10 在庫:22 在庫:8 制約が移るとシステムは以前と全く別物になり、古い方針自体が制約になる。 ※惰性に気をつけて継続的に改善する必要がある。
  13. 5 Focusing Steps ① 制約を見つける ⑤ ② 制約が解消したら 制約をどう徹底活用 ①に戻る

    するか決める ④ 制約の能力を高める ③ 他の全てを②の決定に 従属させる
  14. バッチサイズによるLT比較(例) 工程A 工程B 工程C 工程A 工程B 工程C 工程A 工程B 工程C

    バッチサイズ:1 工程B 工程C 工程A 工程B 工程C セットアップタイムが小さい。 バッチサイズが小さい方が、 待ち時間が少なくなる。 工程A バッチサイズ:5 工程A 工程B 工程C
  15. 5. ソフトウェア開発現場の話 Before Now ① 制約を見つける ② ③ 制約をどう徹底活用 他の全てを②の決定

    するか決める に従属させる 「検証」に合わせた着手 • 検証の性能を超えて着手しない • (逆に)検証面が空かないように ・80%超の水準で検証面を活用 ・リリース待ちの減少 ⑤ 制約が解消したら ①に戻る ④ 検証面(画面)の追加開発 制約の能力を高める
  16. 5. ソフトウェア開発現場の話 Before Now ① 制約を見つける ② ③ 制約をどう徹底活用 他の全てを②の決定

    するか決める に従属させる 継続的改善サイクルを回して 案件LTおよそ30%短縮!! 「検証」に合わせた着手 • 検証の性能を超えて着手しない • (逆に)検証面が空かないように ・80%超の水準で検証面を活用 ・リリース待ちの減少 ⑤ 制約が解消したら ①に戻る ④ 検証面(画面)の追加開発 制約の能力を高める
  17. この事例はAI時代に何を意味するか いま見た事例は数年前のものです。 しかし同じ構造が、AI時代に全プロダクトで再演されます。 違いは「制約の移動速度」です。 開発 → 検証 → 運用 →

    意思決定と、制約はこれまでよりも速く動きます。 一度改善しても、すぐ次のボトルネックが現れます。 だから、必要なのは2つです。 ① 制約がどこに移ったかを観測できる仕組みを持つこと ② 5 Focusing Stepsを、これまでより高い頻度で回すこと
  18. 5. ソフトウェア開発現場の話 クリティカルチェーン 出典:https://promo.diamond.jp/books/the-goal/ (作業工程の従属関係とリソースの従属関係の両方を考慮に入れて、 タスクA タスクB タスクC タスクD タスクE

    タスクF タスクG プロジェクトバッファ 作業所要期間を決めている最も長い作業の流れ) バッファタスク毎ではなくはPJ全体として持ち、 クリティカルチェーン上のタスクに遅延が発生した際に取り崩す
  19. 6. まとめ ✓企業のゴール = お金を儲け続けること ✓スループット・在庫・業務費用 ✓統計的変動(ばらつき)と依存的事象(つながり)の組み合わせ ✓制約(ボトルネック)が全体のスループットを決める ✓制約と非制約を区別して、制約にだけフォーカス ✓『制約と非制約の区別を欠いた如何なる努力も決して実を結ばない』

    ✓惰性に気をつけて継続的に改善する(5 Focusing Steps) ✓『制約が移るとシステムは以前と全く別物になり、古い方針自体が制約になる』 ✓制約は「悪」ではなく「事実」。コントロールすることが大事。 ✓バッチサイズを小さくするとリードタイムが短くなる = スループットあがる ✓ 作業時間が短くなる(場合がある)。 ✓ 不確実性によるムダが減る。