ソフトウェア工学というバズワード

 ソフトウェア工学というのはなかなか曖昧なもので、wikipediaソフトウェア工学の項が、いの一番に「分野の曖昧性と論争」という章から始まっているあたりなんか象徴的だと思う。

 大雑把には「コンピュータのソフトウェアの開発方法を研究対象とする情報工学の一分野」となるようだけど、構造化プログラミングとかの技法から、今では開発者の憎悪を一身に受けている感のあるウォーターフォール・モデルまで幅広いジャンルに及ぶ。

 ニュートン力学相対性理論量子力学の範疇の事項を説明できないからといって、力学なんて間違いだらけで使い物にならないとか言う人はいない。それは物理の発展の歴史の一歩だし、不足分を補う理論が出てきて矛盾点をどんどん解消してきたわけだ。

 具体的な例もあげずに「従来のソフトウェア工学なんて間違いだらけ」とかdisってるのを見ると、それって単なるルサンチマンなんじゃないのと言いたくもなる。過去の手法の既知のデメリットを槍玉にあげて「だからソフトウェア工学は駄目なんだ」とか言われても困るけど。「ソフトウェア工学」をこき下ろして「オレオレ工学」の素晴らしさでも語りたいの?温故知新といこうぜ。と、ナギセはナギセは誘ってみたり。

 ウォーターフォールの大規模プロジェクトでデスマーチを経験したりなんかすると坊主憎ければ袈裟まで憎いという奴で、ウォーターフォールに関わった手法は全て悪だ!と言いたくもなるのだけども、そこは細分化して個々の手法の何がどうかを考えるってのが冷静な議論ってもんだと思う。

 しかしまぁ「従来の」と言うのはどこまでが「従来」なんだろう?「従来のソフトウェア工学」なんて言い方しないでウォーターフォールが嫌なら名指しでそう言えばいいと思うよ。

 僕はプログラミングというのは全行程が製造業でいうところの「設計」に当たると思っているし、設計というのは案を出してはプロトタイプを作って評価して、とやるのが通常だと思っているから、プロトタイピングなしに一発で設計を完了させようなんてウォーターフォール・モデルが優れているというつもりはさらさらないのだけど。

 オブジェクト指向は完璧とはとても言えないけども、確かに一定の成果を収めたし、その不足部分を補う手法もいろいろと提案されている。ソフトウェア工学ってのは捨てたもんじゃないよ。