2006-04-11

すり合わせと組み合わせ

4月7日の東大工学部でのSESSAMEの例会の後、MMRC/東京大学21世紀COEものづくり経営研究センターで組込みソフトのすり合わせ開発と組み合わせ開発の話しをしてきた。MMRCにお呼ばれしたのは、2006年1月23日に開催された SESSAMEのワークショップのパネルディスカッションで自分がモデレータとなりMMRCの研究員である立本博文さんがパネルメンバーで組込みソフトエンジニアの将来について議論したことがきっかけである。このパネルディスカッションの中身については技術評論社が発行している『組込みプレス vol.3 』の中で紹介される予定になっている。

実際には1月23日のパネルディスカッションでは用意したテーマをすべて議論することができず、後日あらためてパネルメンバーのみなさんに集まってもらって討論した座談会の際に、私が話した内容に立本さんが「この話しはおもしろい、是非MMRCでもう一度話しをして欲しい」と言われ実現した。

当日は、東京大学ものづくり経営研究センターのセンター長で 東京大学 大学院経済研究科 教授 の藤本隆宏先生にも話しを聞いていただいた。藤本先生は、長年、日本や海外の製造業における製品開発や生産等の「ものづくり」について研究しておられ、『組込みソフトエンジニアを極める』でも藤本先生の著書である『日本のもの造り哲学』の図を一点使わせていただいた。

上の図はプレゼンテーションの後、藤本先生に「この図はいいね」と言ってもらった図である。『組込みソフトエンジニアを極める』では、p149 図2.23 「制約条件をクリアしつつ最適化を図る」で登場する。

図の中でハードウェアは変型しにくく、ソフトウェアはハードウェアとハードウェアの隙間を埋める糊のような役目を果たしていた。グニャグニャしているソフトウェアがすり合わせたソフトウェアのイメージとなっている。一方、ソフトウェアの規模が大きく(10万行以上)なってくると、とてもすり合わせでソフトウェアを作っていたのでは追いつかず、外からOSやミドルウェアなどのソフトウェアモジュールを買うようになった。しかし、そのような組み合わせ部品となっている市販のソフトウェアは他社も容易に導入できるので、その商品にしかない独自の強み(コアコンピタンス)には成り得ない。上の図で魚が組み合わせ用のソフトウェアモジュールをパクパク食べてしまっている様子がこれを表している。

10万行、100万行といった規模の組込みソフトから成る組込み機器が競争優位を保つには、キーとなるハードウェアデバイスとそのキーデバイスを制御するソフトウェア、そして自組織で作り上げた再利用可能なソフトウェアモジュールをパッケージにしてコア資産とすることが重要であると本の中で書いた。

【組込みソフトエンジニアを極める -プロローグ-より引用】

日本の組込み機器はすり合わせ型の開発だと言われています。すり合わせ型開発の対極は組み合わせ型開発です。すり合わせ型とは試行錯誤や調整を積み上げていく開発方法、組み合わせ型は仕様通りに作られたモジュールを定められたインターフェースでつなげていく開発方法です。
これまで日本は、独自の強みを持った多くの組込み機器を少数の技術者によるすり合わせ型開発で生み出してきました。省スペース、低消費電力化、高信頼性、リアルタイム性、独特なユーザーインターフェース、ユーザーニーズの全体最適化などの機能・性能を、ハードとソフトのトレードオフや、専用のソフトウェアを作ることで実現してきました。これらの強みの多くはエンジニア個人の能力がベースになって生み出されたものです。個々のエンジニアの技術を尊重し、それぞれの強みの最大公約数をまとめ上げる製品開発は日本独自の手法であり、このようなすり合わせ型開発こそが組込み製品の競争優位を保っていたのです。

一方組み合わせ型開発はトップダウン的なアプローチが有効です。開発の当初から機能を分割し、独立性を高めたサブシステムを定義し、サブシステムごとにプロジェクトを立ち上げ、できあがったものをつなげるというスタイルです。このような組み合わせ型の開発は大規模なソフトウェアに向いており、アメリカや中国が得意な手法です。組み合わせ型開発で作った製品はすり合わせ型開発で作った製品に比べて最適なトレードオフがしにくいので、リアルタイム性やユーザーニーズの全体最適化といった点で不利な面があります。

ところが、近年日本においても、ユビキタスの時代が到来すると言われ、組込みソフトに期待される要求が多様化し規模が拡大しています。このため、これまで行ってきたすり合わせ型の開発では、ソフトウェアの品質を確保し、計画通りの日程で製品をリリースすることが難しくなってきています。
これからの組込みソフトエンジニアには、従来から日本が得意だったすり合わせ型の開発技術と、欧米型の組み合わせ型の開発技術の両方のスキルを習得し、これらのスキルをともに活かせることが要求されています。すり合わせ開発では先輩から後輩へ、上司から部下へ技術を伝承するOJT(On the Job Training)方式が効果的です。一方組み合わせ開発ではプロセスを重視したトップダウンの教育が効果的です。組込みソフトの世界に足を踏み入れた若いエンジニアは、すり合わせ開発も組み合わせ開発もどちらも経験していないため、その両方を学ばなければなりません。

【引用おわり】

プロローグに書いたように、規模が大きくなった組込みソフトウェアを全部すり合わせで作るのは辛い。ただし、組込み製品の全体を把握しながら、ハードウェアをすり合わせるソフトを作り全体最適を行ってより使いやすく洗練させるという行為に組込みソフトエンジニアは喜びを感じるものである。

組み合わせだけでものづくりが完成してしまうのはつまらないものである。したがって、エンジニアのモチベーションを下げないようにして、品質の高い商品を作るにはすり合わせと組み合わせのバランスをどこに持っていくのかがとても重要な要因となる。

0 件のコメント: