「懐石料理」でインドの「スパイス」をうまく使う方法山浦恒央の“くみこみ”な話(1)

話題に事欠かない「組み込み業界」をテーマに、筆者が注目する“くみこみ”な話をコラム形式でお届けする。さてさて、今回のお題は……

» 2008年07月11日 00時00分 公開
[山浦恒央 東海大学 大学院 組込み技術研究科 准教授(工学博士),@IT MONOist]

 経済産業省が実施した「2007年版組込みソフトウェア産業実態調査」によると、組み込みソフトウェア開発に従事している技術者が23万5000人で、10万人不足しているとのことです。これを例えるなら、12人の板前が必要な和食の懐石料亭をたった8人で切り回しているようなもので、圧倒的に人手が足りません。この不足分を補う切り札として、ここ5年、期待されていたのがインドの技術者にプログラム開発を委託する海外発注です。いろんな会社がインドのソフトウェア開発会社へ組み込み系ソフトウェアを発注しましたが、残念ながら効果を上げているところは非常に少ないようです。ソフトウェア開発のセミナーでも、受講生の皆さんから「インドで開発したソフトウェアの品質が悪い」「機能漏れがある」「きちんとテストしてくれない」などと不満が聞こえてきます。

 インドでは、コンピュータ関連の学部卒業者を年間3万人輩出していたり、知的水準が高いなど、日本の組み込み技術業界にとっては、インドの「スパイス」はものすごく魅力的なのですが、どうも「懐石料理」との相性がよくありません。インド発注をした日本の会社の課題や疑問点をまとめると、次の3つに集約できるようです。

  1. 日本方式の品質管理プロセスを、なぜインドで実行してくれないのか?
  2. CMMレベル5の認定を受けたインドの会社に発注したのに、なぜ、品質が低いのか?
  3. インド人技術者にきちんとしたモノを作ってもらうには、どうしたらよいのか?

 インドと日本には、「ソフトウェア開発での優先順位」「ソフトウェアの開発方式」「国民気質」という3つの点で大きな相違があります。これを考慮しないで、インド発注をすると、極上のヒラメの刺身にカレー粉をまぶして食べるような悲劇が起きます。連載第1回となる今回は、上記の「3つの違い」をベースに、“日本方式の品質管理プロセスを、なぜインドで実行してくれないのか?”を分析します。

 図1に、インドと日本の「ソフトウェアの出荷戦略」と「品質戦略」の違いを示します。

日本とインドの出荷戦略・品質戦略の違い 図1 日本とインドの出荷戦略・品質戦略の違い

 インドのソフトウェア産業では、まだ類似製品がない状態のマーケットへ、なるべく早く新製品を出荷してシェアを独占しようとします。当然、早期出荷をするため、品質は犠牲になります。一方、日本では未成熟な品質の製品を出すと、リコールや回収騒ぎになったり、社会的な問題を引き起こすと考え、ビジネス・チャンスが減ってもバグのないソフトウェアを出荷しようとします。

 ここに、決定的な違いがあります。日本人は、「バグがあるのを知りながら出荷するのは、犯罪の現場にいながら警官が無視して通り過ぎるようなものだ」と考え、インドの出荷戦略を「悪」と断じます。一方、インド人は「100万年に1回しか発生しないバグの修正のために出荷を1カ月遅らせるのはビジネスではない」と考え、日本の戦略を「常識外れ」と信じています。このように、お互いが相手を「悪」とか「常識外れ」と考えている限り、国際発注で真の協調はあり得ません。ハマグリの潮汁にガラムマサラを放り込むようなもので、お互いを打ち消し合ってしまいます。

 私も、インド発注に関しては長い間、「品質を軽視するのは、エンジニアにとって罪悪である」と信じ込んでいました。しかし、いろいろなインド人やアメリカ人の技術者と話をしているうちに、「両国の考え方の違いは、『善悪』で判断すべきものではなく、単に『宗教が違う』と理解すべきではないか?」と思うようになりました(図2)。

