見出し画像

トヨタ生産方式とアジャイル開発

『トヨタ生産方式』といえば40年以上前から世界のTOYOTAで体系化された生産管理方式だが、この方法論のエッセンスを紹介することで、アジャイル開発の要諦を明らかにしてみたいと思う。

「トヨタ生産方式 - 脱規模の経営を目指して-」

トヨタ生産方式とは

『トヨタ生産方式』はトヨタ自動車工業の副社長を務めた大野耐一が「ジャストインタイム」や「かんばん」などに代表されるトヨタの生産方式を体系化してまとめた生産管理の古典的名著である。

その初版は1978年、つまり40年以上前であるが、そこで述べられた方法論が時代を経て最近のソフトウェア開発の潮流であるアジャイル開発の概念と共通点を持つことに少なからぬ驚きを覚える。

しかし、アジャイル自体がそもそもトヨタ生産方式を参考の一つとして発展しているので、当然といえば当然ともいえる。

たとえばスクラム開発は、ジェフ・サザーランド、ケン・シュウェイバーらによって1990年代から2000年代にかけて体系化されたアジャイルソフトウェア開発の一手法であるが、その源流には、当時、世界で称賛され、また盛んに研究された日本の生産管理方法論がある。

ジェフ・サザーランド自身の著書によれば、スクラム開発に直接の着想を与えたのは1986年に『ハーバード・ビジネスレビュー』誌に掲載された野中郁次郎と竹内弘高の論文「The New New Product Development Game」だというが、同時に多くの企業研究からもその基本概念を学んでおり、その著書の中で本書(以後、『トヨタ生産方式』)についても言及している。

『トヨタ生産方式』は多くの人が解説、研究し、関連書籍やWeb記事は星の数ほどあり、ここで私があらためて解説する勇気もないし、情報を劣化させるに過ぎないので、トヨタ生産方式の要である「ジャスト・イン・タイム」と「自働化」について、大野の記述を引用しながら紹介する。

ジャスト・イン・タイム

大野の説明を引用する。

「ジャスト・イン・タイム」とは、たとえば、一台の自動車を流れ作業で組み上げてゆく過程で、組付けに必要な部品が、必要なときにそのつど、必要なだけ、生産ラインのわきに到着するということである。
(中略)
 生産現場の計画は、変更されるためにあるようなものである。生産計画が変更される要因を考えてみると、予測の狂い、事務管理上のミス、不良や手直し、設備故障、出勤状況の変化など、無数にある。
 これらの要因により、前工程で問題が発生すれば、後工程では必ず欠品などが生じ、好むと好まざるとにかかわらず、ライン・ストップかあるいはまた計画変更をせざるをえなくなるのである。
 このような現状を無視して、各工程に生産計画を示すと、後工程とは無関係に部品が生産され、一方では、欠品がありながら、不要不急な部品の在庫が山ほどたまるという事態が生ずる。これでは生産の効率は悪くなり、企業効率を低下させる結果を招く。
(中略)
 そこで、必要なものを、必要なときに、必要なだけおのおのの工程が供給を受けるという「ジャスト・イン・タイム」の条件を満たすためには、かえって生産計画をおのおのの工程に指示したり、前工程が後工程へ運搬するという従来の管理方法では、うまくいかないのではないかと考えた

大野 耐一. トヨタ生産方式 (Kindle Locations 185-187). ダイヤモンド社. Kindle Edition.

 今なおシステム開発方法論の主流であるウォーターフォールのシステム開発では、まず初めに顧客から渡された要求仕様が(ざっくりと)あり、これを実現するためにどれくらいの期間、どれくらいの工数が必要かを予め(だいたい)見積もったうえで、数か月、長いときには数年にわたる(と思われる)計画を練る。そして往々にしてこの開発計画は請負契約の体をとるため、要求として定められた機能を定められた期間内に実現することは請負側の義務に(必ず)なる。逆に言えば要求として定められていない機能が期間内に入る余地はない。

しかし、この見積時点で要求仕様を正確に、漏れなく洗い出し、かつ組織内で合意することは常識的に考えて不可能である。さらに悪いことに人間は元来ケチであるから、一度掲げた要求を取り下げることができず、あるに越したことはない程度の機能も断念することができないので、システム開発は、必ずスコープが肥大化して、結果として「デスマーチ」に収れんする習性をもつ。

 一方で、アジャイル開発の根本思想には、計画は常に変わりうるものであるという前提がある。

 変わりうるからにはどうしたらよいか。計画が変わることによるリスクを小さくするには、計画自体を小刻みにして、都度の軌道修正を図るのが一番良い。例えとして唐突だが、FCバルセロナのメッシ選手のドリブルがなぜあれほど相手選手を翻弄するのか。それは彼のドリブルのステップが非常に小刻みで、進路の軌道修正が柔軟にできるからと言われている。

 アジャイル開発方法論のひとつ、スクラム開発では、スプリントと呼ばれる数週間程度の開発期間で動作確認可能なプロダクトを開発し、リリースすることを繰り返す。重要なことは、決して全ての機能の設計や、開発を終えてから 小出しにリリースしているわけではない点である。実際は、最終的なプロダクトの姿を見据えた設計と実装をすることが現実ではあるのだが、原則的には、そのスプリントで作りもしない機能の設計書をひととおり書き上げることはムダであると言える。スプリントリリースに必要な機能だけを開発することで出来るだけ仕掛を減らすことができるのである。

