トップ «前の日記(2008-01-14) 最新 次の日記(2008-01-16)» 編集

日々の破片

著作一覧

2008-01-15

_ メモ

ふと気づいたが、ソフトウェア産業=工業という見方はよく反論の対象となるわけだし、実感としてもそれ(反対意見)は正しそうに思うのだが、実はやはり、その見方が正しいと言えるのではないだろうか。

レベルの設定が間違っているということだ。

工業は最初から、今の工業になったわけではない。

歴史の教科書的には、家内制手工業が来て(江戸時代末期の織物産業)、工員大量導入時代(明治の冨山あたりの時代)が来て、ベルトコンベア時代のオートメーションが来る。

それでいくと、単に、家内制手工業から工員大量導入時代のあたりにいる、というのを、ベルトコンベアと比較するからつじつまが合わない、ということではないか、ということ。

だから、専門的にもまだ近代の曙程度のレベルなんじゃないだろうか?

プログラマは設計をしているといっても、ベルトコンベアレベルに至っていなくて、せいぜい機織機を作っている程度に過ぎず従って最低1人の機織職人が必要な程度のレベルなのだ、おそらく。

したがって、インドやベトナムに機織職人の仕事が行ってしまうよね、という段階に過ぎないわけだ。

作るべきものは、機織機のレベルではなく、ベルトコンベアのレベルなのだろう。ということは、現時点での仕様を切る人の専門性もずいぶんと低くい(機織機を木を削って作っている程度のことだ)。そうではなく、仕様を切る人は、ベルトコンベアを作る人のレベルまで行かなくてはならないのだろう。

そこに至って、はじめて機織職人が不要になる。そうではなく、機械の運行を検査する人が居れば良くなる。そのレベルに至ってはじめて生産性が云々というような話ができるように思う。

今は、せいぜい、誰が一番速く機を織れるかというような話をしているだけみたいだ。ポールグレアムは違うみたいだが。やっと意味がわかったかも知れない。

#おれは、多分、その機械の修理工程度だな。

ちょっとぶれてるけど、メモだしな。トヨタの初代にまで至っていないというか。自動織機になってないじゃん。

_ ラインではなくてロボットをプログラムするという感じじゃないかなぁ

タイトルがすべてなんだけど、greenteaさんの言ってることももっともだと思って、あと、shiroさんの3番目というのもあって、これはきっとあるでしょう。というか、なければおかしい。

でも、箸の上げ下ろしを指定しているようなコーディング規約にしたがって作るソフトウェアってやっぱりばかげている。そういう機械的な作業は機械にやらせるのが筋だ。改札口とか高速の入り口、スーパーのレジとか、機械にやらせれば良い仕事があって、その中の1つでしょう。マニュアル化可能な職業で、スマイルが不要なら、機械にやらせるのが人類の進歩というものじゃん(70年代万博を小学生のとき体験した世代なもんで、進歩というものに対する信頼感はあるんだ)。人間の意志決定が必要な職業、あるいは他人の意志決定に影響を与える職業、それが機械化不可能な職業だ(マクドナルドはあのスマイルで買う気のなかったドリンクを買ってしまう人が存在する限りは、機械では置き換えられないのだろう。おれは買わないけど)。

SoftwareFactoryについては、とりあえずおいておくとして。

工業が、だいたい200年弱くらいかけたということを考えると、ソフトウェア産業はたかだか50年(仮にCOBOLをスタート地点とすると50年に微妙に満たない)、まだ150年ほど残された時間があるんだから、ゆっくり試行錯誤しながら考えていきましょう。(人間の試行錯誤の生産性は別段、それほどすごくなったわけではないかも知れないけど、情報の交換速度は早まったから、えいやで、あと30年くらい、と目標設定すればいいんじゃないかなぁ)

ということで。

本日のツッコミ(全11件) [ツッコミを入れる]
_ ishisaka (2008-01-15 07:56)

http://www.isisaka.com/blog/archives/2008/01/post_471.html<br>トラックバックが失敗するのでコメントで。<br>上のURLに感想を書いてみました。

_ arton (2008-01-15 09:06)

ソフトウェアファクトリは専門性を低く設定し過ぎているように思いますが、所詮直感なのでおいておくとして、ポールグレアムとケントベックを同列におくのは違うかなぁ。

_ shiro (2008-01-15 09:07)

私は業務ソフト開発の歴史についてあんまりよく知らないんですが、上のような認識からソフト開発を「工業化」しなければならんということは80年代から現場で実際にやられていて (Cf. Michael A. Cusumano, "Japan's Software Factories: A Challenge to U.S. Management", Oxford University Press, 1991.)、でもそれで現場が変わったのかというとあんまり変わってないような印象があるのです。最近Microsoftあたりが "Software Factory" と言っているということからして、かつての "Software Factory" が結局はうまくいかなかったってことなのかなとか。まあ20年前と今とでは開発プロセスに対する知見も大きく違いますから、言葉は同じでも中身は違うのでしょうけれど、80年代の「工業化」がうまくいかなかったのは(1)当時はまだソフト開発プロセスに関してよく理解されていなかった(2)工業化のプロセスが進行するのに数十年かかるので今はその長い道程の途中にすぎない(3)ソフトウェア開発は原理的に工業化と馴染まない特性を持っている、のどれなのでしょうね。

_ arton (2008-01-15 09:45)

問題設定がさすがですね。(考察中)

_ delta (2008-01-16 12:37)

私見ですが、ここでの「工業」が製造しているものはもっぱらコピーですが、ソフトウェア開発はコピーの製造ではなくオリジナルの製造なので、そもそも比較対象にならないと思っています。<br>どんなに末端のプログラマでも毎日全く同じコードを書いているというのは考えにくいので、プログラム作業=オリジナルの製造=設計と見なした方がよいのではないでしょうか。<br>「工業」での生産性はコピーを製造するという作業の能率を測るものさしでしかなく、ソフトウェアの生産性を同じ考え方で議論しても有効な結論に至らないのでは、と。。。

_ arton (2008-01-16 13:26)

レベルを意識してますか? メタプログラムしてますか?

_ mumurik (2008-01-18 01:13)

いつかこのネタでartonさんとお話してみたいなぁ。

_ yojik (2008-01-18 02:10)

ものづくりは情報の転写だの巻<br>http://d.hatena.ne.jp/fuku33/20070627/1182918013<br>ここで述べられている最後の「生産工程」以外は、<br>ソフトウェア開発と似ているなぁと思いました。<br>最後の「生産工程」はビルドや配備などに相当し、ほぼ自動化(工業化?)されている気もしますが。。

_ arton (2008-01-18 04:09)

お、これはおもしろいですね。>情報の転写だの巻<br>着目したいのは「それはこう作れるな」=工程設計ということかなぁ(完全に何をどうすれば良いかわかってるなら、さっさとやっているわけで、当然、断言できるわけではないです)。工程がわかっているのに、なぜか人力でコード書いているわけですよね? ということは、工程がわかっていないということなんじゃないかな。<br>あと、ソフトウェアはもちろんハードウェアじゃないから、出発点から抽象度が1段上だということを前提しないと、deltaさんのような話になってしまいますね。(別にdeltaさんがどうこうということではなく、それは思考停止だと思います、というか、同じ考え方したらだめに決まってるじゃないか)。<br>それは楽しそう。>mumurikさん

_ yojik (2008-01-18 10:27)

なるほど。<br>たとえば物理世界?の素材にあたるものが、抽象(ソフト)のレベルにおける何なのか?とか色々考えると面白い(難しい)ですねー。

_ arton (2008-01-18 20:47)

そうです。そのあたりです。>素材にあたるものは……何なのか?<br>まだ、素材の原石のようなものを見かけたりしているような気になることがある、というような話ですけど。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

ジェズイットを見習え