品質

creation date:2003/1/14
last update date:2003/1/16

ソフトウエアの品質とは

通常、市販されている製品に瑕疵があれば、大小の差はあるものの必ず問題となります。食品メーカーの食中毒事件などは人の健康に直接関わってくるので社会的に糾弾されますね。購入したばかりのAV機器が本来の動作をしなければ、販売店にクレームを入れ、初期不良として交換してもらうことになります。新築の建て売り住宅が1年もせずにあちこち傷みだせば欠陥住宅や手抜き工事として訴訟沙汰です。

ところが、ソフトウエアの場合は、だいぶ趣が異なるのです。店頭に並んでいる製品であっても、欠陥を持っているケースが大変に多いです。アプリケーションソフトでは致命的な欠陥は少ないのですが、些少な問題が見つかるのはよくあることです。オペレーティングシステムとなると、インターネット時代ということもあって、機能上の問題だけではなく、セキュリティ上の問題が多く見つかります。

ソフトウエアの世界では、リリース後(発売後)に欠陥が生じることが、なぜか認められているのです。インストールが途中で異常終了したり、インストールしたソフトが起動しないといったことがあっても、それで大騒ぎすると「トーシロ」扱いされて恥ずかしい思いをさせられたりします。修正ソフトをFDで送付してくれたり、HPからダウンロードできたりすれば、まぁ解決するのですが、それによって新たな欠陥が生じたりもするからやっかいです。また、不具合を発見してベンダに問い合わせると、「次バージョンで修正する」と言われたりします。そうなると、保守契約を結んでいなければ、有償で次バージョンを購入することになります。まったく、消費者を嘗めているとしか思えないですがそういう世界なのです。

業務用ソフトウエアの場合

新たにシステムを構築することを考えてみましょう。仮に、販売管理システムとします。仕入をして、それが在庫となり、注文を受け、引当をし、出荷すると売上になります。その辺の流れはだいたいどこでも同じでしょう。在庫を持たず、注文を受けてから製品を組み立てて出荷するとか、毎月の納品数が顧客毎に予め決めておき、その予定に基づいて出荷するということもあるでしょうが、仕入れた(あるいは、作った)物を売る行為に変わりはありません。

販売管理システムを構築するために、2つの方法があります。一つ目は、一から作ることです。二つ目は、パッケージソフトを買ってくることです。パッケージとしては、TVのCMでよく流れている、経理ソフトの「勘定奉行」なんかが有名ですね。

そのうち、「一から作る」について考えます。「一から作る」ことが、いろいろな問題を引き起こします。パッケージの場合も、不足していいる機能を作り込んだりしますので、新たに作る部分については「一から作る」のと同じです。

販売システムを作るのに、顧客側としては「どんなシステムが欲しいか」を決めなければなりません。そのため、在庫担当グループ、営業担当グループから代表者を呼びます。経理システムに売上データをつなげるためには経理担当者も必要ですし、法的な問題を検討する必要があれば法務部門の社員も必要でしょう。そういった人たちがあれこれ議論してシステムの仕様を決めます。それをソフトハウスがよく聞いて、システムとして設計しコンピュータ言語や開発ツールを駆使して、作り上げます。

人から人へ情報を伝えると、たいてい、何らかの漏れや誤解や勘違いや記憶間違いが発生します。<在庫担当者>→<在庫担当代表者>→<代表者会議での議論>→<システムエンジニア>→<プログラマ>と流れていく度に、それが発生するわけです。これに加えて、都合のつかない在庫担当代表者の替わりに別の社員が会議に出席したり、プログラマが退職して別のプログラマに引き継いだりもします。できたものを、在庫担当代表者がチェックして「これでよし」と言っているのに、在庫担当者が「これでは使えない」と言ったりします。初めに決めたことが、作っている間に再三再四、変更されるのでこれもまた大変です。

結果的に、業務用ソフトウエアを「一から作った」場合も、不具合が発生します。そして、それはやはり、そういうものだと「認められている」のです。パッケージとは違い、ある規模のシステムを、ある期間で、ある人数で「一から作る」のですから、上記の伝達の問題に加えて、開発側メンバの各人の技術の問題や、スケジュールの問題、マネジメントの問題で不具合を出すことも多くあります。顧客としては、不具合が出てもよいと考えているわけではなく、多少は仕方ないと思っているだけです。だから、不具合の修正はしっかりやらされますが、とにかく不具合は発生するのです。

CMMの実際

私が所属していた会社では、CMMという品質管理手法を導入していました。不具合を出さず、顧客の満足が得られるシステムを作ることで、他社に対して優位に立とうというわけです。簡単に説明すると、開発工程をきちんと定義し、チェックポイントを設け、どんなチェックを行うかを決め、きちんと実施し、さらに、そういった仕組みそのものを見直していくといったものです。顧客に対しても、このCMM手法の導入を喧伝したものです。

では、品質が相当良いのだろうと思われるかもしれませんが、そううまくはいきませんでした。仕組みはいいのでしょうが、運用する人間、組織によって、どうにでもなってしまうのです。このCMMについては長くなるので別項でまた取り上げることにします。