2014-03-30

ホンダフィット自動変速機の制御プログラムの不具合について考える

ホンダが2013年に発売した「フィット」のハイブリッド車で、2月10日に3回目のリコールが出た。1回目が2013年10月に起きたデュアルクラッチ自動変速機の制御プログラムの不具合で、モータ走行モードでドグとスリーブがかみ合わず走行できなくなる恐れがあるというもの。

2回目が2013年12月に発覚したエンジンECUや変速機ECUにおけるプログラム不具合によって、エンジンがストールしたり、駐車状態から起動しなくなる恐れがあるもの。

そして、3回目が2014年2月で1速歯車のハブ上をスリーブが滑らかに動かず、1速がかみ合わなかったり、突然発進する可能性があるとのこと。最後の1件はソフトウェアの不具合ではないようだが、1速ギヤがかみ合いやすくなるようにエンジン制御ユニットのプログラムを変更するため、これも制御ソフトウェアの変更で対処する。

東洋経済のWEBサイトに【ホンダ「フィット」に不具合が多発する理由-早くも3度目のリコール、好調な販売に冷や水-】という記事があり原因について下記のようなことが書かれている。

ホンダ「フィット」に不具合が多発する理由-早くも3度目のリコール、好調な販売に冷や水-より引用】
新しいHVシステムが原因
今回、十分な対応ができなかった背景には、DCTを使ったHVシステムがホンダにとってこれまでに経験がないまったく新しい複雑なシステムだったことがある。従来、ホンダはHVのシステムとしてIMAという方式を使っていた。これは常に稼働するエンジンを必要に応じてモーターがサポートするという比較的単純な方式のHVシステムだった。
これに対して新システムは、2つのクラッチを持つDCTにモーターを組み合わせ、発進時にはモーターのみで走行し、加減速や車速など状況に応じて変速機の段数を変化させてモーターアシスト走行やエンジン走行、充電を行う複雑な機構になっている。ホンダにとって、モーターのみで走行できるHVの経験はなく、DCTという変速機方式も初めての採用だった。
複雑な制御を行うため、変速機の制御ソフトウエアの開発工数は、ガソリン車や既存HVに比べて「半端なく増えた」(開発者)。DCTのユニットを供給するドイツの大手機械メーカー・シェフラーの開発陣とともに、本田技術研究所では最後の最後まで手直しを繰り返したという。
HV競争の緒戦でトヨタに完敗したホンダが、逆転をすべくHVシステムを完全刷新するという高い目標に挑んだわけだが、品質管理での詰めが十分でなかった。
【引用おわり】

また、日本経済新聞の記事では下記のようなことが書いてある。

 「次は許されないぞ」――。順風満帆に見えるホンダで、社長の伊東孝紳をいらだたせる問題が発生した。

 :

伊東が掲げた目標を達成するには、どのくらいのペースで、これから販売台数を上積みしていけばいいのか。

 答えは、今までの4倍近いスピードだ。

ホンダは過去10年間、販売台数を年平均で約14万台ずつ増やしてきた。しかし、600万台の目標達成には、向こう3年は年平均で50万台超の販売台数の積み増しが必要な計算になる。

 そんな「4倍速」の成長を追っていけば、その分、開発部隊への負担が重くなって当然だ。そもそも研究所の技術者たちの仕事は、フィットなど「今の車」だけをつくることだけではない。

これらの記事の中で出てくるキーワードをまとめると下記のようになる。
  • まったく新しい複雑なシステム
  • 初めての採用
  • ソフトウェアの開発工数が増えた
  • ソフトウェアを最後の最後まで手直しを繰り返した
  • 開発は急がされていた
ホンダの3回のリコールのソフトウェアの不具合の具体的な原因が表には出てこないので、ソフトウェアの技術的な分析はできないが、このキーワードを見ただけでさもありなんと感じる。

特に「まったく新しい複雑なシステム」で「手直しを繰り返し」ていて「開発は急がされていた」という条件とソフトウェアのリコールは相関があると確信する。

