組込み技術とモバイル技術の違い

ESECが終わりました。3日間説明員として立っていましたが、モバイルアプリ開発から、組込み分野に戻ってきて、今の組込み技術の課題とか、問題とか色々見えてきたので整理したいと思います。その上でAndroidなどのモバイル技術との違いを考えてみます。

課題

  • とにかく現状のコードがスパゲティでどうしようもない。サイズも大きく、静的解析ツールとか使って何とかしたい
  • アーキテクチャを誰もわかってないので、継続開発が困難になっている。ドキュメントをきちんと作れるようにしたい
  • SysMLなどのエンジニアリングツールを使って記述したい

・・・正直10年前から何も変わってないなぁ・・・というのが第一印象(もちろん会社がコンサルティングだということもありますけれども)気になったのはSysMLとかに興味があるということで聞いてみると、UMLも導入していない。ドキュメントもない。という状況もあるようです。キーワードだけに踊らされている感が満載なのですが、どうやら上司がキーワードのみを調査命令しているようで、実際に聞いてみると遥かにハードルが高いということに「うーん」となることが多かったです。自分がUMLを導入したときは事前に個人で学習した後に、導入方法を検討したと記憶しています。今回のESECで聞く限りは、前向きな導入と言うよりは、上から言われたから検討しているという姿勢が多かったです。

問題

  • 改善活動に取り組んでいる人に優秀な人材がアサインされている
  • 過去のしがらみが多くて、ゼロから作ることができない

いや、優秀な人材がアサインされることは悪いことじゃないんですが(^^; これがなぜ問題かといえば、優秀な人が、ある意味後ろ向きな改善活動に取られるということは、新規開発に優秀な人がアサインできていない可能性が高いことでしょう。これはいくつかの連鎖が考えられます

  1. 現場はスパゲティコードを生産するので精一杯
  2. 現場にアーキテクト不在
  3. アーキテクチャ見られる人材がドコドコにいるぞ
  4. お前改善やれ

だいたいこんな流れだと予想できます。特に利益を生み出している現場がこの状況であれば、優秀な人材を投入するのはわからなくもないですが、いずれにしてもこの状況でゼロから新しい製品開発ができるような部署があるのかどうかは疑問です。この新しい製品開発に優秀な人材を投入するか、改善活動に投入するか、は経営層の思惑が見え隠れしますので、場合によっては危機感を持ったほうがいいでしょう。

潜在的な課題

  • モバイル技術と組み込み技術の違いを理解できていない

Androidなどのモバイル技術を組込みに利用しようという動きは当然ながら加速しています。ただ気になるのは

  • 今までの製品開発プロセスをそのまま使用しようとしている
  • ソフトウェア品質やコード品質にも今までの組込み技術と同等のレベルを要求しようとしている

組込み技術とモバイル技術の違い

さて組込み技術の課題は10年前からあまり変わってないと言うことがわかりました。そして隆盛してきたモバイル技術が、組み込み技術に取って代わろうとしています。ところが、今まで組込みでやってきた人たちは頭が固いのか、モバイル技術を組込み技術でやろうとしています。いつまで経っても製造業の癖が抜けないのは大きな問題です。この辺りの笑えない話はこれがわかりやすいですね

米先輩「お前が成長しないのは、いつまでも製造業ばかり特別扱いして、『脱工業化』を悪いことのように決めつけて新しい仕事を憶えないからだ。昔覚えた仕事の改善提案ばっかりでお茶濁して、実はこの20年間、新しいことに一番挑戦してないのはオマエだよ。自覚してる?。」
「製造業は新入社員の仕事」

まずは「組込み技術」から「モバイル技術」へ徐々にでもシフトしていく必要があります。その際には今までのやり方を「捨てる勇気」が必要になります。では何を捨てるのか?

 

★コードを捨てる勇気!

 足の遅い組込み技術と違ってモバイルでは3年周期で技術が変わっていきます。大きなソフトウェアを作成しないようにして、いつでも捨てられるようにします。また開発人数も少人数での体制になり、ゼロからコードを書ける優秀な人材を戦略的に投入することになります。

 

★プロセスを捨てる勇気!

 現場に厳密なプロセスを要求するよりも、アジャイル開発が向いているでしょう。モバイルの場合はユーザのフィードバックも得られやすいので適しています。

 

★改善活動を捨てる勇気!

 3年で変わるようなスピードに改善活動をやっている時間はありません。新しい製品開発やチャレンジに割く時間を多く取れるはずです。

 

★今までの技術戦略を捨てる勇気!

 今はAndroidが組込み技術に採用され始めていますが、Androidはまだ(もう?)4年しかたっていません。しかしモバイルの先端を見るとHTML5の影がチラチラと見え始めています。今までのように10年も同じ体制と技術でやっていくことは不可能になるのは目に見えています。そもそもGoogleAndroidの開発環境をいつJavaからHTML5にするかもわかりません。組込み技術は自分たちの技術を中心に、必要な技術を選択できたのですが、モバイル技術は標準的な技術を中心に、自分たちの技術を組み込んでいくことになります。これは技術戦略的に大きく変わりますので注意が必要です。

最後に

先日珍しく50RT以上されたので、貼り付けておきます。そろそろ日本の製造業もリセットボタンが必要なんじゃないかなぁと思い始めた今日この頃です。

今回のESECですが、TL上の友人が簡潔に纏めてくれました

HTML5ですが、GClueの佐々木さんがTizenを評してTweetしていました(Tizenが成功するかは置いておいて、流れは出来つつある)

一方で、ホンダが代々木八幡駅に出していたとfacebookで話題になっていた広告を載せておきます。正直涙出てきますね。今の製造業に足りないのは、前向きな開発とイノベーションのスピードだと思います。さぁ新しいことを始めましょう!

f:id:tomo_watanabe:20120512225011j:plain