自動運転に欠かせない「バグのない制御ソフトを開発する」 (3) ソフト産業はQCで遅れている

2020年10月15日 17:31

印刷

 『欠陥ゼロのソフトウエア開発』(日経エレクトロニクス 1995年11月出版)を読み始めると、「1序論」の初めに次のような文章に出会う。

【こちらも】自動運転に欠かせない「バグのない制御ソフトを開発する」(2) 形式手法とは?

 ❝歴史を振り返ってみると、1960年代までのソフトウエア工学は機能重視の時代、1970年代は納期重視の時代、1980年代はコスト重視の時代と呼ぶことが出来る❞とある。これには「びっくりした」と言うのが正直な感想だ。これではソフトウエア開発の世界だけを知る若い人々の書いた本であると感じてしまう。

 またこの書籍は、品質管理(QC)について「TQM(Total Quality Management)」から書き始めている。これはQCについて、製品そのものの品質を問題としていた時代を経験していないからであろう。だから、1980年代後半に製品の品質が重要視され始めたと認識しているようだ。しかし、それはソフトウエア開発の世界だけのことだ。

 QC活動は、それよりももっとはるかに古く世界大戦の時代から始まっている。現在、経営技術として世界で普及している基礎のほとんどは、戦争技術として開発されたものだ。コンピュータ技術そのものも、イギリス軍がドイツ軍の暗号を解読するために開発した技術であると言われている「エニグマ」からである。OR(オペレーションズリサーチ)なども「バトル・オブ・ブリテン」で使われた技術だ。

 しかし、これについて半世紀前、日本IBMの技術者から直接聞いた話では、「コンピュータはIBMパンチカードシステム」から生まれたもので「国勢調査の技術であった」と言っていた。確かに、当時第2世代として日本IBMが販売していた「1400シリーズ」などには、パンチカードシステムから発展して来たであろう、カードリーダーでプログラムを入力すると言うシステムの名残があったのだ。

 メインメモリーは磁気コアメモリであり、IBM1400システムのアセンブリ言語「オートコーダー(Autocoder)」が、私が出会った最初のプログラム言語だった。これでは大規模なシステムを開発することは難しく、当時としてはソフトの機能を追い求めることしか出来ないようなものだった。そんな時代であっても、製造業ではすでに「品質を求めることは常識」だったのだ。

 QCの講習で、初心者に例題として紹介されるのが「手榴弾」についてだ。手榴弾は、点火して10秒後に爆発する。この品質がばらついて3秒で爆発してしまったら、自分が死んでしまう。かといって、「爆発テスト(製品テスト)」をしてしまったら、商品そのものがなくなってしまう。

 そこで、「ロット検査」と「作り方の標準化の手法」で品質を確保するとの説明がある。QCの基礎を説明しているのだ。例題が「砲弾」にあっても同じだ。

 つまり製造業においては、戦争中でもQCは行われていた。1985年ごろからQCが盛んになった後発のソフトウエア開発の世界は、ひどく遅れているのだ。長く業界を見てきている筆者も、ソフト産業が品質と開発の効率化で遅れていることは経験している。

 「プログラマーは精神的ドカタだな」と半世紀前、開発メンバー間で話し合っていたことを覚えている。一方、製造業の世界では、産業革命後に次々とQCは進歩し続けていたのであろう。いや、手工業の時代でも意識されていたが、職人芸の世界から効率化が進み始めたのは戦争のなせる業であろう。

 残念ながら、「技術の進歩が出来るのは戦争があるから」と言えるのだ。そしてソフトウエア技術は、新興産業のためQCについてはひどく遅れているのだ。「開発技術開発は製造業に比べて半世紀遅れている」と自覚してほしいものだ。これからは、完全自動運転自動車が開発される時代にふさわしいQCの技術を前提としてもらいたい。(記事:kenzoogata・記事一覧を見る

関連キーワード

関連記事