セーフウェアを書いたMITのナンシー・レブソン教授の最近の研究である (STAMP: Systems-Theoretic Accident Model and Processes) では、プロジェクトへのプレッシャーがシステムの安全に与える影響を分析している。そういった定性的な分析もさることながら、新しい複雑なシステムで開発が急がれていて手直しを繰り返していたら、アーキテクチャが崩れていくことが予想される。

ポイントは新規設計した際のアーキテクチャが綺麗だったとして、現実の状況に合わせてソフトウェアのすり合わせを繰り返してアーキテクチャを崩してはいけないということだ。デリバリーを急がされるプレッシャーに負けると、アーキテクチャは崩れる。ソフトウェアは外には見えないだけに、そこの防波堤はアーキテクトの考え方やポリシーにかかってくる。

早期リリースのプレッシャーに負けるとソフトウェアシステムの複雑度が増して、バグやデグレードの温床を生んでしまう。そんな危険はアーキテクトとしての経験がない者にはまったく分からないので、経営層はプロジェクトにリリースを間に合わせることを優先しろと言ってしまう。「リリースは間に合わせろ、バグは出すな」と言うのも同じことだ。バグを出さないようにするには、検証に十分な時間が必要であり、かつ、十分な時間が与えられたとしてもバグをゼロにすることはできないので、「リリースは間に合わせろ、バグは出すな」という指示は、結果として「バグ入りでリリースする危険を冒せ」と言っているのと同じなのだ。

東洋経済の記事も日経の記事も最後は品質管理の詰めが十分でなかったという結論になっているが、そこで終わらせたらダメだろうと思う。

じゃあ、品質管理の詰めって何だと聞きたい。ホンダだって ISO 26262 の取り組みをやっているはずだろう。なぜ、ISO 26262 の取り組みを行っているのに、ソフトウェアのリコールが起こるのか、誰か答えてはくれないだろうか。

下記の文章は 2006年 9月14日、15日に開催された 日科技連主催の-ソフトウェア品質シンポジウム-で広島市立大学情報学部教授 大場充先生が「ソフトウェアのテストと品質保証」について講演されたときの話を書き起こしたものだ。
ソフトウェアの品質論は、1960年代のZD(Zero Defect)運動に始まり、不良を無くすことが、究極的な品質の実現であるとする経験主義的色彩の濃い統計的品質管理が行われてきた。その後、ソフトウェアの規模や複雑度の増加に伴い「ソフトウェア開発において良いプロセスが実践されているからこそ、良い品質が生み出される」と考えるプロセス重視の品質論が主流になる。
プロセス重視の品質論は1970年代以降個々の理論の不備を修正しながら今日まで発展し続けており、その枠組みは強固である。しかしながら、「なぜ、良いプロセスが実践されていることによって、悪い品質のソフトウェアが開発される可能性を低下させることができるのか」という経験主義者から提示される疑問に完全に答え切れていない事実も存在する。
そして改めて経験主義者の代表として問いたい。「なぜ、良いプロセスが実践されていることによって、悪い品質のソフトウェアが開発される可能性を低下させることができるのか」「なぜ、自動車の安全を目的に作られたプロセスを実践してもリコールを無くすことはできないのか」

答えは分かっている。ソフトウェア品質はプロセスで管理するのが1970年代からの主流ではあるが、不具合の発生を完全に防止できる訳でもなく、プロセスアプローチは安全性や信頼性を保証する方法ではないということなのだ。

ようするに、プロセスアプローチは組織やプロジェクトの活動を改善することには役立つが、安全の保証には使えないということだ。だから、「なぜ、良いプロセスが実践されていることによって、悪い品質のソフトウェアが開発される可能性を低下させることができるのか」という問いに答えられるはずがない。

経営層が本当にリコールを防止したいのなら、ISO 26262 とは別の取り組みを進めなければならない。ISO 26262 の取り組みを進めることは無駄にはならないが、リコール防止の切り札として考えているのなら、今回のホンダと同じような痛い目に会うだろう。

一番やってはいけないのは、「新しい複雑なシステムに対して開発を急がせる」ことだ。経験主義者のアーキテクトからのアドバイスとしては、安全対策を施したリスクコントロール手段をアーキテクチャとして可視化し、リリースが近づいてきた時ほどアーキテクチャの崩れに注意を払い、「リリースが近いから早くしろ」とエンジニアを焦らせないことだ。

そして、いつも言っているように個別最適の発想ではなく、全体最適の発想を持ち、バグはあるものと過程して、バグがあっても大事故に至らないような設計の心掛けることが重要だ。

今回のホンダの3回のリコールも結局、死傷者は一人も出ていなかったのだから、その点フェール・セーフは達成できていたと考えて良い。後は、ブランドイメージ低下と販売の落ち込みの程度を計算し、十分な検証期間を取ったことで販売が遅れたときの機会損失とどっちが得かを比較すればよいのだと思う。

大きなリスクについては受容できる対策が取られているのならば、軽微な不具合は市場で発見されたものを改善することで対処するという考え方もある。消費者もそこは分かっていて新製品には飛びつかず技術が枯れるまでしばらくまったりするのはそのためだ。

この程度のマイナス記事は数ヶ月もすれば皆忘れてしまうとどっしり構えていればよいときもある。

ただ、あまりにも不具合の発生が多いと企業としての信頼を失うし、修正を繰り返しているとアーキテクチャは崩れていく可能性が高い。

最後に繰り返す。新しい複雑なシステムに対してプロジェクトに過度なプレッシャーをかけて開発を急がせてはならない。悪い結果を呼び込むだけだ。











2014-03-16

サイエンスとエンジニアリング

STAP細胞の真偽のニュースを見ていて、サイエンスの論文はたいへんだなあと感じている。サイエンスの論文で大事なのは再現性とメカニズムだと思う。

STAP細胞で今問題視されているのは、まずは再現性だ。論文に書かれた方法で実験しても小保方さん以外でまだ再現に成功した研究者がいない。

そして、小保方さんの論文には、なぜSTAP細胞が(本当にあるとして)できるのかのメカニズムの分析や推定がないように思う。

再生医療で社会に貢献するためには、まず、「STAP細胞があるという証明」とともに再現するための手順が必要であり、さらなる研究を促すためにはSTAP細胞がなぜできるのかのメカニズムの説明・証明が必要だと感じる。

ただ、サイエンスの世界ではそれができれば、非常に大きな社会貢献が実現する。だからこそ、サイエンスの論文は権威が高く、査読や研究者からの評価も厳しいのだろう。

一方でエンジニアリングの論文はどうだろうか。自分もエンジニアリングの論文を書いたことが何回かあるが、サイエンスの論文との違いにいつも釈然としないものを感じる。

特に情報工学、ソフトウェア工学の論文についてはいろいろ思うことがある。

まずは、再現性について。ソフトウェア工学で普遍的な再現性は果たして言えるのだろうか。ソフトウェアを作っているのはまだ人間だ。例えばソフトウェア工学における新しい方法論の論文があったとする。もちろん、その論文では一つかいくつかのプロジェクトで効果があったという結論になっている。しかし、人間が作っている以上、別の会社、別のドメイン、別の国で同じやり方をやって同じ結果になるとはとても思えない。そこが、サイエンスとの大きな違いだ。

だとすると、ソフトウェア工学の論文の査読は何の基準で採用と不採用を決めるのだろうか。新規性なのか、論理の正当性なのか、それとも査読者の好みなのか。

それが自分には分からない。エンジニアリングの論文は、新規性のあるなしは審査基準になるとして、それ以外の部分では、雑誌の記事や書籍で言いたいことを言うのと何が違うのだろうかといつも疑問に思っている。

