2014-02-16

フィールドでソフトウェアの不具合が発生したら粛々とリコールをするべし

トヨタが2月12日にプリウスを世界で約190万台、ハイブリッドシステムを制御するプログラムに不具合があるということでリコールを発表した。

【Tech On!  「プリウス約190万台をリコール、昇圧回路の素子に想定外の熱応力」より引用】
トヨタ自動車は、2009年5月から販売を始めた3代目プリウス(ZVW30)約190万台をリコールすることを明らかにした。2009年3月から2014年2月までに生産したもので、日本市場向けの約100万台、海外市場向けの約90万台が対象になるという。 
 トヨタ自動車の説明によれば、プリウスのハイブリッドシステムにおいて、制御ソフトが不適切なため、加速時などの高負荷走行時に昇圧回路の素子に想定外の熱応力が加わる恐れがあるという。このとき素子が損傷し、警告灯が点灯して「フェールセーフのモータ走行」になってしまう。加えて、素子損傷時にノイズが発生すると、ハイブリッドシステムが停止し、走行不能になる可能性もあるという。なお、損傷する恐れがある素子の具体的な内容については現時点で明らかにしていない。
 実際に前述の警告灯が点灯したことが市場から報告されたことがきっかけで、今回の不具合の発覚につながったという。トヨタ自動車によれば、事故などは起きていない。
 改善策として、全車両の制御ソフトを修正する予定。制御ソフト修正後に素子が損傷して警告灯が点灯した場合は、電力変換器(DC-ACインバーター)のモジュールを無償交換するとしている。
【引用終わり】

詳しい原因は発表されていないのでよく分からないが、ハイブリッドシステムの制御ソフトに問題があったようだ。制御ソフトを修正することで現象は発生しいなくなる。

リコールを起こさないソフトウェアのつくり方』というタイトルの本を執筆しておきながら、こんなことを言うのもなんだが、極度に複雑化したソフトウェアでリコールを完全に防ぐことはできない。

だから現代のソフトウェア製品では、まず、人の死に至るような不具合が発生しないようなリスクコントロール対策を施す。

そして、それでも発生してしまった不具合に対しては、粛々とリコールを行い、再発防止策を実施する。マスコミが騒ぎ立てるのはしようがないが、組織内部、関係部署が浮き足だってはいけない。

上記の記事によると、加速時などの高負荷走行時に昇圧回路の素子に想定外の熱応力が加わって素子が損傷したときに、警告灯が点灯して「フェールセーフのモータ走行」になると書いてある。

問題が起きたときにフェールセーフのリスクコントロール対策が働くことで、大きな事故につながらないような設計がされていた。これが重要なのだ。

ISO 26262 でソフトウェアの開発プロセスのことしか指摘できないコンサルタントやISO 26262の認証を取ることにしか価値を見いだせない認証会社には理解が難しいかもしれない。

大事なのは大事故にならないリスクコントロール対策として何をすればよいのかということだ。その対策はソフトでもメカでもエレキでもいい。方法は問わない。

ただし、ソフトウェアに特徴的な問題点はあるので、そこに配慮が必要だ。ソフトウェアは複雑になればなるほど、内在する不具合を見つけるのが難しくなる。

よく考えもせずに追加・修正を繰り返した10万行クラスのソフトウェアが完全であることなど証明できない。だから、安全を実現するためのアーキテクチャが重要であり、最初に考えたアーキテクチャが崩れていないことを確認しながらソフトウェアを修正していかなければいけない。

プリウスのハイブリッド制御システムは、これまでの公になっている情報から想像するに複雑過ぎるように感じる。燃費を極限まで高めるために、ソフトウェアアーキテクチャがが犠牲になったような気がする。

どこかの時点でアーキテクチャを綺麗にしないと、ソフトウェアの変更によってデグレードが発生する危険性が高まると思う。

このことは前々からこのブログで書いているように「フォールト アボイダンス」の個別最適を追求するのは無理であり、「フェールセーフ」「フォールトトレランス」「ユーザビリティエンジニアリング」などで全体最適によって安全を確保しなければいけないということだ。

