April 22, 2008
この記事は考えさせられた。
おそらくその1つの理由は、「部品化」という比喩が門外漢にもきわめて分かりやすいからだろう。部品化は以下のように理解されている。部品を再利用すれば生産性が上がる
不具合が出るのは部品の品質基準がないからだ
汎用部品を使わず専用部品を作るから費用がかかる
完成品メーカーになれなくとも、高品質な部品を提供する産業として成長できる
それに対する現実は、
実のところ、部品化とは再利用は品質の安定期まではかえってコストが上がる
初期目的外のテストは過剰で、そもそも行われてない
汎用化を目的とせず使い捨てコードを書くことで、短期的コストは下がる
高い再利用性を持った部品群を作成する方が、使い捨てコードよりも高度な技術が必要
この文章を読んで、製品の部品化(ASSY)は同じものを繰り返し作る手間、品質を改善したが、ソフトウエアはコピー(製造にあたる)は一瞬かつコストが0円に近いので肝心の論点がずれてるんじゃないかと感じた。
工場の製造ライン視点ではなく、それを作る生産管理の視点で見るべきでは?!
製造業の生産ラインでASSYを作ったり、組み合わせて自動車を作るような概念ってのは、SaaSでの大規模サービスがカスタマイズもせず、サーバーを増やすときに同じ機能のサーバを横に増やしていくその作業が一番しっくりいくと思う。
つまり的外れ。
ASSYを共通化しようがしまいが、一番最初は何かの車種のために極めてカスタマイズされた部品だろうから、必ずしも汎用的な再利用を考えて作ってるわけではない、と。
そここそがソフトウエア開発プロセスに対応するハズ。
多くのソフトウエア産業はカローラを沢山作るんじゃなくて、カローラみたいな新しい自動車を常に新規で作っているってことだ。まぁせいぜい再利用しても、案件ごとにちょびっとずつコアが違うので、いろんなところを切ったり貼ったり。
たまに車が飛行機になったりして。
どちらかと言えばソフトウエアを作るとは、「金型を作るまで」に近いのではないだろうか。
と、現状の否定めいたのはさておき、
僕にとって大事なのは、再利用性が高いものとは、どういうあり方であるべきなのか?というところであって、はてブコメントにエレガントな回答が書いてあった。
chocoflaker 失敗してるか? Linuxなんか、まさに部品化されたソフトの寄せ集めじゃん。
なるほど。