コンピュータの信頼性

「コンピュータの処理結果なので間違い有りません」よく聞く言葉だ。
しかし、コンピュータのトラブルもしばし耳にする。
しかし、それでも「コンピュータの処理結果なので間違い有りません」と平気で言う。

人に何か計算をさせてみて、その結果に疑問を持った時に「この計算、大丈夫?」と確認するだろう。
このとき、「電卓でやったので間違い有りません」「わたしが算盤で確認していますから」「わたしが暗算したので」等と言う返事があったらどうだろうか。
算盤に対して電卓は信頼性が高い様に考えるだろう。
相手を見て、算盤1級の彼なら、信用する。
テレビ出演もした、暗算の名手なら、信頼するだろう。
が、普通の人が「暗算で」などと言えば、2 x 3 程度の計算でなければ、「まじめにやれよ」と言うであろう。

まして、いくつかの表に絡むような、複雑な計算なら、電卓を使ったかどうか程度ではなく、落ち着いた緻密な計算を出来る人間かどうかを評価して物を言う事になるだろう。

コンピュータはどうだろう。
確かに、現在のコンピュータは、パソコンと言えども、基本的な演算機能に問題はない。
これは、ハードウェアの基本として、命令制御が、限定された基本命令の組み合わせを正確に処理できる事が十分確認できる為でもある。
電気信号の何万分の一のトラブルも、複数処理による確認を取れば、指数関数的にエラーは極限できる。

しかし、現代社会で、コンピュータで処理させると言うものは、こんな簡単なものではない。
例えば、金利計算。
金額、日数、金利の組み合わせである。
しかし、日数をどのように計算するか、当日を含むかどうか、端数をどうするかと言うのは、仕様の問題だ。
そして、この仕様どうりに計算させるのが、ソフトウェアである。

が、このソフトウェアが眉唾物だ。
コンピュータが出現を始めた頃は、科学技術者の手にあった。
が、ソフトウェア開発が、容易になるにつれ、だれしもが参画できるようになった。
大衆化と言う意味では良いのだが、信頼性が落ちると言う要素も大きい。

バブル期、市場経済の繁栄と共に、コンピュータ処理需要も増大した。
ソフト業界も巨大化し、より多くの技術者を必要とした。
が、技術者というのは、そんなに簡単に増加するものではない。
しかし、結局は、頭数が物を言う世の中になって行く。
優秀な技術者1名より、シロウト2名の方が、ソフト企業にとっては経済効率が良かったのだ。
ソフトの開発は、要はマンパワーである。
コストには人月換算が行われる。
100人の技術者が、12ヶ月かかれば、1200人月。単価100万円なら、12億円と言う事になる。
もちろん、技術者の水準により、単価も変るのだが、ベテランと初心者の差は2倍もはない。
この例で、もし、初心者を投入すればどうなるだろうか。
本来、単価100万円であるが、初心者で単価70万円で済ませれば、30万円づつ浮くのである。
これが、ソフト産業の利益とされた。
もちろん、全ての要員を初心者に置きかえると、プロジェクトは成り立たないから、基幹要員は上級者があたる。
そして、節約がたたると、プロジェクトの失敗に繋がるのである。

さて、ソフトの技術者であるが、医者のような免許制度はない。
通産省が、情報処理技術者試験を形の上で奨励しているが、あまり実効性はない。

すなわち、情報処理の基本を対して理解していない者が、平気でソフトウェアを作っているのである。

ソフト企業の求人広告で、「初心者歓迎」と言う表示を良く目にする。
「やる気さえあれば、コンピュータの経験がなくても大丈夫。当社にはほぼゼロの状態で入社して、いまではエンジニアとしてバリバリ働いている先輩がたくさんいます。」とのたまう。
具体例として「入社後の新人教育はコンピュータの基礎、OJT。仕事を早く覚えるには現場で体験するのが一番。初級プログラマとしてスタートし、SE、上級SEへとステップアップ。」と。
あたかも、素晴らしい響きがある。
が、実態は、単に現場に投入し、適当にやらせているのが落ちだ。
きちんとした体系であれば、経験3年でも、立派なSEだが、いい加減な体制では、10年やっても、初級プログラマ以下なのだ。
無免許運転の経験10年を信じないのと同じ事だ。

そして、この成果として、ソフトウェアが動作して居るのである。

ソフト開発費の削減。
リストラ社会で求められている事項だ。
が、ソフトウェアの開発コストが、人数 x 単価 = 人月 という計算で成り立っている以上、単価を抑える事が主眼となる。
簡単な道は、より単価の低い外注へ回す事だ。
下請け、孫受け、その下と、訳も分からず、なげ回される。
当然の事ながら、新人アルバイト程度を、ハッタリかませて参入させる。
良い結果に結びつくはずがない。

それでも、十分な評価体制が整っていれば、少なくとも、不良品のまま世に出る事はない。
しかし、この評価部門を、「それなりに出来ているはずだから、評価確認は半分で良かろう」と削減しては堪らない。

そしてまた、「稼働日は遅らせる事は出来ない」「少々のトラブルは大丈夫だろう」という経営判断で稼動させると、みずほ銀行のように、社会的に致命的なトラブルとなって行く。

コンピュータにやらせている事が複雑になればなるほど、不測の要素は指数関数的に増えるのである。

発注した母体がどれほど社会的信用があろうが、最終的にコンピュータを使うのがだれであっても、ソフト開発の実態を掌握していなければ、意味がないのである。

開発技術者の能力向上が第一だが、品質管理体制は、開発サイドと共に、利用側が確保しなければならない。
そして、それは、「コンピュータの処理結果なので間違い有りません」と言い切れるだけの信頼性を確保しなければならないのである。

「コンピュータの処理結果なので間違い有りません」と言い切るおめでたい人。「コンピュータの処理結果なので怪しい」のだよ。

「わたしが計算したので間違いありません」と信頼されるものでなければならないのである。


関連情報