庵主の日記2

2003年3月22日 またもやソフトの修正ミス

 21日、全日空のコンピュータ・システムがダウンし、多くの乗客が影響を受けた。連休の初日ということもあって、空港での混乱に拍車をかけたようだ。ちょうど前日に、同じ全日空を使って日帰りで出張した直後だけに、1日ずれていたら仕事にならなかったところだ。

 今回も、原因はソフトの修正ミスのようだ。システムの機能が複雑になり規模が大きくなったことに対して、そこに従事するソフトウェア技術者(エンジニアかどうか分からないので)のスキルが追いついていないのだろう。特に、派生開発(新規開発とプロセスを区別するために、私はこう呼んでいる)についての明確な指針がないことも影響していると思われる。私が知るかぎり、派生開発についての文献は(日本には)1冊もない。

 多くのソフトウェアの開発現場では、派生開発を新規開発のプロセスを明確に分けていないと思われる。少なくとも、私のこれまでの活動範囲の中には1社もなかった。つまり、そこで行われている行為は、新規開発のプロセスか、それに近いものである。もっとも、新規開発だってプロセスを明確にしているとは限らない。そうなると当然、目の前の派生開発の現場では、さらにいい加減なプロセスになるだろう。バグはプロセスに起因している以上、派生開発用のプロセスを設計できなければ、この種の問題は解決しない

 もう一つの不安は「オブジェクト指向」の普及にある。今回のシステムが、オブジェクト指向で開発されたものかどうかは分からないが、オブジェクト指向によるソフトウェアの開発が普及していく中で、「設計する」ことの意味が見失われたように思われる。「凝集度」や「結合度」という概念は、「構造化手法」と一緒に脇に追いやってしまったため、巨大な関数を平気で書いているのを目撃することが多くなった。メンバー関数の呼び出し構造が「フラット」から「縦長」になったことで、再利用の効率を悪くし、同じような処理が複数に点在する例も目にしている。

 いずれも、オブジェクト指向の技術を正しく習得していないものと思われるが、結果として、オブジェクト指向は、その設計の品質によっては、保守作業(派生開発)に大きな支障を来す。それは構造化手法の時よりも影響が大きいし、問題が起きやすいかもしれない。どうやら、十分に教育訓練を受けた者以外は、プログラムを触ってはならない時代になっているのかも知れない。

 今後も、新規開発よりも派生開発の比重がはるかに大きくなっていくと思われる中で、このような状況では心もとないし、ますます社会的な混乱のネタになってしまう。さらには、ソフトウェア産業の地位を低下させるだけである。