論文の難しい言い回しを使わず、先人の知恵を解説しながら、時代背景や条件を示した上で何をどうすれば期待する成果が出るのかを発表する場があり、読者がそれに納得できれば論文でなくてもいいのではないだろうか。

それに相当するのがシンポジウムにおける発表なのだと思うが、それと権威があると言われるソフトウェア工学の学会論文との差がよく分からない。

サイエンスにしてもエンジニアリングにしても、その功績は社会にどれだけ貢献するのか、したのかで評価されるのだろうと思う。

サイエンスの場合は、再現性やメカニズムの普遍性が証明できれば、評価の土俵に乗ることができる。しかし、エンジニアリングの場合は、どうだろうか。多くの支持を集めることができれば勝ちなのか。例えば、欧米の開発スタイルには合っていなくても、日本のプロジェクトには効果がある方法論があったとしたら、それは評価されないのか。(日本発でその後世界で評価された方法論はいくつかある)

今回のSTAP細胞の騒動を見て、サイエンスの世界は厳しくも客観的な評価によって成り立っていると感じた。

一方で、エンジニアリングの世界ではどのような評価をすればよいのか、公平で有効な評価の考え方が必要だと思った。自分はそれがCMMIのようなプロセスリファレンスモデルを使った成熟度の評価ではない、特に日本では有効ではないと思っている。

かといって代替え手段のよいアイディアを今持っている分けでもない。ただ、ソフトウェアエンジニアリングの論文評価がまさかその時代の流行によって左右されてはいないのだろうかという心配はしている。

2014-03-02

今でも忘れられない授業

自分は30年以上前、埼玉県春日部市立東中学校の生徒だった。普通の公立中学校でそのころのことで覚えていることはほとんどないのだけれど、一つだけ鮮明に覚えている授業がある。

毎回英語の歌を合唱するという授業だ。本当に申し訳ないのだが、先生の名前は思い出せない。

先生が決めた英語の歌の歌詞が書かれたプリントが配られ、テープレコーダーから流れてくる曲に合わせてみんなで英語の歌を歌う。

英語を覚えたての中学生だから意味もよく分からないし、発音も難しい。選曲は短い簡単な曲から徐々に難しくなっていって、最後はジョン・デンバーのカントリーロード(オリビア・ニュートン・ジョン バージョン)だった。

覚えている限り、歌った曲は次の4曲だった。

1. We Shall Overcome (ピート・シーガー)

2. Where have all the flowers gone? (ピート・シーガー,唄 ブラザース・フォア )

3. Blowin' in the Wind (ボブ・ディラン, 唄 ピーター・ポール&マリー)

4. Country Rode (ジョン・デンバー, 唄 オリビア・ニュートン・ジョン)

1. We Shall Overcome  と 3. Blowin' in the Wind は1960年代にアメリカで盛り上がった、人種差別を反対する公民権運動の象徴と言えるプロテストソング、2. Where have all the flowers gone?  は反戦歌だ。

Country Rode は公民権運動や反戦とは関係ないが、フォークソングの代表作で、当時TBSテレビ『おはよう700』のテーマソングとなっていたため、選んだと先生は言っていた。(カントリーロードは、日本では、今や映画耳をすませばバージョンの方が有名かもしれない)

当時、先生は曲の本当の意味や背景を一切説明していなかった。これらの選曲を今考えてみると単純にフォークソングが好きだっただけではなく、人種差別への反対や反戦の気持ちがあったと思う。

しかし、学習指導要領で指示もされているわけでもなく、思想教育とも取られかねないリスクもあるため、これらの曲が作られた背景や歌詞の意味を説明しなかったのではないだろうか。

その当時の中学生にとっては、意味を理解するどころではなく、歌詞を正確に発音しようとすることだけで精一杯だったので、ただ単に、ブラザーズ・フォアやピーター・ポール&マリーやオリビア・ニュートン・ジョンの美しい歌声を聞きながら、一緒に歌うことが楽しかった。

そして、ほとんど唯一、中学校での授業の記憶はこれらの英語の歌を歌ったことしかないのだ。