この話は SESSAMEの e-Learning コンテンツ「ソフトウェア安全分析・設計」で詳しく解説しているのでそれを是非参考にして欲しい。

あと何年かすると自動車もネットワーク経由でファームウェアをアップデートするような日がくるのだろう。ただ、それが出来てしまうとソフトウェアはアップデートすればいいんだという考え方がはびこるのが怖い。付け足しによるソフトウェア改変が多くなればなるほど、安全アーキテクチャは崩れる危険性が高いからだ。また、セキュリティ面での対策を施さないと自動車をハッキングしてやろうという輩が出てくるだろう。

ソフトウェアエンジニアにとっては受難の時代だが、すっきりしたアーキテクチャを設計・維持できる技術者が高評価を得られる時代になってきたとも言える。

2014-01-12

ヘルスソフトウェアの市場に新規参入しようとしている方達へ

電通大のにしさん(ハッシュダグ @YasuharuNishi) が Twitter で清水 吉男さんのブログの記事『国内回帰の動きの「陰」』に同調して、
つまり我々は、単価ではなくて技術力を理由とする国内ソフト産業の空洞化が始まっているという動きを無視してはいけないのだよ。要するに、スキル向上の施策も採らず組織改善にも取り組まず進化のかけらもない日本のソフトハウスは早晩倒産してしまうのだ。
とつぶやいていた。まったくその通りだと思う。

日本の経済環境変化の話題として、政府の旗振りの影響もあってか、医療や医療機器産業をを産業振興の柱のひとつにしたいという話がにわかに盛り上がってきている。

これまで医療機器ドメインを主力にしていなかった企業がヘルスケア事業に乗り出すことを発表したり、ヘルスユース目的のアプリケーションソフトを作る会社が増えてきた。

ヘルスユースのアプリケーションソフトウェア(ヘルスソフトウェア)はいろいろな用途に使え、ネットワーク接続できる汎用のプラットフォーム(iPhone, iPad, アンドロイド端末)が普及したことで、世界中で爆発的に増えている。中には iPhone の内蔵カメラで撮影した画像を解析し皮膚がんかどうかを診断できるとうたったものもあるらしい。

このような新しい分野への雪崩のような進出により、市場では大小様々な問題が発生していると聞く。そういうときに真っ先に動くのが米国 FDA(食品医薬品局)だ。

例えば、下記のようなアプリは 米国FDA は法規制が必要な医療機器だと認識はしているが、執行裁量権を使ってとりあえず規制を保留すると決めたアプリの例だ。ようするに、この手のアプリは雨後の竹の子のようにどんどん世の中に出てくるが、リスクが高いとは言い切れないので、とりあえずグレーゾーンに分類しておいて、市場で事故でも起こりようものなら、すぐに規制するぞというアプリだ。
  • 禁煙しようとしている喫煙者、中毒から回復中の患者、または妊婦に定期的に教育情報、リマインダー、意欲を起こさせるガイダンスなどを提供するモバイルアプリ。
  • 喘息患者に喘息症状を引き起こす恐れのある環境条件を警告する、または中毒患者(薬物乱用者)に予め特定された高リスクの場所に近づいたときに警告するために、GPSによる位置情報を使用するモバイルアプリ
  • 患者または介護者が最初の応答者に警報または通常の緊急事態通知を作成し送信できるようにするモバイルアプリ
  • 患者に自身の健康情報、例えば前回受診の際に把握された情報へのアクセスまたは過去のトレンド分析およびバイタルサイン(例、体温、心拍数、血圧、呼吸数など)の比較などへのポータルを提供するモバイルアプリ
出典 米国FDA 発行 『Mobile Medical Applications Guidance for Industry and Food and Drug Administration Staff』 Appendix B Examples of mobile apps for which FDA intends to exercise enforcement discretion

