連載
» 2008年08月14日 00時00分 UPDATE

山浦恒央の“くみこみ”な話(2):幻の白いカラスを追い求め、僕らはインドにたどり着く

CMMレベル5の認定を受けたインドの会社に発注したはずが、品質が悪い。こうした悲劇がなぜ起こるのか? そのメカニズムを考えてみよう

[山浦恒央 東海大学 大学院 組込み技術研究科 准教授(工学博士),@IT MONOist]

 前回のコラムで紹介したように、絶望的に不足している組み込み系ソフトウェア開発技術者を補うものとして期待されているのがインドなどへのソフトウェア開発の海外発注です。インドは、レベルの高いハイテク技術者を安価に大量に提供できる能力を備えており、まさに需要と供給がピタリと一致しているのですが、懐石料理の繊細な風味をカレー粉の鮮烈さで塗りつぶすように、両者がうまく融合した例はほとんど聞きません。今回は、この悲劇が起きるメカニズムについて考えてみます。

 インドのソフトウェア開発会社が日本でセールスを展開する場合、殺し文句として使うのが「ウチは、CMMのレベル5の認定を受けています」でしょう。“CMM(Capability Maturity Model)”とは、ソフトウェアの開発プロセスがどの程度成熟しているかをレベル1(最低)からレベル5(最高)で示した指標です。アメリカの工学系の超名門校、カーネギー・メロン大学で研究・制定されたレベルであり、国防総省などアメリカの政府機関がソフトウェア開発を一般公募する場合、例えば「CMMレベル3以上の認定を受けていること」などの入札条件として、当初使用されていました。そして、いまではソフトウェア開発プロセスの「標準」として、世界中で適用されています。


 レベル1は「無秩序」。決まった開発プロセスがなく、ソフトウェアの製造法や順序が一定ではありません。カツ丼の作り方が日によって、あるいは料理人の気分によって違うようなもので、味、形、見栄えが毎回変化します。これまで、ソフトウェア開発に自信タップリの企業が世界で数千社、「どんなに悪くてもレベル3は取れるだろう」と軽い気持ちでCMMのレベル認定に挑戦しましたが、約8割がレベル1だったといいます。「和食の華、懐石料理も余裕で作れるぞ」とプロを自認するアマチュア料理家も、キチンと審査すると素人の域を超えられないといったところでしょう。

 レベル2は「(組織全体ではなく)ある特定プロジェクトに決まった開発プロセスが存在し、それに従ってソフトウェアを作っている」であり、毎回同じ開発方法を適用して、同じ品質のソフトウェアを作る能力があります。日本のソフトウェア開発プロジェクトでレベル2以上を取れるのは、「白いカラス」ほど少ないのが現状です。実は、この“白いカラス現象”こそがソフトウェア開発をインド発注へ駆り立てる伏線になっています。

 レベル3は「組織全体で開発プロセスが存在する」であり、次のレベル4の認定を受けるには「開発プロセスを具体的な数値で測定している」ことが必要になります。レベル4では、カツを揚げるときの温度をキチンと測り、揚げる時間も計測しなければなりません。

 最高のレベル5は「測定した値を基に、開発プロセスを最適化する能力がある」です。例えば、ある食堂ではカツ丼の注文を受けてからガスレンジのスイッチを入れて、テンプラ油を熱していたため3リットルの油が最適の187度になるのに3分24秒かかっていたとします。レベル5では、この「カツ丼調理プロセス」を常時、油の温度を187度に保つよう見直し(最適化し)、3分24秒分の料理時間の短縮を実現する能力が求められます。レベル5を取るということはミシュランのレストラン・ガイドで3つ星に輝くのと同じで、非常に困難なことであると同時に、世界の注目を浴びる晴れがましい出来事なのです(事実、レベル5に認定された企業は世界で数ダースしかありません)。

 これだけ取得が困難なレベル5の認定ですが、実はその栄光を手にした企業の大部分がインドのソフトウェア開発会社なのです。

 「すべてのインド人は哲学者に見える」といわれますが、そんな思慮深く誇りも高い風貌のインド人セールスマンから、「当社は、CMMのレベル5の認定を受けております」と説明を受けると、日本のほとんどのソフトウェア開発企業は、ものすごく焦ります。「ウチはレベル1なのに、相手はレベル5なのか!? 向こうは、ソフトウェア開発のプロ中のプロなんだ。はぁ〜」と打ちのめされ、「アメリカのコンピュータ業界はインド人が大活躍しているというし、インドは英語が通じるし……」との思いがさらに後押しし、インドでのソフトウェア開発に同意してしまいます。

 インドに発注した当初は、海外での開発が非常にうまく機能しているように見えます。契約書に書いた設計ドキュメントがキチンと期日どおりに出てくるし、ドキュメントも形式がしっかりとしていて格調高い英語で書いてある。「さすがは、CMMレベル5の認定を受けただけのことはある!」と安心するのですが、開発フェイズが進み、インドで作成したソースコードを日本の実機で動かすと、機能漏れやバグがポロポロと見つかり、こちらが思い描いた仕様どおりに動作してくれません……。こうして、日本のプロジェクト・マネージャは、「レベル5認定」と「品質の低さ」のギャップに悩み、体がよじれる思いをするのです。

 ソフトウェア開発で、世界最高とのお墨付きを受けたインドのソフトウェア開発会社が、なぜ品質の高いソフトウェアを作れないのでしょうか? CMMの認定方法が間違っているのでしょうか?

 この悲劇は、双方がCMMの基本思想を理解していないことに原因があります。CMMは、ソフトウェアの開発プロセスを「改善できる能力」を評価するものであり、高品質ソフトウェアを効率よく作ることができる「絶対的な能力」ではありません

 例えば、ある少年野球チームでは、選手の健康管理、基礎トレーニングをキチンと実施し、ピッチャーのローテーションを守り、打撃、守備、走塁のコーチがいて、システマチックに練習し、常にトレーニング方法を改善しているとします。このリトル・リーグのチームは、「選手を系統的に管理し、育成する能力を備えている」として、CMMであればレベル5に認定されるはずです。一方、ワールド・シリーズで優勝する大リーグ最強のチームであっても、明日先発する投手が夜中まで深酒をするなど選手の健康管理を一切していない場合は(実際に、こんなことはあり得ませんが)、最低のレベル1になってしまいます。

 では、皆さんにお聞きします。「CMM レベル5の少年野球チームとレベル1の大リーグの球団が試合をするとどうなるでしょうか?」。

 考えるまでもありませんね。もちろん結果は大リーグチームの圧勝でしょう。このように、CMMのレベルは“強くなるための体制が整っているかどうかを表し”、絶対的なチームの強さを示すものではありません。日本とインドの双方が、CMMのレベルは“高品質のソフトウェアを短期間で開発する能力の絶対的な指標”と勘違いしていることにより、悲劇が生まれるのです。

ay_kumi02.gif

 さて次回は、老舗の懐石料亭が、3つ星インド・レストランの花形シェフを招いて成功するにはどうすればよいかを検討します。お楽しみに! (次回に続く)

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

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

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


Copyright© 2017 ITmedia, Inc. All Rights Reserved.