「ジャスト・イン・タイム」も同様で、100台の車をつくるとき、前工程が100台すべてやり終えてから、後工程に進むわけではない。後工程が必要な分だけ前工程に要求する。こうすることにより仕掛在庫を減らすとともに、工程の流れをスムーズにする。

自働化

ここでも大野の説明を引用する。

トヨタ生産方式のもう一つの柱とは「自働化」である。「自動化」ではない。ニンベンの付いた「自働化」である。
(中略)
 スイッチさえ押せば、自動で動く機械は多い。最近は機械が高性能になり、あるいは高速化しているので、なにかちょっとした異常が起きた場合、たとえば、機械の中に異材が混入したり、スクラップづまりをすると、設備や型が破損するし、タップなどが折損するとネジなし不良が出はじめ、何十、何百という不良の山をまたたくまに築いてしまう。
(中略)
 「ニンベンのある自働機械」の意味は、トヨタでは「自動停止装置付の機械」をいう。トヨタのどこの工場においても、ほとんどの機械設備には、それが新しい機械であれ古い機械であれ、自動停止装置が付いている。たとえば、「定位置停止方式」とか、「フルワーク・システム」とか、「バカヨケ」その他、もろもろの安全装置が付加されている。機械に人間の知恵が付けられてあるのだ。
 この自動機にニンベンをつけることは、管理という意味も大きく変えるのである。すなわち人は正常に機械が動いているときはいらずに、異常でストップしたときに初めてそこへ行けばよいからである。だから一人で何台もの機械が持てるようになり、工数低減が進み、生産効率は飛躍的に向上する

大野耐一.トヨタ生産方式(KindleLocations227-228).ダイヤモンド社.KindleEdition.

アジャイル開発手法の実現のためには、継続的インテグレーション(CI)が暗黙の前提としてあり、継続インテグレーションを支えるのが自動テストである。

かつての開発では、ソースコードを書き上げてから、単体テストケースを作成し、マニュアルでプログラム実行してテストを行っていた。しかし昨今は、コーディングと同時にテストコードを同時に書き、開発しながらテストするというスタイルが浸透してきている(業界やアプリケーションの種類によって浸透度は様々のようである)。

複数名で開発をする場合は、ある開発者が追加修正したソースコードを、マスターのソースコードに取り込むと同時に、実行可能なアプリケーションにしてテストが自動実行され、異常を検知する。こうすることで、各メンバーの変更を溜めに溜めてある日動かしてみたら、プログラムが動かなくなっていたという事態を防げる。さらにテストが無事すべて正常に終われば、プログラムは壊れていないことが確認できるので、「どういう影響があるかわからないから念のため一通りの回帰テストをする」ということが不要になる。

まさにトヨタの「自働化」された機械が、異常を即時検知できることで、正常に自働していることを担保しているのに似ている。

まとめ

トヨタの生産方式には「ジャスト・イン・タイム」と「自働化」という2本の柱がある。

「ジャスト・イン・タイム」は計画は常に変動するのだから、必要なものを、必要なときに、必要なだけ各工程に供給するという考え方である。一方、アジャイル開発も要求は必ず変動するという前提にたち、開発単位を小さくして仕掛を減らし、機能を限定しながらリリースをする。

「自働化」は、異常をいち早く検知することで、それ以外の状態では人の手を煩わすことなく正常に動作していることを担保し、人間による管理工数を減らすことである。アジャイル開発でも、コード修正時に必ずテストコードを実行することによって異常を検知し、テストが正常完了することをもって修正箇所以外への無影響を担保する。

アジャイル開発の導入には、ウォーターフォール開発手法に慣れ親しんだ人間にとっては小さくないパラダイムシフトが求められる。

アジャイル開発が全てを解決するものではないし、従来の商慣習と矛盾する点で導入の課題はあるのだが、その背景にある考え方自体は古くからある生産管理の理論に相通ずるものがあり、汎用性がある。

これまでのやり方からドラスティックな変更は難しいかもしれないが、新しい方法論の背景にある考え方を知ることで導入の意義に見失わずに、いいとこ取りの導入も可能になるのだろう。


この記事が気に入ったらサポートをしてみませんか?