JavaとJavaEEプログラマのブログ

JavaEEを中心にしたをソフトウェア開発についてのブログ

Sier全滅!?アジャイルな開発はTOCやTPSの一種。

扇情的なタイトルを付けてみた。

週末スペシャル - 故・ゴールドラット博士の功績を振り返る:ITpro

TOCはトヨタの生産管理方式を分析した理論。工程を観察することで工程内のボトルネックを見つけ、そのボトルネックを解消することで目標を達成しようという方法論。
いまでは製造業だけでなく小売りや流通の改善に取り入れられている。

アジャイルな開発で行われていることも実はTOCトヨタ生産方式(TPS)と同じ。
以下に共通点をあげる。

  • 可能な限り早く(理想はジャストインタイムで)、顧客に価値あるものを提供し現金を取得する。
  • どちらも実際の工程を繰り返し、その結果を観察することでボトルネックを見つけ、それを解消することを繰り返す。
  • ソフト開発でのボトルネックは仕様の変更や勘違い、バグの埋め込みや実行環境構築のミスなど。

これらが起こらないように繰り返されないように、様々なフレームワークや自動化ツール、手法を使用して開発を進めていく。
TPSも同じように各種の自動機械やカンバン方式やポカよけなどツールや手法を使用して開発工程を改善し、生産効率を高めつつ生産を進めていく。
生産するものがソフトを自動車の違いこそあれ、その生産工程の中で行われていることは、ほぼ同じになっている。

  • TPSやアジャイルな開発の困難な点は、そういった自動化や手法の採用だけではボトルネックを見つけ続け、それを改善し解消し続けるという行動文法を身につけられないということ。

ボトルネックの探索とそれの改善・解消を続けなければ、生産効率の上昇はそこで止まってしまう。
つまり、自動化や手法などのHowを真似るだけではだめで、それらの背後にある「なぜそれを行うのか」というwhyを身につけることが重要。
なぜアジャイルな開発を行うのか、なぜ改善を続けなければならないのかといったことを理解していなければ、アジャイルな開発を採用してもやがてそれは変なウォーターフォール開発になってしまう(TPSの導入失敗事例に似ている)。

  • ボトルネックを見つけるのは人間。ボトルネックになるのも人間。

ツールや手法を揃えるだけでは駄目で、それを扱う人間も質的に向上して行く必要がある。

並行進化のように目的が同じなら、それを満たすための方法論も似通ってくるのだろう。