安全を実現、維持するためには熱意、情熱、こだわりが必要
安全を実現するには3Eが必要という教訓があります。3Eとは、次の3つです。
- Experience(経験)
- Education(教育)
- Enthusiasm(熱中、熱意、情熱、こだわり)
Experience(経験)やEducation(教育)は安全に限らず、すべての技術に共通ですが、3つめのEnthusiasm(熱中、熱意、情熱、こだわり)は安全ソフトウェアの実現には特に重要です。なぜなら変更容易性が特長でもあるソフトウェアで安全をつかさどる機能や性能を維持し続けるには、さまざまな誘惑や障壁があるからです。さまざまな誘惑や障壁とは例えば次のようなことです。
- 納期が間に合わないからリリースしてしまおう
- 予算が足らないからリリースしてしまおう
- ソフトウェアは見えにくいから問題が表面化してから考えよう
- 前回のテストでは問題なったから大丈夫
- 前の製品では問題なかったから大丈夫
このような誘惑や障壁に対して、商品の安全、特にソフトウェアの安全は組織の品質保証など一部門だけが頑張っても達成するのは難しいでしょう。なぜならソフトウェアは外から見えにくいので、安全機能が他のモジュールから独立したままになっているか、悪い影響を受けていないかを監視し続けることが難しく、安全を維持し続けるためには多くの関係者の熱意やこだわりがなければ達成できないからです。
しかし、安全に対する熱意、情熱、こだわりを維持し続けるのは非常に難しく、皮肉なことにユーザーに被害を与えるような事故が起こってしまったときに初めて安全に対する取り組みの重要性が再認識されるのです。さらに、ソフトウェアは見えにくく、不具合の原因は複雑に絡み合っていることが多いため、事故が起こっても原因は「ソフトウェアのバグ」「プログラマのケアレスミス」というひと言で片付けられてしまうことがあり、再発防止の取り組みがしにくいという側面を持っています。
だからこそ、安全ソフトウェアは可視化して、インタフェースを明確化し、その独立性を維持し続ける努力を組織的に行う必要があるのです。組込みソフトウェアは今後ますますインテリジェンスを求められるようになるため、安全ソフトウェアも他の機能と連携して複雑な要求を実現しなければならなくなるでしょう。しかし、そうであったとしても安全ソフトウェアや安全機能はできるだけ他の機能からはアイソレートするようにし、シンプルデザインを目指すべきなのです。そしてそのソフトウェア構造を可視化し、アイソレーションとシンプルデザインが維持できていることを常に確認しておくことが重要です。
