エイプリルフールは終わったんだが...

http://itpro.nikkeibp.co.jp/article/COLUMN/20070316/265470/
*1

現・京都大学大学院文学研究科教授

京都大学では「文学研究」でソフトウエア工学をやるのか?

具体的に何を研究しているのかというと、ソフトウエア工学においては、システムのモデルをつくるための共通言語であるUMLと、UMLを使った開発方法論を主に研究している。

最近関心を持って調べているのは「ソフトウエア工学における日本型ハードウエア生産法の流行」についてである。ここでいう日本型生産法とは、分かりやすく言ってしまえばトヨタ自動車を代表とする、いわゆる「日本のものづくり」手法を指している。

ダメだこりゃ.

ここでいう日本型生産法とは、現場のチームが自主性を持って仕事をし、常にやり方を改善し続け、最も合理的なやり方に到達することをいう。

これには同意するが,*2

結論を先に述べておくと、確かに自動車産業に代表される「日本型ハードウエア生産法」はソフトウエア開発に応用できる可能性がある。

やはりこういうのはハードウエアとソフトウエアが同じものだと,ハードウエア屋に誤解させる危険が高いので賛成できない.

四番目は最も強烈であって「変化対応」を「計画順守」より評価する、となっている。顧客がこう変えてほしい、と仕様や計画を変更したら、それを受け入れようという考え方である。

誤解してほしくないのだが,"Embrace Change"は単に「仕様変更を受け入れよう」と言っているのではない.「予定は変わるもの」「未来は予測不可能」であるという『事実を受け入れよう』ということだ.未来は予測不可能であるが故に,事前にたてた計画はあてにならない.計画の精度を高めるために計画作成に時間をかければいいという意見もあるが,時間をかければかけるほど当初予測不可能なイレギュラーが発生する確率も高くなり,その計画が外れる率も増える.

かつてはならば「変化を排除しよう」*3とした.顧客の要求を封じ込めればうまくいくのではないかというわけだ.だが変化しているのは「顧客の要求」に限らない.社会や経済状況の方が変化することもあるのだ.

だから変化は排除できない.受け入れるしかない.それが"Embrace Change"の理念だ.
関連:http://d.hatena.ne.jp/masayang/20070328/1175114317


ただし,これを実現するためには技術的裏付け*4と,組織の変革が必要だ*5.これが日本企業には全くできていない.だから旧態依然の日本企業がXPの真似事をしても,ほぼ確実に失敗に終わる.

日本のソフトウエア開発は「プロセスとツールを軽視している」「すぐ顧客のところへ行って開発を始めてしまうので文書や契約がいいかげん」「計画性に乏しく、顧客の仕様変更を安易に受け入れすぎる」と批判されてきた。

その通り.(文学部の人間が)技術的な裏付けもなしに,ただ営業の利益のために変更を受け入れるのは,竹槍でB29を落とすような作業だ.

(1)の論理性は一種の体系だから、学ぶことができる。確かに論理学を構築したのは西欧人だが、日本人が不向きというわけではなかろう。

うーん....

論理的な考え方は学習できなくもないが,プログラミングにはそれなりの素質や訓練は必要だ.誰にでも習得できるというものではない.そもそも欧米人とて,論理的思考は学習して身につけるものであって,生まれつき身についているものではあるまい.

つまり顧客の価値観が変化するのである。

というより,(1)社会が変化する,(2)顧客には自分の欲しい物が分かっていない,*6だろう.

ソフトウエア開発のプロとしては、動く標的である顧客になんとか追随していくことが「合理的」となろう。

「なんとか追随していく」のではなく「(楽に)追随できるように作る」のだ.そのためのOOP技術であり,そのためのアジャイル開発だ.「何とか,必死に,一日48時間労働で,サービス残業月数百時間で死に物狂いで追随していく」のはアジャイル開発ではない.*7

とりわけ、「そもそも何を作るか」というソフトウエアの目的追求に力を入れることが重要だ。猿性によって、変化する目的を追いかけることも大事だが、やはり最初にできる限りぶれない目的を明確にしないとまずい。そのための技術もある。最近のソフトウエア工学で注目されている「要求工学」がそれである。

ウソを付け.


やはり全般としてこの記事には技術的な視点や合理的な判断が欠落している.方向性は間違ってないにせよ,やはり素人がない知恵を必死に絞って,適当な話をでっち上げてるようにしか見えないな.アジャイル開発についても,旧態依然の老人どもに都合の良い部分だけを切り出して,わざと誤解を与えるように構成している.そういう意味ではかなり悪質な記事と思える.

*1:もし発表が4月1日だったら,「良くできたエイプリルフールネタ」だと思ったところだ.一件本物っぽく見えて,その実ウソの塊というところは,エイプリルフールネタだったら称賛に値する.

*2:実際には現場に自主性が与えられることなど,ほとんどない.

*3:「変更管理」などと呼ぶそうだ.

*4:たとえばリファクタリングユニットテストOOPなど.

*5:オブジェクト指向など,クソの役にも立ちません」なんて経営者がいる企業は,その時点で終わってる.http://d.hatena.ne.jp/JavaBlack/20060608#p1

*6:酷い場合には,(3)顧客は何も考えていない,その時の思いつきで発言する,ということもある.

*7:そもそもアジャイル開発は「週40時間労働」だよね.