2008-06-01

組込みソフトウェア開発における安全文化

5月27日のIPAX2008で「組込みソフトウェア開発における安全文化」というテーマのパネルディスカッションを聞いてきた。

パネルディスカッション
「組込みソフトウェア開発における安全文化」
コーディネータ:
  浅見 直樹 (日経BP社 執行役員 日経エレクトロニクス発行人)
パネリスト:
  永島 晃 (横河電機 エグゼクティブ フェロー)
  上田 政博 (アイシン・コムクルーズ 代表取締役社長)
  吉岡 律夫 (日本システム安全研究所 所長)
  山本 修一郎 (NTTデータ 技術開発本部 システム科学研究所 フェロー)

このパネルディスカッションで使われた資料は公開されていないので断片的ではあるが書き取ったメモをたよりにパネルディスカッションででてきたいくつかのキーワードを紹介したいと思う。

【安全を実現するには3Eが必要】

3Eとは、次の3つ。
  1. Experience(経験)
  2. Education(教育)
  3. Enthusiasm(熱中、熱意、情熱、こだわり)
経験と教育は当然だが、安全の実現に Enthusiasm(直訳だと熱中、熱意、情熱だが、ここではこだわりという意味だろうとのこと)が必要だというのは「確かにその通りだ」と思った。

経験や教育を受けてもなんだかんだいって、面倒くさいとか、期限・納期の圧力などでくじけそうになったときに最後の支えとなるのが「安全へのこだわり」だ。

【発注者、開発者、運用者、利用者間の価値観の違いが不具合や欠陥を生む】

完璧な仕様を作成すれば価値観の違いなど関係ない、不具合や欠陥を限りなくゼロにすることができるという考え方が形式手法なんではないかと思うが、実際にはそうは簡単にはいかない。

今、SESSAMEで初級ソフトウェア技術者に同じ仕様でC言語の関数を作らせるといかにバラバラで危なっかしいプログラムができるのかを実験する教育コンテンツを作っている。実際、やってみると同じ仕様なのにプログラムの中身は千差万別、用意したテストケースはちゃんと通るが、変数を初期化していないとか、関数の出口が一つでないといった、設計の規範が浸透していない実例がごろごろ出てくる。

要するに仕様を完全にすることは難しいし、完全だと思っても、発注者、開発者、運用者、利用者の間で伝言ゲームをしていると勘違いや思いこみが発生する。それらの勘違いや思いこみを大きな不具合、欠陥に発展させないためには、あらかじめ関係者全体で価値観を一致させる必要があるのだ。

また、発注者、開発者、運用者、利用者はそれぞれの領域に責任と権限で線を引くのではなく、責任をオーバーラップさせてオーバーラップした部分をマネージメントすることが大事だという話もあった。

【技術者は嘘を言わない、問題点を隠さない、予見できる問題点を無視しない】

安全文化を考えるときにこの3点は絶対に忘れてはいけない。3EのEnthusiasm(こだわり)にも通じるが、納期のプレッシャーに負けて、嘘を言ったり、問題点を隠したり、予見出来る問題を「見なかったことにする」ようなことがあってはいけない。(『組込みソフト開発悪循環の構図』も参照されたし)

これらが蔓延してきた組織は安全文化の確立に逆行しているので特に注意が必要だ。

【ソフト技術者は方法論に興味があり、市場や商品には興味がない】

ソフト技術者はソフトウェア開発の方法論には興味があり、次の開発では前回よりもよりよい方法をトライしようと考えるが、商品がどのように使われるのか、どのような機能や性能が市場から求められているのかには興味がないという話だ。

組込みソフトの世界ではたぶんその傾向は少ないと思うが、価値観の共有にも通じるので安全文化の確立のためには市場や商品にも興味を持ってもらわないと困る。

【組込み製品に求められる品質の多様化と安全確保は背反することがあるか?】

これはパネルディスカッションの最後の方でコーディネータの浅見さんがパネリストに質問していたことだ。各人の解答は忘れてしまったが自分ならこう答える。

組込み製品に求められる機能や性能はインテリジェンスが増してきており、単機能では実現するこが難しくなっている。しかし、安全の確保は潜在的な価値を高める重要な要素であり、難しくても商品価値を高めるために必要だ。ユーザーは潜在的価値の低い商品にはその価値に見合った対価は払わない。品質の定義が顧客満足を満たすことであるならば、潜在的な価値を高めること、すなわち安全確保は品質の向上の一部であるから背反しない。

実際、車を買うときにエンジン性能やインテリア、エクステリアをまっさきに考えるけれども、サイドエアバッグ付きかどうか、ABSはついているかなどの安全機能を付けるかつけないかは単なる付け足しの悩みではなく真剣な選択だ。

パネルディスカッションのメモを見直してみると、総じて、やっぱり組込みソフトで安全を確保するには、その商品開発に関わるソフトウェアエンジニア全体で価値観の違いを埋める努力をしないといけないということなのだと思った。
 

0 件のコメント: