ソフトウェア工学は失敗している

特に学術的にソフトウェア工学に触れたことはないのですが、むしろそうではなく現場にいる身としては、ソフトウェア工学は失敗しているように見えます。
「成功していない」ように見えるのではなく「失敗している」ように見えるのです。


もちろん、いまソフトウェア開発で使う技法やツールなど、ソフトウェア工学の産物はたくさんあり、現在のソフトウェア開発がソフトウェア工学から生まれたもので支えられていることには間違いありません。
でも、そうやって築き上げてきたものが、1999年以降ガラガラと崩れて、そしてうまく再構築できていないように見えます。
1999年、なにがあったかというと、XPエクストリーム・プログラミング入門という本が発行されたのです。リンク先は2版ですが、日本語版でも初版は2000年12月になっています。
ここからソフトウェア工学がガラガラ崩れた気がしています。


では、ここまでソフトウェア工学がどういう感じだったかというと、オブジェクト指向が大成功し、統一設計技法の前段階としてUMLができ、異機種通信としてCORBAが注目され、統一データ定義としてXMLが策定、開発プロセスとしてCMMに期待が集まっていたという時期でした。
しかし、結局統一設計手法は完成せず、UMLだけが残りました。実際に使われているのはその一部です。CORBAも普及せず、WebプロトコルにあわせてSOAPが出てきたものの、結局単純なRESTが定着しました。XMLはいまは毛嫌いされています。大成功したはずのオブジェクト指向も、Webアプリではうまく適用できませんでした。
そしてCMMもいま特に話題になることもありません。
また、動的型付言語の普及も、ソフトウェア工学離れのひとつであると言う事ができるかもしれません。
さまざまな技術とともに、ソフトウェア工学は前世紀の遺物になってしまった感があります。


ここで、やはりCMMの失敗がソフトウェア工学にとっての痛手だったように見えます。
もちろん、プロセスを規定することが難しいということは当時からも言われていました。それであるから、CMMはプロセスそのものを規定するのではなく、プロセスの規定方法を規定するというメタプロセスになっていたのです。
そして、すべての組織で同じプロセスを採用することはできないということから、5段階のレベルを設けました。また、プロセスは変化し続けなければいけないということから、CMM成熟度レベル5では「最適化している」という成熟度になっていました。
これはなかなかいいかもしれないということで、期待は大きかったと思います。


でも、とにかく運用が大変だとか、CMM成熟度レベル5でも品質がいいわけじゃないとか、そういう話がきこえてくるようになりました。
そこにXPですよ。アジャイルですよ。
もともとソフトウェア工学に対しては「がっこーで現場しらない人が研究してる手法なんて使えない」のような声があったのですが、XPやアジャイルによって「現場から生まれた手法のほうが使えるよねー」というのが決定的になりました。


ソフトウェア工学が何を失敗しているかというと、その学問自体の認知度が低すぎることです。
ソフトウェア工学がどのような問題を扱う学問かが知られていない。どのような問題を扱う学問か知られていないので、その問題に直面している人がソフトウェア工学の成果を積極的には利用できない。
就職活動で「半年でプログラムは覚えれるし専門は必要ない」のようなことを言われるという話があります。たしかにアルゴリズムなど実装技術の研究をしていた人をSIの開発現場で生かすのは難しいと思います。でも、ソフトウェア工学の専門知識は、半年で覚えれるものではないし、SIでの開発現場に必要になるはずです。


ソフトウェア開発がある限り、ソフトウェア工学は必要なので、XP・アジャイルを織り込んで再構築して、認知度を高めていってほしいなーと思います。再構築とかは他力本願になってしまうけど。


ソフトウェア工学が扱う範囲や内容については、東大のこのPDFが参考になると思います。
ソフトウェア工学 東京大学大学院総合文化研究科 玉井哲雄


書籍としては、この本がよくまとまっていますが、現代版が欲しいところ。

ソフトウェア工学―理論と実践

ソフトウェア工学―理論と実践

  • 作者: シャリ・ローレンスプリーガー,Shari Lawrence Pfleeger,堀内泰輔
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2001/11
  • メディア: 単行本
  • 購入: 1人 クリック: 36回
  • この商品を含むブログ (9件) を見る


※ 追記(2013/6/21) なんか参考になるインタビューが。 電気通信大学:西 康晴 先生インタビュー:第2回:日本のテストの現場への提言 | 豆蔵ソフト工学ラボ