ジョン・デンバーやオリビア・ニュートン・ジョンはその後アルバムを買って聴いたりしていたが、大学生になったころ、Blowin' in the Wind(風に吹かれて)がボブ・ディランの曲であることを知ったあたりから、中学生のときに歌っていたあの歌はどんな意味だったのだろうかと思うようになった。

We Shall Overcome (我らは必ず打ち勝つ)
勝利を我らに

作詞:Zilphia Hart., Frank Hamilton, Guy Carawan
and Pete Seeger

訳詞:Paul Kim

We shall overcome, we shall overcome,
We shall overcome someday;
Oh, deep in my heart, I do believe,
We shall overcome someday.

我らは打ち勝つ、我らは打ち勝つ
我らは打ち勝つ、いつの日か
ああ、心の奥深くで信じてる
我らが打ち勝つということを

We'll walk hand in hand, we'll walk hand in hand,
We'll walk hand in hand someday;
Oh, deep in my heart, I do believe,
We shall overcome someday.

我らは手に手を取って歩くんだ
いつの日か手に手を取って歩くんだ
ああ、心の奥深くで信じてる
我らが打ち勝つということを

We are not afraid, we are not afraid,
We are not afraid today;
Oh, deep in my heart, I do believe,
We shall overcome someday.

我らは恐れない、我らは恐れない
今日の日を我らは恐れない
ああ、心の奥深くで信じてる
我らが打ち勝つということを

We shall live in peace, we shall live in peace,
We shall live in peace someday;
Oh, deep in my heart, I do believe,
We shall live in peace someday.

我らは平和の中に生きる、平和の中に生きる
いつの日か平和の中で生きる
ああ、心の奥深くで信じてる
我らが打ち勝つということを

The Lord will see us through, The Lord will see us through,
The Lord will see us through someday;
Oh, deep in my heart, I do believe,
We shall overcome someday.

神様が導いてくださる
神様が導いてくださる、いつの日か
ああ、心の奥深くで信じてる
我らが打ち勝つということを

We're on to victory, We're on to victory,
We're on to victory someday;
Oh, deep in my heart, I do believe,
We're on to victory someday.

我らは勝利へ向かってる
我らは勝利へ向かってる、いつの日かの
ああ、心の奥深くで信じてる
我らが打ち勝つということを

The truth shall set us free , the truth shall set us free,
The truth shall set us free someday;
Oh, deep in my heart, I do believe,
The truth shall set us free someday.

真実が我らを自由にしてくれる
真実が我らを自由にしてくれる、いつの日か
ああ、心の奥深くで信じてる
我らが打ち勝つということを


Blowin' In The Wind : Bob Dylan

ボブ・ディラン Bob Dylanの曲「風に吹かれて」Blowin' In The Wind(壺齋散人による歌詞の日本語訳)

  How many roads must a man walk down
  Before you call him a man?
  Yes, 'n' how many seas must a white dove sail
  Before she sleeps in the sand?
  Yes, 'n' how many times must the cannon balls fly
  Before they're forever banned?
  The answer, my friend, is blowin' in the wind,
  The answer is blowin' in the wind.

  どれほどの道を歩かねばならぬのか
  男と呼ばれるために
  どれほど鳩は飛び続けねばならぬのか
  砂の上で安らげるために
  どれほどの弾がうたれねばならぬのか
  殺戮をやめさせるために
  その答えは 風に吹かれて
  誰にもつかめない

  How many years can a mountain exist
  Before it's washed to the sea?
  Yes, 'n' how many years can some people exist
  Before they're allowed to be free?
  Yes, 'n' how many times can a man turn his head,
  Pretending he just doesn't see?
  The answer, my friend, is blowin' in the wind,
  The answer is blowin' in the wind.

  どれほど悠久の世紀が流れるのか
  山が海となるには
  どれほど人は生きねばならぬのか
  ほんとに自由になれるために
  どれほど首をかしげねばならぬのか
  何もみてないというために
  その答えは 風に吹かれて
  誰にもつかめない

  How many times must a man look up
  Before he can see the sky?
  Yes, 'n' how many ears must one man have
  Before he can hear people cry?
  Yes, 'n' how many deaths will it take till he knows
  That too many people have died?
  The answer, my friend, is blowin' in the wind,
  The answer is blowin' in the wind.

  どれほど人は見上げねばならぬのか
  ほんとの空をみるために
  どれほど多くの耳を持たねばならぬのか
  他人の叫びを聞けるために
  どれほど多くの人が死なねばならぬのか
  死が無益だと知るために
  その答えは 風に吹かれて
  誰にもつかめない


