人月の神話というかび臭い本を読んでいます。
この本,ベストセラーじゃなかったら書評はこうです。
翻訳がダメダメ。内容の優劣の判断もつかない。
例:迅速アプリケーション開発!?←RAD
落ち着いて考えると,訳語が安定しないくらい古い本であることに気づきます。
しかしもし訳語が適切だったとしても,著者の経験がハードウェア,それも伝説の360システムの配線云々からソフトウェア,それも360オペレーティングシステムまでという風に多岐に渡りすぎていて,ただのソフト屋さんが読んでも役に立たないこと請け合いです。
いわんや他業界の人が読んでもムイミーでしょうな。
若い頃マイコンやってました,最近はよくわからんけどソフト開発の管理やらされてます,みたいなおっさんならなんとかついていける内容なのかも。
とまぁ勝手なことを書いておりますが,数十年前の本ながら,予言書あるいは預言者の言葉の記録と思って読めば大変面白いです。
ひとつ例を挙げましょう。360は互換機が多数作られたことでも有名だとごみためまんは勝手に思い込んでいますが,開発手法としてのシミュレータつまりマシンおよびOSの仮想化を活用した,と過去形で語られていたりします。
トップダウン開発の問題点を全て網羅した上でなお,洗練されたトップダウン体制の確立への努力を惜しまない決意などがさすがIBMと思わせるところでもあります。
#ふつうならあきらめて頓挫するところだと思う。
人を倍に増やしても倍の早さで仕事は進まない,など未だに公知となっていない事柄をスッパリ言い切っている所などは,張富士夫さんみたいにこの本を1000冊買ってソフト業界にばらまいた方がええんとちゃうか?とすら思えてきます。
いやいや,本のことはどうでもええんですよ。
さてこの本のおっさんは,
建築にたとえるのはもうやめよう
と書いています。何年前ですか?未だに建設業界との対比などをしている文字通り脳天気さんがワンサカいて恥ずかしい限りですな。
私はMSのソフトウェアファクトリの比喩を支持しますね。
ところで,製造業の比喩を使う方々にもウンザリです。
製造業にだってイロイロあるんす。なにしろ第2次産業は全部製造業ですからね。キムチ漬けるのも,マシニングセンタを組み立てるのも同じ製造業ですからね。
思うに,ソフトウェアファクトリでは,マザーマシンを意識しているはずです。
ここで投げかけます。ソフトウェアの製造工程は,大量生産の工場と似ているでしょうか?否。
では,食品工場に似ていますか?否。
忘れてはならないのは,ソフトウェアファクトリが目指すものと,現状のソフトウェア製造工程が同じではないことです。
ごみため的な理解ではソフトウェアファクトリは以下のようなものです。これを毒電波と人はいう。
ソフトウェアの再利用性を生かすには,実装レベルの再利用化を推し進めても限界があります。←人月の神話はこのことにも触れているのでおそろしや
より抽象度の高いレベルで「設計」を「表現」しなければならない。しかし抽象的な設計は「空を飛ぶ乗り物」,「世界で一番甘い砂糖」,あるいは「みんなが買いたくなるセカンドバッグ」のように,糞の役にも立たない製品のラフイメージでしかないのです。
しかし糞の役には立たなくても,いわゆる工学あるいは生産技術によって,実現することができればこれ商売になるわけです。しかしなんら知識・技術の蓄積なくして,ポっとぼうふらが湧くようには実現できません。
というわけで,近代科学の鉄則に従って,製品実現のための要素をばらばらに分解します。小さな問題に分けてから解決し,後で組み立てるのです。
ソフトウェアファクトリではこの小さな問題定義と問題解決を表現する手段を提供することだけでなく,「後で組み立てる」アッセンブリ工程まで一気通貫で提供するわけです。ここまでは「この道具が何に役立つの?」というレベルの話ですが,それは表層でしかありません。ラピュタの財宝のようなものです。
アタリマエのことですが,ソフトウェアファクトリは,動かすたびに違うものを製造します。しかし昨日パンケーキを造っていたのに,今日はチラシ寿司,というようにドラスティックに異なるわけではないでしょう。かなり似ているが違うもの,それを繰り返し製造するための設備と考えるべきです。もしそうであるならば再利用性が夢幻ではなくなるかもしれません。
そしてそれは工作機械で構成されたラインと同じなのです。例えば金型工場のマシニングセンタは,毎日金型を製造します。そういう意味では毎日同じものを造っています。しかし,金型の形は毎日違いますし,最終製品も異なるでしょう。仕様が違うと言っても良いでしょう。今日はオマルの金型明日はケータイの金型。
今時の金型製造なんてCAD/CAMで設計したらあとは全自動じゃないのか?なるほど時流を読んでいらっしゃる。しかしそれは膨大なノウハウの蓄積およびそれを利用しやすい形にまとめあげたからこそ成立するご商売なのです。そこをお忘れなく。
ごみためまんが思うに,ソフトウェアファクトリが目指すソフトウェアの製造工程はそういう商売にこそ似ているのだと思うのです。いつも同じものを作るのだけれど,同じじゃない。全然違うものは造れないのだけれど,徐々に変化はしていく。一度造ったものは次に造る時には最小の手間で。これは金属加工業界では何十年も言われ続けたことだったりします。
単発・リピートオーダーどっちが来ても儲けが出るように。ライン半分,ジョブショップ半分。今時新規ライン建てるリスクはなぁ・・・
毎度毎度「新技術」「やったことない仕事」を受けていたら儲けなんか出ません。赤字でチャレンジして成功したらリピートの仕事で利益を出す。
どこの業者もやってる当たり前のことが,ソフトウェアでは困難なのだというのですよ。毎度毎度,新開発してます。ご苦労なことです。再利用できる品質のコードが残ってません。前回はJavaでした。グランドデザインが違いすぎます。云々・・・
なるほど他の製造業は踏ん張って商売にしてきたのです。その上でさらにコストダウンを続けてきたのですよ。この20年で人間は4分の1に減りました。非正規社員に切り替えただけなどというのは,日経の読みすぎです。確かにそういう逃げを打った企業も多いでしょうが,生産性そのものが向上していることから目をそむけてはいけません。
というようなことをグダグダ言っても聞いてくれる人がいないので,ここに書いておきます。くれぐれも毒にお気をつけなさってくださいませ。