料理のレシピ作りとソフトウェア開発


ここ(「プログラミングをしない人が考えていること」を聞いてみた | 日経 xTECH(クロステック))をふと見かけ、
さらにその先のリンクで見つけたUIEvolution中島さんのブログでの話題。
http://satoshi.blogs.com/life/2006/03/post_8.html

日本のエンタープライズ系のソフトウェア業界は、そんな根本的に間違ったソフトウェアの作り方を長年してきたために、まるで建築業界のような下請け・孫請け構造が出来てしまい、下流のエンジニア達が十分な経験も得ることが出来ずに低賃金でこき使われ、業界全体として国際競争力をなくしてしまう、という状況に陥ってしまったのではないか、というのが今回の私の仮説である。

これはもう仮説どころか僕の中では定説ではないかと思ってますw
中島さんは、

プログラムの仕様書は料理のレシピに似ている。

と控えめにおっしゃってますが、『リーンソフトウエア開発?アジャイル開発を実践する22の方法?』の中でポッペンディーク夫妻は、

生産は、料理を作るのに似ているが、開発は、レシピを作るのに似ている。レシピは、どうすればおいしくなるかを直感で知り、手に入る材料を場面に合わせて工夫する能力を身につけた経験豊富なシェフによって設計される。最高のシェフでさえも、美味で再現しやすいレシピを創るために、同じ料理のバリエーションをいくつも作る。シェフには、最初から完璧なレシピを作ることは求められていない。彼らに求められているのは、学習過程の一部として、あるテーマに沿って、いくつものバリエーションを作り出すことだ。

とまで言って(これは引用らしいですが)ますね。ソフトウェア開発そのものがレシピを作るようなものであると。料理を作れないレシピ作者なんてナンセンスですもんね。


生産とか製造という工業のアナロジーを過剰に適用してきた日本のソフトウェア開発のあり方をなんとか正したいと思いつつ、この構造そのものに縛られている僕のようなエンジニアは星の数ほどいると思われます。


まるで被害者のように書きましたが、僕とて”下請けを使う”立場でもあるわけで、自分への戒めという意味でも現役プログラマーでありつつ、問題を大局的に俯瞰することさえできる、そんな開発者でありたいと願いますね。…。なんて言いつつ、いや、単に好きなんですよね、プログラミングw。


でも、梅田氏の『ウェブ進化論 本当の大変化はこれから始まる (ちくま新書)』に描かれる、Googleの若い開発者たちの価値観を見る限り、あまり心配することもなさそうだな、とも思いました。

特に日本のIT企業の幹部にグーグルの話をするときに、「博士号を持った最高のエンジニアがオペレーションの泥仕事を、毎日毎日死に物狂いでやっているような会社ですよ」と言うと、彼らは一様にがっかりする。優秀な人間は自分で手を動かさず誰かに何かやらせる風土になってしまった企業から見ると、「そんな会社にはかなわないなぁ」という印象を持つようだ。

「アイデアの起案自身というのはほとんど評価されない。アイデアっていうのは当然、難しい問題を含むものだ。その問題を解決して、動く形にして初めて評価される。口だけの人はダメだな。」


意外と若い人たちは軽々と階層を乗り越えてくれるのかもしれません。