Where Have All The Flowers Gone?
花はどこへ行った?

作詞:Pete Seeger & Joe Hickerson 日本語歌詞:おおたたかし


Where have all the flowers gone?
Long time passing
Where have all the flowers gone?
Long time ago
Where have all the flowers gone
Young girls have picked them every one
When will they ever learn,
When will they ever learn?

野に咲く花は どこへ行く
野に咲く花は 清らか
野に咲く花は 少女の胸に
そっとやさしく 抱かれる

Where have all the young girls gone?
Long time passing
Where have all the young girls gone?
Long time ago
Where have all the young girls gone?
Gone to young men every one.
When will they ever learn,
When will they ever learn?

かわいい少女は どこへ行く
かわいい少女は おぼれる
かわいい少女は 若者の胸に
恋の心 あずけるのさ

Where have all the young men gone?
Long time passing
Where have all the young men gone?
Long time ago
Where have all the young men gone?
Gone for soldiers every one.
When will they ever learn,
When will they ever learn?
(young men の代わりにhusbandsも有り)

その若者は どこへ行く
その若者は 勇んで
その若者は 戦いに行く
力強く 別れを告げ

Where have all the soldiers gone?
Long time passing
Where have all the sodiers gone?
Long time ago
Where have all the soldiers gone?
Gone for graveyards every one.
When will they ever learn,
When will they ever learn? 

戦い終わり どこへ行く
戦い終わり 静かに
戦い終わり 土に眠る
やすらかなる 眠りにつく

Where have all the graveyards gone?
Long time passing
Where have all the graveyards gone?
Long time ago
Where have all the graveyards gone?
Gone to flowers every one.
When will they ever learn,
When will they ever learn?

戦士の眠る その土に
野ばらがそっと 咲いていた
野ばらはいつか 少女の胸に
そっとやさしく 抱かれる

あの当時、中学生の生徒達に先生は伝えたかったことがあったのではないかと思っている。そのときには分からなくても、成長した後に分かる、自分の意思を持って考える力が付いた時に分かる授業をしたのではないかと思っている。

日本は民衆が自らの力で民主主義を勝ち取ったのではなく、敗戦後米国から民主主義を与えられて今に至っている。そして、確固たる自分の意思を持たないふわふわした中間層が大多数を占める社会になっている。

だから、そのふわふわした中間層が風に吹かれて右にいったり左にいったりする民主主義で社会が動いている。(ここで言う風とは、そのときそのときの話題になっている事柄のこと)

(右とか左とかじゃなくて)日本の義務教育で欠落しているのは、自分が自分の意思を持って、その意思を他人と戦わせながら合意を形成するスキルやプロセスの教育だ。

だから、会議をすると誰かが何かを言うまで黙っている者が圧倒的に多い。決を採れば賛成や反対はするが、「自分はこう思う」といった意見が出てこない。

先生は教育指導要領で生徒に教える範囲や教え方を縛られているから、だからところてんのように同じような考えを持った子供が次々と押し出されていくのかもしれない。

あの英語の先生は、自分の考えを自分の教え方で子供達に教えたのではないかとずっと思っていた。それはたぶんリスクもあったのだと想像する。

そのときには分からなくても、成長した後に分かる、自分の意思を持って考える力が付いた時に分かる授業、そういう講義を自分もしなければいけないと思った。