2011-11-24

ソフトウェア系の国際規格はどのように使うのか? (ISO 26262 が正式発行される)

自動車の電子制御系に関する機能安全規格「ISO 26262」が、6年間の策定期間を経て、2011年11月15日ついにISOの正式な国際規格となった。


下記が Tech-On! で報じられた記事である。

クルマの機能安全規格のISO 26262がついに正式発行

自分は自動車ドメインの仕事はしていないが、メディカルデバイスの世界で国際規格とは20年以上付き合っている。

そこで自動車ドメインの方々にアドバイスをしておきたいと思う。

【ソフトウェア系の国際規格はどのように使うのか?】

  1. 自分達がアウトプットしているソフトウェアの安全性や信頼性を外部に対して説明するために使う。
  2. 実質的に自社のソフトウェアの安全性や信頼性を高めるために使う。

1の説明責任を果たすためという目的と2の実質的な目的は、同じように見えてかなり差がある。

なぜかというと「説明責任を果たせること」と「実質的に安全であること」は必ずしもイコールではないからだ。特に日本の組込みソフトウェアは、実質的にリコールの件数が少ないが、説明責任を果たせる組織やプロジェクトは非常に少ない。

それは一つは、日本人が元来記録を残す文化が希薄だからだ。嘘だと思う人は40年来のベストセラーとなっている梅棹 忠夫氏の『知的生産の技術』を読んでみるとよい。

もう一つの理由は日本人は品質を気にする気持ち Awareness がプロジェクトメンバー一人一人に浸透しているため、開発プロセスを厳格に管理しなくても、安全性や信頼性の高いソフトウェアを作れるという特性を持っているからだ。ソフトウェア系プロセスの国際規格の根幹にはソフトウェア品質はプロセスを管理することでしか測れない、証明できないという主張があり、その主張を覆すことはまだ誰もできていない。

日本人が品質を気にする気持ち Awareness が安全性や信頼性の高いソフトウェアを生み出しているからといって、日本人が作るソフトウェアの安全性や信頼性を外部に説明する責務を放棄することはできない。「日本人が作っているので安心してください」と言っても今や説得力がないからだ。

100万行を超えるようなソフトウェアの規模になってしまった現在では、すべてのソフトウェアが日本製だとは限らないし、一人のソフトウェアエンジニアがシステム全体を把握できない。

だからこそ、ソフトウェアの安全性や信頼性を何かしらの標準を使って外部に説明する必要がある。

そのときに、国際規格を使うと説明の効果が高い。国際規格は各国の代表が原案を審議し投票によって決めた標準であるから、その内容に沿って説明責任を果たすのは合理的だ。仮に、日本のメーカーが作ったソフトウェア搭載製品が事故を起こしたときに、「そのソフトウェアは安全なのか、信頼はおけるのか」と聞かれたら「国際標準に適合しています」と答えることができる。そうでない方法で、説明責任を果たすのは可能かもしれないが非常に難しい。特にソフトウェアの場合は、バグは一つもないと言い切れないからなおさらだ。

よって、ソフトウェアの国際規格に適合していることは、安全性や信頼性を主張するための根拠となりうる。

ただし、ソフトウェアの国際規格とハードウェアの国際規格の間には決定的な相違点がある。それはハードウェアの場合は規格に適合しているかどうかが試験によって判定できるが、ソフトウェアの場合は正当性を試験では判定できないことがほとんどなのだ。

ソフトウェアのつくりかたは千差万別で、ある作り方をすれば確実に安全とか信頼できるとは言えない。また、ソフトウェアの最大のメリットは変更容易性であるから、一度安全性や信頼性を確認しても、たった一行変更しただけで、その安全性や信頼性は崩れる可能性がある。

よってソフトウェアの国際規格では要求に対して、その通りにしていなくても別の代替え手段で説明することが容認されている。要求に対して根拠を持って説明できればそれでもOKとなるのだ。

これが日本の技術者は本当に苦手だ。自分達のやっていること、やってきたことに自信があれば、堂々と説明できるののに、監査等で説明を求められると急にできていないことばかりが頭をよぎり、できていること自信があることを全面に出して主張することができない。

ディベートの訓練をしていないせいもあるだろうが、元来正直者ではったりをかますのが得意ではないのだ。決して嘘を言えといっているのではない、相手の要求を理解した上で、本質的な目的(エンドユーザーに対する安全や信頼)のために日々やっていることを自信を持って主張すればよいのだ。それは毎日の自分の行動に対して根拠を説明できる技術者であればできるし、誰かから言われた通りに日々を過ごしている者にはできない。

後者は、自分ややっていることに自信がないから「この方法論を使うと規格に適合できますよ」とか「このツールを使うと規格に適合できますよ」と言われるとすぐにそれに乗って「よく分からない要求から逃れたい」「楽になりたい」と考える。それは、完全に思うつぼだ。

説明責任を果たす目的を達成したいのなら、まずは国際規格の要求を自分の頭で理解することだ。要求を理解せずに方法論に乗っかろうとしてはいけない。そうすると必ず振り回され、最終的には監査やオーディットの際に「このツールを使っているから規格に適合できています」とか「○○に適合を確認してもらっています」などを答えて早々と「これはダメだ」と烙印を押される。

監査や査察で一番重要なのは、実担当者が規格要求をどれだけ理解しており、その要求に対してキチンと受け答えができるかどうかだ。規格要求の真意を理解もせずに方法論に走ってしまっている場合、実担当者は受け答えができないので、すぐにコンサルタントやQA担当に助けを求ようとする。監査官、査察官はその目の動きを決して見逃さない。

国際規格を使ってソフトウェアの安全性や信頼性を説明したいのなら、まず、規格要求を理解している者を組織内に少なくとも一人は作る必要がある。そして、実務担当者も徐々に理解を深めていく。


2番の「実質的に自社のソフトウェアの安全性や信頼性を高めるために使う」はまたの機会に説明をしたいと思う。

今回の記事に関して、疑問質問がある方はこの投稿にコメントを書いて欲しい。(必ず回答を書きます)

0 件のコメント: