2011-03-20

安心・安全を担うソフトウェアを実現するには

東北関東大震災で被災された皆さまにお見舞い申し上げます。

このブログで自分自身の業務ドメインについてクリティカルデバイスのソフトウェア開発を行ってきたと書いてきました。クリティカルデバイスとは医療機器のことです。これまで、ブログの記事投稿や外部における発表において自分が所属する業務ドメインを明らかにしてこなかったのは、サラリーマンであるにも関わらず、25年間務めている現在の組織のノウハウを漏らしているかのようなあらぬ疑いをかけられるのがいやだったからです。

しかし、今回の震災に東京地区で遭遇し、さまざまな苦難に多くの日本人が自分ができることを考えているのを見て、自分が社会に対してできるのは医療機器ソフトウェア開発で得た経験により、安心・安全を担うソフトウェアはどうすれば実現できるのかについて情報を発信することだと思いました。

もちろん組織内の情報を外に出すことはこれまでも、これからもありませんが、組織の利益以上に、社会への貢献について自分ができることを考えていきたいと思っています。

さて、東京電力福島第一原子力発電所の事故を見て、多くの方達は「なぜ、今回のような事態が起こることを想定しなかったのか」と思われているでしょう。

私は、商品やサービスの価値には「顕在的な価値」と「潜在的な価値」の両面があると思っています。「潜在的な価値」は当たり前品質と言い換えることもできます。できていて当たり前なので、何かのアクシデントが起こると「潜在的な価値」がとたんにクローズアップされます。

世の中の多くの商品やサービスでは表面に表れている「顕在的な価値」、例えばカタログに掲載されているようなスペックに消費者は着目しますが、「顕在的な価値=当たり前品質」に着目する人はそう多くないと思います。

しかし、私のような医療機器のドメインや社会インフラを実現している産業ドメインでは、この「顕在的な価値=当たり前品質」を軽視することは絶対にできません。なぜなら、そこに問題が起こるとお客様に多大な迷惑をかけたり、最悪の場合、健康被害をもたらしてしまう可能性があるからです。

そうならないために、私たちはリスク分析をし、ユーザーリスクを軽減するための対策をハードウェアやソフトウェアにインプリメントするのですが、それでもさまざまな問題は発生します。そして、リスクをコントロールすること以上に重要なのは、問題が起こってしまったことに対する原因の追及と同じ過ちを繰り返さないように是正し、予防する処置を行うことです。

エンジニアは顕在的な価値を高め、期せずして発生してしまった問題に対しては冷静に再発防止の対策を粛々と実行しなければいけません。

日本のエンジニアは長い間同じ商品開発に携わることが多いため、安全や信頼を実現するためのノウハウが技術者個人に蓄積しやすいと感じています。この状況は開発するソフトウェアの規模が小さく、複雑でなく、かつ技術者の安全実現への熱意が強い場合には有効に働きますが、実行コード行数が30万行を超え100万行以上の規模になったソフトウェアでは有効ではありません。

ソフトウェア開発プロセスを組織的に管理し、品質マネージメントシステムのもとで是正、予防も実施していかなければいけません。長い時間エンジニアの熱意や責任感と職場内で継承されてきたノウハウで安全を確保してきた日本のプロジェクトには開発プロセスで品質を確保するというアプローチは受け入れがたいことでもあります。(建前では受け入れつつも本音では役に立たないと思っている者は多いと思っています)

習慣化してしまった日々の仕事のやり方はそう簡単には変えることはできません。そして、プロセスアプローチを強固に推し進めてきた欧米の製品よりも、日本製の製品の方が品質が高いというケースも少なからずあります。しかし、その状況は長くは続きません。ソフトウェアの規模や複雑性が増大し、機器同士がネットワークでつながるようになると、これまでうまく回ってきた日本的なアプローチは徐々にほころびを見せてきます。

しかし、だからといって技術者の安心・安全実現に対する熱意なしに、クリティカルデバイスの品質確保はできないと思います。日本的なアプローチと欧米的なアプローチの両方を推し進めることで、安心や安全が確保できるのです。

話しは変わりますが、2011年2月10日に「ソフトバンク 医療分野におけるスマートフォン活用に関するセミナー」、2011年2月28日日経ものづくり主催の「医療機器開発の勘所」セミナーに参加しました。

前者は、医療分野において、iPad や iPhone などの IT機器を導入して、実際に活用している例を、後者は、グローバルマーケットにおいて日本から世界に医療機器を開発・販売していくためにはどのような責務を果たさなければいけないのかについてのレクチャーでした。

IT(ソフトウェア開発の意味も含む)は確実に医療の世界をより便利に、より効率的にすることができると感じました。しかし、使いやすさ、便利さといった顕在的な価値の後ろで、潜在的な価値=当たり前品質を維持し続けなければ、機器やシステムを安心して使うことはできません。

安全や安心にはコストがかかります。私たちは安全や安心のためにそのコストを負担しますが、特に日本人は消費者として厳しい目を持ち、その上で安全や安心に対するコストを支払います。安全や安心にかかるコストを値切ったりすることは少ないと感じています。

だからこそ、安全や安心を担うソフトウェアを開発しているエンジニアはその期待を裏切らないようにいい仕事をしなければいけないのです。私は、最近の技術者は納期のプレッシャーに負けて、安全や安心に対する責任から逃げたいと思う弱い気持ちが大きくなっているように思えてなりません。

そういうときに、私は「何のためにこの仕事をしているのか」ということを技術者に問うようにしています。消費者の皆さんには無理なお願いかもしれませんが、日頃、何事もなく動いているシステムを見たら、「これはどうやって動いているのだろうか」と気に掛け、何事もなく動いて役に立っているシステムを見たら、それらのシステムを作り上げた誰だか分からぬ技術者達にほんの少し感謝の気持ちを持って欲しいのです。

そのほんの少しの感謝の気持ちが技術者のモチベーションを高め、安心・安全をさらに強固にするためのインセンティブになると思っています。

私自身はそのようなシステムを実現するために、日本の技術者やプロジェクトが何をすればよいのかについて、自分自身の25年の医療機器ソフトウェア開発の経験を元に情報発信していこうと思います。

0 件のコメント: