2008-08-17

国際標準との向き合い方

ソフトウェアの世界でも国際標準への対応が求められる機会が今後増えてくると考えられる。ISO 9001などが最もポピュラーだが、各業務ドメインにおいてもソフトウェアを意識した個別の規格がでてきた。日本のエンジニア特にソフトウェアエンジニアは国際基準・国際規格との付き合い方が下手だ。

それは、おそらくソフトウェアエンジニアが自分たちの日々の取り組みを外部にさらす機会がほとんどなかったからだと推測される。今回はソフトウェアエンジニアが国際標準とどのように向き合っていけばよいのかを考えてみる。

【国際標準との向き合い方】

国際標準の策定に対して、日本のエンジニアは自分たちとは縁遠いもの、天から振ってくるものだと考えがちだが、実際にはそうではない。国際標準は各国の代表が意見を出し合って議論し、投票によって内容を決定する。もちろん日本も代表として標準の策定に参画しているので、意見を主張することができる。ただし、日本人は議論の際に押しが弱く、欧州のように多数派を構成する能力に長けていないため、国際標準を自分たちの考え方に引き寄せることが難しいようだ。その結果、国際標準の多くは欧米が中心となって作られることが多く、責任を権限が明確な組織において構成メンバの役割をベースに「誰が何を」すべきかに焦点が当てられることになる。

ところが、責任や権限が明確でなくても、いざというとき、エンジニア同士が権限の範囲を超えて協力しあうことで問題を解決していく日本の環境では、このような考え方で体系化された方法論がうまく機能しない場合もある。しかし、鉄道、航空機、自動車、医療機器、航空宇宙など、組込み製品にソフトウェアを搭載して世界に商品を展開している日本の組織では、世界の標準や規格が日本人に合わないと愚痴をこぼしているだけでは、グローバルマーケットで生きていくことはできない。

多数派を占める欧米中心に決まった標準であったとしても、世界に商品を供給していくのなら世界のルールににしたがって自分たちの商品の安全性や信頼性を示すことも必要なのだ。海外の企業と渡り合っていくのなら日本人もルールの策定に積極的に関わり、自分たちの主張を標準に反映させるように働きかけていくことが大事である。

国際標準を「自分たちには縁遠いもの」「天から振ってきたもの」「実質的には役に立たないもの」と考え、国際基準の縛りから逃れる抜け道を探すのではなく、基準が作られた背景や策定に関わった人々の考え方をポジティブに捉えて、どうしたら自分たちの中に取り入れることができるかどうかを考えることが重要である。

【安全性や信頼性を説明する責任】

グローバルなマーケットで商品をリリースし社会的な責任を負っていく組織は、ユーザーに対して商品を実質的に安全で信頼して使ってもらえるようにするのと同時に、商品が安全で信頼できることについて根拠を持って説明できるようにすることがが求められる。開発プロジェクトは、組織内の品質保証担当や外部監査機関、組込みソフトウェアを発注したクライアントなどにソフトウェアの安全性や信頼性を説明する。クリティカルデバイスのソフトウェアの世界では、定期的な内部監査、外部監査が行われ、監査の際に十分な説明ができないと是正を求められたり、最悪の場合商品の出荷を停止させられたりすることもある。

近年、組込みソフトの規模が増大し、複雑化が進んだことによって、組込み商品そのものの安全性や信頼性を示すだけでは事故を防止することが難しくなり、商品に搭載するソフトウェアの安全性や信頼性についても説明責任を果たす義務が生じるようになってきた。この傾向は、航空宇宙、鉄道、プラント、医療機器のようなクリティカルなソフトウェアでかつ、資格を持ったオペレータが商品を扱う業種で検討が進んできたが、今後は自動車など資格を持ったオペレータではない、一般ユーザーが使用するような機器に搭載するソフトウェアに対しても、安全性や信頼性の証明が求められるようになってくることが予想される。

【説明責任が果たせない製品は世界に受け入れられないし実際に危ない】

日本の特に昔気質のエンジニアは、「商品が実質的に安全で信頼性が高ければその根拠をわざわざ示す必要はない」、「自分たちには安全で信頼できる商品を作り上げる自信がある」、「その開発工程や工程内の活動はわざわざ他人に披露するようなものではない」と考える人が少なからずいるように見受けらる。実際に安全で信頼性の高い商品をアウトプットし続けることができていれば、その主張も分からないではないが、大規模、複雑化したソフトウェアシステムにおいて安全や信頼を確保し続けることが難しくなった今日では、仮に日本製品のリコールの数が他国の製品に比べて圧倒的に少なかったとしても「最終製品の品質が高ければ、開発の工程や安全や信頼の根拠を見せる必要がない」という主張は国際的には「逃げ」や「隠蔽」ととらえられてしまう。

日本人が作っているから安全であるという主張は組込みソフトウェアの規模が小さかった時代には通じたかもしれないが、ソースコードの行数が数十万行から数百万行になってくる、また、オフショア開発で海外にソフトウェアの制作を依頼するようになった現在では説得力がない。商品に組み込んだソフトウェアが安全で信頼できるかどうかは、国際的な標準で説明できりようにしておくことが必要となる。仮に日本のエンジニアが独自の方法で製品に搭載するソフトウェアの品質を確保しており、国際標準が示す方法と相違点があったとしても、その根拠を説明することが必要なのだ。

【国際標準をポジティブにとらえる】

このとき、ソフトウェアの安全性や信頼性を国際標準に沿って説明するための労力を、育った環境の違う人たちへの余計な作業だとネガティブに考えてはいけない。ソフトウェアに起因するリコールが増えてきたことによって、日本のユーザーだけではなく世界のユーザーが製品に搭載されているソフトウェアが安全で信頼できることの説明責任を求めるようになってきたのだと認識しなければならない。国際標準に対するネガティブな気持ちをポジティブに切り替えるには、まず、世界のユーザーが何を考え、何を要求していることを知って、国際標準が目指していることと、国際標準がに記された内容のうち自分対に役立つところを見いだそうと前向きに考えることが必要となる。

その考え方ができれば、現状の自分たちのソフトウェア開発において、国際標準のどの部分を取り入れると有効なのか、どうすれば世界に対する説明責任を果たすことができるのかが見えてくるはずである。また、国際標準の有効性は何かを追っていくとクリティカルデバイスのソフトウェアエンジニアでなくても、ソフトウェアの安全や信頼で先行する業界の世界標準を知り、それらの良いところを自分のドメイン、自分の製品に取り入れることができるようになる。それができれば、自分たちの製品においてリコールを起こさないソフトウェアを作るためにプラスに働くだろう。
 

1 件のコメント:

匿名 さんのコメント...

酒井さん、はじめまして。

組込みソフトウエアのプロセス改善に関するコンサルティングをしている会社の者です。

私共は、欧州発の、Automotive SPICEというプロセスモデルに基づき、自動車部品メーカーさんにコンサルティングやアセスメントをしています。

こういった活動の重要性を、とてもわかりやすく説明してくださっているので、ビジネスブログで引用させていただきました。

今後とも、組込みソフトの世界をわかりやすく読み解いてくださることを期待しています。