自動車エンジニアのアップデート

自動車エンジニアのアップデート

自動車部品メーカー勤務ソフトエンジニアの情報発信ブログ

~ 車載 ソフト エンジニア の 情報発信 ブログ ~

現役車載ソフトエンジニアが考えるソフトファースト~"IT技術の手の内化"が必要~

f:id:Vefortec:20200527212912j:plain

ここ10年間、自動車組込みソフト開発に従事しているレオハルです。

「ソフトウェアファースト」という言葉を聞いたことがあるでしょうか?トヨタ自動車の豊田章男社長がNTTとの業務提携の中で発信した考え方です。

今日は、ソフトウェアファーストとは何か、実際の車載ソフト開発をどう変えていくことが必要なのか考えたいと思います。

ソフトウェアファーストとは

まずは、こちらの書籍です。 

自動車部品業界に情報学科を卒業して飛び込んだ私としては、「そうそう!こういうこと!」と思わず納得した一冊でした。

本書の中で、ソフトウェアファーストとは、次のように説明されています。

IT活用を核として
   事業やプロダクト開発を進めていく考え方

ユーザに価値のある事業や製品を世の中に出していく際には、どこかでソフトウェアの技術を活用しないと、うまくいきません。どういうサービスを提供するのか、ユーザのニーズを実現するにはどうすればいいのかを考える必要があります。
ソフトウェアで、これをどうやって実現できるのかを考える必要があるということだと私は理解しています。

 

車載ソフトの開発スタイル

車両開発の5年サイクルに合わせて、あるシステム部品の開発は進みます。
開発の順序は、
 車両企画 → システム設計 → メカ設計 → 
  ECUハード設計 → ソフト設計 → 製造 → 販売
と進んでいきます。試作を数回行うため、システム設計~製造は数回のサイクルを回しますが、順番が変わることはありませんでした。

このサイクルで開発を進めている限り、メカ・ハードを動かすためのソフトしか作りだすことは出来ませんでした。

日本企業は、高度経済成長期の製造業の成功を体験しています。自動車業界もこの一部でしょう。しかし、成功したが故に、ソフトウェアも製造部品の一つだと捉えてしまいました。製造部品の場合、一度作ったら手戻りは出来ません。この制約が現在の車載ソフト開発には、つきまとっていたように思います。

一方でPCやスマホのアプリケーションのようなソフトウェアの場合は、開発の流れや運用が全く違うものになっています。
 企画 → 試作 → 設計 → 開発 → 運用 →
   設計 → 開発 → 運用 →
     設計 → 開発 → 運用 → ・・・
実際にリリースした後、ユーザの使い方をふまえた改善を短いスパンで繰り返し行うことができます。これは車載ソフトには、なかなかできないことです。アップデートは、車が新しくなる時、マイナーチェンジ・モデルチェンジのスパンでしかできません。
よりよいサービスを実現するためのソフト作りが必要なのです。

また、時代は、サブスクリプションのような定額サービスがトレンドです。Saas ( Software as a Service )のような、サービスを提供することを目的とし、パッケージでソフトを販売するのではなく、ネットワーク経由でソフトウェアを利用する権利を販売する時代に変わってきています。

トヨタもこの流れに乗ろうとしています。Maas( Mobility as a Service )です。
自動車を売るのではなく、移動手段を提供するという考えになっています。
これを今後実現していくためには、社会システムとしての移動サービスを日々ユーザのニーズに合わせてアップデートし改善していくことは必須だと思います。
この時、現状のような、メカ・ハードありきで作られているソフトウェア開発では、提供する事業・プロダクトの足を引っ張ることになってしまいます。ハードウェアの進化よりもソフトウェアの進化スピードを上げていくことが車載ソフトにも必要になっています。

IT技術手の内化が必要

このように、ソフトウェアファーストで車載ソフトの開発を行うことが求められる時代訪れようとしています。しかし、これまでの組込みソフトの技術だけでは、ソフトファーストは、絶対に実現できません。

現在の車載ソフト開発にはIT技術が圧倒的に足りていません。
ソフトウェアファーストとは、IT技術を核に開発を進めていくことであるのにそれができていません。
現在の車載ソフト開発は、C言語でハードウェアの資源管理に気を付けながら、オシロスコープ片手にデバッグして作り上げるスタイルが根強く残っているように思います。

ソフトウェアファーストを実現していくためには、この現状を変え、サービスを提供するためのソフト開発に力を入れられる環境を作る必要があります。まず必要なのは、IT技術の手の内化が必要です。IT技術で何ができるのかすらわかっていない人たちがソフトウェアファーストを実現できるわけがありません。通信、セキュリティ、AI、データサイエンスこれらのIT技術を車載ソフトに適用できるよう手の内化する必要があります。逆に言えば、これらの技術を持っている人は、自動車業界のソフト屋さんとして活躍したいと思ったときに引く手あまたの人材となるでしょう。

また、車の電子プラットフォーム自体も、ソフトウェアファーストが実現できる形にしていく必要があります。これまでの車載ソフトは、各製品毎にそれに必要な最小限のスペックのマイコンしか用意していませんでした。これでは、ソフトのアップデートなどできる余地はありません。
今後必要となっていく構成は、ハードウェアとソフトウェアの分離です。
ACTをコントロールするソフト、通信を行うソフトなど、基本機能の部分を独立させ、ユーザーに提供するサービスを動かすソフトは、独立して開発を行えるようにすることが考えられます。普遍的な部分は、専用のソフトが動かせるハードを用意し、アップデートが必要なサービスを担うソフトは、アップデートができ、潤沢な資源が用意されたハードに集約していくという流れるなっていくでしょう。

実は、この考えは、欧米では既に実用化されようとしています。
ハリウッドセレブの間でも大人気となっているアメリカの電気自動車で有名なテスラでは、スマホのように後からソフトウェアをアップデートできる機能を搭載した車両を販売しています。とある講演会で聞いた話だと、"アップデートできる"ということ自体にステータスを感じ、富裕層の間でテスラが人気になっているそうです。
また、ドイツの自動車部品メーカーのコンチネンタルは、フォルクスワーゲン向けに、車アプリケーションサーバーを開発したと発表しています。こちらも、無線接続を介して、新しい機能や、セキュリティ更新プログラムをインストールすることができるようになっています。

 

もう一度、申し上げますが、日本の車載ソフトエンジニアに必要になってくるのは、IT技術です。通信・セキュリティ・AI・データサイエンスこれら技術を持った人材が、車載ソフトにも必要になってくるでしょう。