ソフトウェア開発における優先順位の違い 図2 ソフトウェア開発における優先順位の違い

 組み込み系製品のソフトウェアを開発する場合、最終的なゴールとして、日本もインドも売れるソフトウェア、役に立つプログラムを作りたいと考えています。その目標に至るルートが、インドと日本では異なっているのです。日本は品質管理がカギと考え、インドでは市場を制圧してから品質を確保しようとします。「山頂へ至る経路が違う」と考えると、両国のいろいろな相違点は、「背反した善悪の問題」ではなく、単に「ビジョンの違い」であることが分かります。

 イリノイ大学アーバナシャンペーン校のシェパード教授が、世界十数カ国、100万人以上を対象に性格分析調査を実施し、分類しました。この結果を図3に示します。

シェパード教授の分類による“人間の行動パターン” 図3 シェパード教授の分類による“人間の行動パターン”

 シェパード教授は、人間の行動パターンを「感情的・抑圧的」「支配的・謙虚」の2軸から分析し、4種類に分けました。

 日本人は「抑圧的で謙虚」であり、ソフトウェア開発の場合、1ステップずつ検証しながら確実にプロセスを進めることが得意で、逆にいうと論理の飛躍やヒラメキによる問題解決は苦手としています。一方、「感情的で支配的」なインド人は、常識にとらわれない斬新な発想によるソフトウェア開発が得意で、コツコツとデバッグをするのは不得意です。シェパード教授の行動パターンにおける「力学」として、「日本」と「インド」のように、対角線上に位置する者同士は基本的に相性が悪く、同じ部類の者は協調しやすいそうです。国民性として、インド人エンジニアは同じ「感情的で支配的」なアメリカ人技術者と仲がよく、正反対の日本人エンジニアとは馬が合わないといえます。

 シェパード教授の行動パターンをベースにインドと日本のソフトウェア産業の違いを分析したのが表1です。

日本のソフトウェア産業 インドのソフトウェア産業
1.チーム全体の成功が最重要
−各個人から、「正直な」データを収集可
−統計データを基にした品質管理を適用できる
1.チーム全体の成功より、個人の成功が重要
−「バグを作り込んだ」=「無能力」
−バグの情報は、(無意識に)ねつ造される
2.品質は、コストや納期に優先 2.早期リリースにより、マーケットのシェアを独占することは、品質より優先
3.ソフトウェア開発では「工業化」を重視
−キーワードは、「安全サイド」
−冒険を冒さない製品企画
−アメリカなどの斬新な技術の後追い
3.ソフトウェア開発では「新規性」と、「次世代の尖端技術」を重視
−キーワードは、「挑戦」
−斬新な(斬新過ぎる?)製品企画
−画期的な技術を輩出
表1 ソフトウェア産業での日本・インドの国民性・意識の差

 日本のソフトウェア産業ではプロジェクトの成功が非常に重要で、個人がどれだけ素晴らしいパフォーマンスをしたかは重視しません。個人のバグ情報が正直に出てくるため、統計をベースにした品質制御は理想的に作用します。インドでは、「オレさまの作ったプログラムにバグはない」と考え、テスト項目をきちんと設計してデバッグせよと日本式の開発方式を強制しても実行してくれません。また、「私はこんなバグを出しました」と申告することは、「私はこれほどバカでした」と宣言することなので、無意識のうちにバグのデータを粉飾し、品質管理の役に立ちません。しかし、インドでは、新規性や斬新さを求めるため、次世代を担う新技術が生まれます。日本は利益は低くても確実な成功を狙うため、斬新な技術は出てこず、常に、アメリカやインドの技術を後追いしている状態です。

 以上で、インドと日本のソフトウェア技術者の根本的な差を理解できたと思います。次回は、淡白な「懐石料理」にスパイシーな「香辛料」をどう使えばよいか検討します。(次回に続く)

【 筆者紹介 】
山浦 恒央(やまうら つねお)
東海大学 大学院 組込み技術研究科 助教授(工学博士)

1977年、日立ソフトウェアエンジニアリングに入社、2006年より、東海大学情報理工学部ソフトウェア開発工学科助教授、2007年より、同大学大学院組込み技術研究科助教授、現在に至る。

主な著書・訳書は、「Advances in Computers」 (Academic Press社、共著)、「ピープルウエア 第2版」「ソフトウェアテスト技法」「実践的プログラムテスト入門」「デスマーチ 第2版」「ソフトウエア開発プロフェッショナル」(以上、日経BP社、共訳)、「ソフトウエア開発 55の真実と10のウソ」「初めて学ぶソフトウエアメトリクス」(以上、日経BP社、翻訳)。


Copyright © ITmedia, Inc. All Rights Reserved.