日本は FDA のような対応はそう簡単にはできない。そこで、あまり詳しいことは書けないが、今、ヘルスユースのソフトウェア開発に進出しようとしている方達に安心安全なソフトウェアを提供するにはどうすれば良いのかについて議論してガイドラインを作ろうとしている。

興味のある方は経済産業省から出ている「医療用ソフトウェアに関する研究会-中間報告書」を読んでみるとよい。

これに関連して自分達は、先を行っている経験者として、新規参入する方達にヘルスケアドメインの製品やソフトウェアを開発する際に、何が重要であり、どんなスキルを身につける必要があるのかをまとめている。

そして、新たに身につけるべき知識技術について議論していると、この分野の外にいた方達から「ハードルが高すぎる」「分かりにくい」「平易な表現でないと新規参入の妨げになる」という声が聞こえてきて、暗に「そんなもん、役に立つのか」と言っているように感じる。

欧米人が中心になって作った国際標準を神の啓示かのようにあがめ奉って、「そんなことも知らないのか」という態度を取る人達は嫌いだが、国際標準が求めることの意味や中身を理解しようともせずに、ただただ「面倒だ、役に立たない」と決めつけ、日本という島国のガラパゴス市場に引きこもる日本のソフトウェアエンジニアはもっと嫌いだ。

前者は手段が目的になっており、後者は目的がなく、ただ今という時間に流されている。オフショアをやめて国内回帰すると組織が決めたら「はいはい」と言って、指示に従う「どうせどうせ子ちゃん」のようだ。

日本のソフトウェアエンジニアはどうしちゃったんだ?と思っている。

よっぽど、自分達のソフトウェアの品質に自信があるのか分からないが、他のドメインでやられているが自分が知らないこと、新しいことはすべて余計なことで、自分達がやっているやり方だけが正しいというのか。

自分はヘルスソフトウェアの分野に新規参入してくる方達にまず、安全(セーフティ)とは何かを教えるためには何をすればいいか今、考えている。

そこで作ったのが冒頭のスライドだ。ヘルスソフトウェアの開発プロジェクトはヘルスソフトウェアを作って、ヘルスソフトウェアのユーザーとなる介護領域の方々や、持病を持った個人、医療機関などに使ってもらう。

そのソフトウェアが優良であれば、健康の増進、病気の予防などに貢献し、ユーザーに感謝してもらえる。「ありがとう」の声を聞くこともできる。

話がそれるが、自分は テレビ東京の和風総本家スペシャル「世界で見つけたMade in Japan」 が大好きで、いつも見ている。この番組でメイドインジャパンの逸品が世界のユーザーのところで役に立っているところをスタッフがビデオに撮って字幕を入れて、職人さんたちに見せるシーンがある。職人さんたちも工場のスタッフもみんなで食い入るようにモニタを見つめ、涙を浮かべる者もいる。自分達が苦労して作った製品が、海の向こうで役に立っていることを目の当たりにし、作り手側の感謝の気持ちと、さらなるやる気が満ちあふれてくる。

冒頭の図はこのことをヘルスソフトウェアの開発に新規参入する技術者達に伝えるために作った。

和風総本家 「世界のメイドインジャパンを紹介!イタリアの職人が愛用するモノとは?」 2013年12月19日 テレビ東京 より引用』
【出演者】萬田久子、東貴博、梅宮辰夫、八嶋智人、マギー 【進行】増田和也
▽イタリアのバイオリン職人が愛用する小さなノコギリ
昔ながらの手作りで作っているノコギリ職人の方が、 大手企業の「替刃式の大量生産型ノコギリ」の開発により苦境に陥りながらも 新商品の開発や販売方法の改善により、今でも伝統的なノコギリ職人を続けているという内容です。
現在はイタリアの伝統的なバイオリン「ストラディバリウス」の修復にもそのノコギリが使われているそうです。 手作りで作ったノコギリは刃が真っ直ぐで、精密な作業をするのには欠かせないそうです。 そういったように、大量生産商品に比べると価格的には負けてしまいますが、 質が良い商品は、ターゲットを選び販売方法を変えれば十分勝負ができるようになる可能性があるということが分かる番組でした。
『引用終わり』

