偏頭痛であまりアタマが回ってないのでとりとめなく書くよ。
15年も日本の半導体が世界シェアを落とし続けているという話の続き。今日もPCの拡張ボードをパソコンに組み付けるので見ていたのだけれど、どれもこれも本当に日本メーカーの半導体が乗ってないボードばかり。なきたくなった。
日本の半導体産業はどこで負け組みに転じたのか。
結論から言うと、半導体設計支援ソフトの開発で負けた時に、もう勝敗は決していたのだろうと思う。
当初、日本の半導体メーカーはどの会社も、半導体開発のためのソフトを自前で開発していた。これをある時期から大半をアメリカ製に頼るようになった。何でもかんでも自前がいいというつもりは無いが、なぜここで負けたのか、という点には、反省すべき点が山ほどある。この戦いで勝てないのに、他人のふんどしよろしく購入したツールで勝負しようなどと考えたのが甘すぎたんじゃないのか。
大半をアメリカ製に頼るようになった後、半導体製品の開発現場はどういうことになったか。半導体の進歩は早いし、EDAツールの進歩も早い。いちいちマニュアルを日本語に翻訳している暇はない。しかし最先端の半導体設計ツールの英語のマニュアルを読んで、すらすら理解できる技術者は日本ではごく一部というのが実情だ。大手半導体メーカーといえども例外ではない。特に具合のわるいことに、半導体のFABは地方に点在しているのだが、地方勤務の技術者の平均的な英語力なんていうのは悲惨な状況だと言ってよい。つまり、高性能なツールを導入しても、それを使いこなせるエンジニアが圧倒的に少ないために、結果的には大した戦力UPにならなかったのだ。
マニュアルの読解すらままならないのに、実際の運用にあたってはさらなる困難が待ち受ける。ツールのバグだ。それでもアメリカ製のEDAツールは、日本のそれよりずっとバグは少ないんだが、それでも完全にゼロというわけではない。特に最先端の新しいツールほど、そういうケースにぶちあたる確立が高くなる。この手の問題を常にスムーズに解決できるかどうかが、結果的に勝敗を分けることになるプロジェクトもあるだろう。この点で、日本人と英語圏の技術者とどっちが優位かということは言うまでもない。
では、そもそも、なぜ日本製の半導体設計支援ソフトはアメリカのそれに負けたのか。
まだ両方がしのぎを削っていたころ、・・・今から10年ぐらい前・・・しかしそれでもはっきりと日本製ソフトの方に、劣る点があった。バグの多さである。ケイデンスやシノプシスのソフトは、当初から驚くほどバグが少なかった。この差がどこから生まれたのかというと、これは想像だけど、これらの会社では、かなり早い段階にデバッグや検証作業の大半を自動化するということに成功していたのではないかと思われる。それに対して日本のソフトは、デバッグの大半を人海戦術に頼る時代が続いてしまったのだ。・・・映画でしか見たことは無いが、B29と竹やりを連想させるような技術力の差が、ここにはあった。
デバッグを自動化し、バグの無いソフトを早期にリリースすることができれば、その後のサポートコストを劇的に下げることができるだけでなく、有能なエンジニアを迅速に次のプロジェクトに再配置することが可能になる。より難易度の高い仕事にチャレンジし続けることができ、新しい機能を搭載したソフトを次々とリリースしていくことができる。
これに対して、最初の段階でデバッグを疎かにした開発チームは、あとあとまでデバッグやトラブル対応に追われるため、有能なエンジニアを次のプロジェクトにまわすことができず、生産性の低い仕事に時間を浪費させられることになってしまう。その分、次の新しいプロジェクトの本格始動は遅れてしまう。士気も下がる。このサイクルが何回か積み重なった後には、両者の間には目も当てられないほどの格差が生じてしまい、そして結局、後者だった日本の半導体メーカーは、自前のそれらを捨てる羽目になった。
運命を分けたのは何だったか? ソフトウエアに対する徹底した検証と、それを支えるための自動検証システム。ここだ。
はてな村にもソフトウェアを仕事にする人は多いものと見られ、言語にまつわる話題などは頻繁にみられるのだけれども、検証をいかにシステマティックに行うか、合理化するか、自動化するかというような話はなかなか見かけない。これは数ある敗因の1つに過ぎないかもしれないが、これだけでも十分に致命傷だ。このことに気がついてない人が多すぎるんじゃないだろうか?。
このへん、日本の第一線で仕事をしている人たちはどう考えているんだろう?
関連:
「ソフトウェアは工業製品ではない」、Rubyのまつもと氏が講演
http://www.atmarkit.co.jp/news/200904/10/matz.html