TOC(制約理論)の創始者、ゴールドラットは、生産ラインの基本特性のひとつ、ワーク(被処理物)の待ち時間と工程の手空き時間(稼働率)の関係を理解しておりませんでした。(前回Blog参照)しかし、ゴールドラットには“転んでもただでは起きぬ”したたかさがありました。
DBR用に開発したソフトはぜんぜん売れないのに、小説を読んで、その通り改善したらうまくいった、という話。うさん臭い話ではあるんですが、どうやら、本当らしい。
だとすると、“ソフトはダメで小説は良い”、の背後にある“理”とは、、。
先ずは、
“生産ラインの生産能力はボトルネック工程の能力で決まる。”
これって、正しいでしょうか、、。・・・う~ん、間違ってはいないようだ。じゃ、
“生産ラインの能力を最大限引き出すためには、ボトルネック工程の能力を100%発揮させる。”
っていうのはどうでしょうか。これも、、そうだよね、、。じゃ、ボトルネック工程の能力を100%発揮させるためにどうするか?
“ボトルネック工程を隙間なく(100%の稼働率で)スケジュールする”
“ボトルネック工程以外の工程はスケジューリングする必要はなく、ボトルネック工程だけスケジューリングすればよい。”
という説明は、MRPのスケジュール問題の解決にもなるし、説得力は抜群。そのために、投入からボトルネック工程までのフロータイムに十分な余裕を持たせて、隙間のないスケジューリングができるようにする、、。これが、ドラム・バッファー・ロープ。完璧、、にみえますね。
“この完璧にみえるDBRですが、原理的に致命的な欠陥があって、実行可能性はほぼゼロ”
と言ったら、そちらこちらから、反発、非難、お叱り、、を受けそうですね。
“ソフトはダメでも小説はいい”
少し、表現を換えましょう。
“スケジューリングはダメだが手空きが出ないように手作業で管理することは効果的”
・スケジューリングがダメな理由は、“原理的に致命的な欠陥がある”から。
・手作業で管理することが効果的なのは、“ボトルネック工程の稼働率を上げる”ことができるから。
ちょっと、わかりにくいですかね、、。
前にも紹介したんですが、こんな事例は、参考になるかもしれません。
生産スケジューラ;ベンダーの宣伝に踊らされるな!
ポイントは、
「ネック工程は手作業で管理し、前後の非ネック工程はスケジューラで計画作成」 にありそうです。DBRの考え方に沿えば、ネック工程は詳細にスケジューリングして、非ネック工程はスケジュールなし、、ですが、効果が出たのは、その反対。これって、“スケジューリングはダメだが手空きが出ないように手作業で管理することは効果的”だ、
ということではないでしょうか。
“つまり、ネック工程を100%稼働するようにスケジュールしてもうまくいかないが、ネック工程を100%稼働するように人間が手作業で調整するとうまくいく”
なんなんでしょうね、これって!
これって、論理的なはなし? 論理的なはなしだったら、論理的に説明できるはず、、ですね。
ということで、この訳の分からないはなしを論理的に説明することにチャレンジしてみたいと思います。
とは、言ってはみたものの、結構難しいんですよ。何が難しいかっていうと、常識的というか、感覚的というか、経験的というか、そういうのをベースにしたメカニズムとは、まったくと言っていいほど、違う現象なので、身近に使える類似例がない。
というと、「そんなに珍しい現象なんですか?」と聞かれてしまいそうですが、そうではありません。街中で日常誰でもが経験する、極、ありふれた現象なんです。
そのありふれた現象が生産ラインの中でも起きているんですが、街中で日常誰でもが経験する現象と原理が同じだ、と認識することができないようなんです。
例えば、健康診断。私も市で行う健康診断に毎年、行っております。受付➡着替え➡体重・身長測定➡血圧測定➡心電図➡血液採取➡問診・聴診器➡書類受取、っていう感じです。受付で数人待っていました。身長体重測定は待つことなくすぐにできました。血圧測定で少し待たされ、心電図では何人かの人が待っていて、十数分待たされたでしょうか。 、、、で、40分ほどで終了。
誰もいなければ10分程度で終わるんじゃないかな。だとすれば、30分は待ち時間。
これって、生産ラインと同じですよね。
時々病院に行っていますが、2時間待たされて診察・治療が3分なんてことはよくあります。健康診断は各測定項目の所要時間が予め分かっていて、そのバラツキが小さいこともあり、待ち時間が比較的短かったんじゃないかと思います。
ちょっと、流れを解析してみましょう。健康診断のボトルネック工程は、心電図だとしましょうか。
ボトルネックである心電図を稼働率100%になるようにスケジューリングしてみましょう。受検者の来場は、受付時間は決められているものの、到着時刻はバラバラ。そのバラツキを吸収するため、受付終了から心電図までの時間を十分にとります。そうですね、20分としましょう。20分後から心電図の所要時間(5分としましょう)をスケジュールします。
メカニズムを検証するために、スケジュールに沿って厳格に運用することにします。例えば、10:00~10:05というスケジュールに対して、前の人が9:56分に終了したとき、待っている人がいても10:00にならないと測定を始めない。前の人の測定時間が10:05と遅れた場合は、これはしょうがないので、すぐに(10.05に)始める、というように。
厳密なスケジュール基準としますと、心電図が手空きとなるときがあります。受検者は平均5分間隔で来るとしますが、これは平均で、実際はバラツキます。そのために受付から心電図まで十分な余裕をとってスケジューリングしています。
ここで、バラツキは2つ。ひとつは受検者の来場時間間隔。もうひとつは心電図の所要時間。どちらも平均は5分ですが、バラツキます。
バラツキがまったくない場合はスケジューリング通り、心電図の稼働率は100%。
しかし、2つのバラツキがあると、心電図に手空き時間が発生し、稼働率は100%にはなりません。バラツキが大きければ大きいほど、手空き時間が長くなり、稼働率は低くなります。スケジュール基準では心電図の稼働率は低下します。
地味な数値で、わかりにくかったですか。計画から数分のズレなら、実用的には問題ないんじゃない? と思われる方もいるかもしれません。実際は、受検者の到着間隔と心電図の所要時間のバラツキが大きくなれば、稼働率は90%、80%、70%、、とどんどん下がっていきます。
逆に、稼働率を高く維持する方法はないのでしょうか。上記の説明から類推できるかもしれませんが、受検者の待ち時間を長くすることで稼働率の低下を防ぐことができます。前述した“2時間待たされて診察・治療が3分”というのがその例です。病院の稼働率をできるだけ高くしたいとなれば、受診する患者の待ち時間がグーンと長くなるわけです。
もうひとつ、稼働率の低下を防ぐ方法があります。すごく簡単な方法です。
待っている人がいれば、スケジュールを無視して、すぐに心電図をとる。待っている人がいなければ待つしかありませんが、、。前記の例で比較しますと、計画では10:00開始となっていますが、前の人が9:56に終わったのであれば、10:00まで待つことなく、次に待っている人の心電図を直ちにとるようにします。そうすることで、心電図の手空き時間が短くなり稼働率は高くなります。
この方法は、スケジューリングする必要もなければ、スケジュールに縛られる必要もなし。すごく簡単で、しかも、心電図の稼働率を、うまくいけばほぼ100%にすることもできます。稼働率を100%にする方法は、常に、待っている受検者がいるようにすることです。例えば受検順序を換えて、心電図を優先させるなど、、。これって、日常何気なくやっていることではないでしょうか。
まとめますと、
1. スケジュール基準では、受検者の到着間隔、心電図の所要時間のいずれか、または両方がバラツク時、心電図に手空き時間が発生する。つまり、稼働率が低下する。
2. スケジュール基準で稼働率を高くするためには、受検者の待ち時間を長くしなければならない。
3. スケジュールを無視し、心電図の前に常に受検者が待っているようにすれば稼働率を100%にすることも可能である。
1と2がスケジュール基準ですが、心電図の稼働率や受検者の待ち時間が実用領域を超えてしまい、実用的効果はなし。3は、人手による調整作業であり、稼働率を100%まで上げうる方法である。
となります。