自分は医療機器メーカーに勤めて28年、自分達が作った製品が社会に貢献していることをモチベーションにして仕事の励みにしてきた。エンジニアのモチベーションは決してサラリーだけではない。自分達の商品が社会の役に立っていると実感することが、日々を困難を乗りきる動機付けになっているのだ。

組織内ではこのことを技術系の新入社員に話すことにしているが、今はこの分野に新規参入しようとしている企業やエンジニアに話す立場になりつつある。

ただし、冒頭の図で重要なのは「社会貢献」や「ありがとう」の気持ちをもらえるのは、「優良な」ソフトウェアを提供した開発プロジェクトだということだ。

意図しない動きを平気でするようなソフトウェアではダメなのだ。このことがなかなか伝わらない。どんな分野だってプロフェッショナルとしての誇りがあるのなら、自分達の仕事に対して自信とその自信を裏付ける技術、お客さんに対する責任感を持っているはずだ。

社会貢献の裏には大きな責任がある。ヘルスユースで役に立ちたいのならば、背負うもの、身につけるべき技術があると言いたい。

でも、必要な技術を習得できればそのスキルが組織のコアコンピタンス(核となる能力)となるし、企業の体質を強化しユーザーとのつながりが強いビジネスができるようになり、不況に強く安定的な利益を生み出す基礎体力(底力)を得る。次のようなメリットがある。
  • 簡単には真似できない企業の強みとなる
  • 競争力が付けば差別化が図れる
  • 安全なヘルスソフトウェアを作れるという自信につながる
そういうレクチャーをしても心に響かない人や、新たに身につける必要のある技術を「面倒だ。役に立たない」と決めつける者がいる。

そういう人達は結局は世界一厳しい目を持つ日本のユーザーからそっぽを向かれることになる。「どうしちゃったのか日本のエンジニア」 と言いたくなるシーンが増えている。

日本の製品の多くは今だに世界一の品質を誇っているというのに、「自分達のソフトウェアの安全を自信を持って主張できないのかよ」と言いたい。

医療系のソフトウェアに新規参入しようと考えている技術者に言いたいのは、成熟した社会は安全への対価は惜しまない、しかし、信頼を裏切る製品やサービスは市場には残れないということだ。

利益の裏側には責任が伴うということなのだ。ソフトウェアだからリスクはないと思っているのは間違いだ。このことに早く気づいた方がよい。

「何でもいいから作りゃいいんでしょ」という考え方では感謝される商品も作れないし、エンジニアとしての成長もない。

P.S.

冒頭の図の右側の4つのイラストは無料のイラストサイトからダウンロードさせてもらった。左側のプロジェクトのイラストはいい物がなかったので、有料のサイトから1点、約400円で個人的に購入した。たかが図のためと思うかもしれないが、大事なことを伝えるのに必要だという判断だ。右側のようなイラストが無料であるということは、世の中でこのようなヘルス関係のイラストの需要は多いということだ。だから、個人ユースのヘルスソフトウェアの市場は大きい。ただ、単価は高くない。だからといって、いい加減なソフトウェアを作っていたのではこの市場で生き残れない。

2013-12-14

エンジニアを目指す就活学生よ、自分のページを作りなさい。

12月1日に新卒採用が解禁になった。ニュースを見たりすると、学生が総合就活イベントに押し寄せているシーンが見える。

そこで思うのは「こんなの人と同じことやっていたら絶対ダメだな」ということだ。就職が厳しくなればなるほど、学生は多くのエントリーシートを出す。人気のある企業には大量のエントリーシートが届くから、スクリーニングをかけなければならない。

就活マニュアルをみんな読んでいるから、スクリーニングして振り分けることが難しい。採用側の立場に立てばいろいろなことが見えてくる。

論外なエントリー者は別にして、マニュアル読んできた学生はみんな同じなのだ。面接したってマニュアル通りの回答をするのだろう。個性を強調しろとマニュアルに書いてあれば、個性を強調するマニュアル通りの対応をするから、採用する方は「また、それか」ということになるのだろう。

ドワンゴはスクリーニングのために入社試験料 2525円を取ることにした。三幸製菓はおせんべいへの熱い思いを自由形式で発表する入社試験を始めた。

菊池良さんは世界一即戦力な男をホームページで表現し、採用を勝ち得た。

要するにエントリーシートや就職試験や面接では差が付かないのだ。簡単なことだ。他の学生と自分は何が違っていて、どれだけその組織に役に立つのかをアピールすればよい。

簡単だと言いつつ、日本の学生には最も難しい課題かもしれない。何しろ、みんなと同じようにすること、型にはまったテストで高得点を取ることを何年間も教え込まれてきたのだから、いきなり個性を表現しろとか、他との違いを強調しろと言われても難しいだろう。

【問題解決力・課題突破力をアピールする】

現在、就職活動を行っている学生は自分の個性や組織内での問題解決、課題突破力をアピールする機会がない。

就職活動が画一化してしまった現在では、採用する企業サイドは学生の資質・本質を企業が見抜くことは極めて難しい。企業は学生が未成熟な状態で、終身雇用を行うリスクを負っている。

学生が未成熟な状態で採用するリスクが避けられないのであれば、頼りにしたいのは採用時点での知識量よりも、採用後の問題解決力や障害の突破力であろう。それは、企画部門だけの要求ではなく、開発部門、生産部門においても同じである。組織内では日々解決すべき問題が山積している。それらの問題に対して評論したり、指示を待っている者と、少しずつでも問題を解決して前進できる人材では組織への貢献度及び人材の成長の度合いは雲泥の差である。


「どうせどうせ」子ちゃんと、「評論家」くんは、組織内で役に立たないし、進化のスピードが恐ろしく遅い。一方で問題解決キッズは、最初に知識がなくても着実にゴールにたどり着き、個人としての成長のスピードが速い。

企業は、採用時点で知識がなくても問題解決能力のポテンシャルの高い問題解決キッズとなりうる学生を採用すべきだと思っている。

問題解決キッズか単なる「評論家」くんかを見分けるには、問題を解決できる実力、実績を見ることだ。

それは、エントリーシートや入社試験や面接の時間内で見せるよりも、菊池良さんのように自分自身のページを作ってしまえばよいのだ。

そんなの今の時代お金を使わなくても簡単にできる。そのページをタダで広く宣伝する方法もある。ただ、そのためのマニュアルが欲しいといったら、その時点で負けだ。

自分をアピールするための工夫は自分の力でオリジナルの示し方で実現するからこそ、問題解決・課題解決の実績となる。

理系志望の学生はそんなスキルがあっても会社の中で役に立たないやと思っているかもしれないが、とんでもない。組織内で自分のやりたいことができるようになるには、組織内個人商店の店主として自分の店の商品を宣伝してアピールする能力がなければいけない。

ただ、プログラミングの能力が高ければ出世は後から付いてくると思ったら大間違いだ。特にソフトウェア技術者は成果物が見えにくいから、改善提案や自分の実績を周りの人にアピールする能力が問われる。製造業ならソフトウェアのことが分からないハードウェア出身の上司に説明しなければいけないこともある。

そういうのは苦手だと言っていると、自分がやりたい仕事さえさせてもらえないことだってある。自分は何が出来て、組織にどんな貢献をしたのかを説明できない技術者は、高い技術を持っていても、支援者が増えていかない。結果として自分のやりたいことができなくなっていく。

エンジニアを目指す就活学生よ、自分のページを作って問題解決能力・課題解決能力を示してみなさい。就活だけでなく、就職後にも必ず役に立つから。

※どうやったらいいか考えない人はダメだよ。(Wix なんかもいいかもしれない)

P.S.

ページができたら連絡ください。本ブログで紹介します。