Thursday, December 30, 2004

第2回 中国オフショア開発の成功と失敗の実態

中国オフショア開発の成功と失敗の実態

幸地 司
アイコーチ有限会社
2004/10/13
--------------------------------------------------------------------------------

中国でのオフショア開発を成功させるためには、「『何を』達成すべきかという事業目的を明確にすることだ」と前回述べた。今回は実際に中国で体験した失敗例や、事例を研究して得た教訓などを紹介する。(→記事要約へ)

--------------------------------------------------------------------------------


- なぜ日本は中国で失敗し続けるのか?


 なぜ多くの日本企業は、中国オフショア開発で失敗し続けるのでしょうか?

 これまで日本企業はシステム開発に関して数ある選択肢の中から、中国オフショア開発を選択してきました。それが、今日のIT業界は私たちが好むと好まざるとにかかわらず、中国やインドなど海外IT企業との共存が必要不可欠になってきています。日本企業の担当者が中国渡航しなくても、彼らの方から日本に押し寄せて、日本語で立派なプレゼンテーションを披露する時代になりました。

- 事例から原因を研究する


■不信感だらけのソースコードレビュー

 ある中国オフショア開発プロジェクトの検収結果が届きました。いくつかのバグが見つかったため、残念ながら一発では検収が通りませんでした。よく調べてみると、コーディング規約に従ってないソースコードの書き方も若干あります。ソースコードレビューは何回もしていたはずなのに……。

 日本企業の開発コーディネータ(以下、日本)は、バグの原因を探り、再発防止に努めなくてはいけません。開発コーディネータと中国ベンダの開発リーダー(以下、中国)は、以下のような会話をしています。

日本  「中国側のソースコードレビューはどうなっているのですか? 先日報告されたソースコードレビューの報告書を読みましたが、何をどのようにレビューしたのか、よく理解できませんでした」
中国  「ソースコードレビューで重点を置くのは、コーディング規約の確認です。ソースコードレビューは、別部署のリーダーである李さんに応援してもらい、既に3回も実施しました。李さんは、当社でも特に技術力に優れている人物です」


 ところが、中国側の報告内容には次のような不信な点があります。


ツールを使ってコーディング規約をチェックしているのに、なぜか規約違反がある
ソースコードレビュー会議で発言したのは、なぜか李さん1人しかいない
 日本人の開発コーディネータは、ソースコードレビューの形骸化を懸念しています。ソースコードを1行ずつ丹念にチェックする根気強さが、中国側には不足していると感じています。実際、検収は一発では通りませんでした。そこで、開発コーディネータは中国側リーダーに対して、ソースコードレビューを再度実施するように指示します。ところが、中国側の回答は意外な内容でした。

日本  「コーディング規約を準拠しているかを再度見直すとともに、机上でのデバッグをもう1度実施してください」
中国  「ご要望は分かりました。しかし、机上でのデバッグですが、その作業工数は非常に多いと思います。通常、当社では実施しません。紙の上でソースコードを追いながら要求仕様を確認する方法などは、コーディングやり直しと実質的に変わりません。要求仕様の確認は、PC画面上からのテストで検証するものです。本当に必要でしょうか?」


 さらにこう続けます。

中国  「検収で見つかったバグはもうすぐ修正されるので、プログラムは安定稼動します。したがって、わざわざ追加費用をかけてもう1度ソースコードレビューを実施しても、その効果には疑問があります。もし、机上のレビューだけですべてのバグは防止できるとなると、バグ摘出目標を上げる品質指標値の意味がないですね」


 その言い分は理解できますが、開発コーディネータはどうしても納得できません。日本側が反論する前に、中国ベンダのリーダーはさらに追い討ちをかけます。

中国  「当社の方針では、最も重要なのは納期を守ること、そして品質を確保することです。品質保証はプログラムの動作確認テストが効果的です。画面上から動作確認するテストが最も優れていると思います。
 テスト項目を増やし、何度も繰り返してテストするとバグ摘出率は高くなります。ソースコードの仕様チェックの概念はいいと思いますが、効率は良くないのではないでしょうか。例えば、あるプログラムを1時間かけてテストすると、効率よくバグが発見できるでしょう。

 ところが、机上でのデバッグとなると、レビュー者と担当プログラマが2人で一緒にソースコードレビューしなければなりません。2人で半日かけてレビューしても、バグの発見は難しいのではないでしょうか。

 また今回のプログラムには、複雑な計算アルゴリズムなどはありませんから、その観点での机上でのデバッグは必要ないと思います。

 従って、当社としては動作確認テストを優先し、もし時間に余裕があれば、後からソースコードの仕様チェックを行う。これでよろしいでしょうか?」



 以上が、中国オフショア開発の一例です。

中国オフショア開発の教訓


■教訓「報告をうのみにした開発コーディネータ」

- PR -

 中国ビジネスで日本人が成功できない理由の1つとして、「相手を信じ過ぎる」ことが原因というのが定説となっています。中国オフショア開発では、「すべて確認しました。もう大丈夫です!」などの作業報告をうのみにする事象が当てはまります。

 オフショア開発で成功する企業には、相手国の文化やコミュニケーションの傾向を察知する目の肥えたコーディネータが欠かせません。“目の肥えた”コーディネータとは、失敗事例から教訓を得て、日本流のプロジェクトマネジメントとオフショア開発委託先の企業文化を見事に融合させることができる人物です。

■教訓「経験不足のうえに土俵が異なるようでは、成功はおぼつかない」

 中国ベンダでは、20代後半から30代の若手SEが、主に全体の統括リーダーを務めています。大半のリーダーは技術的に優れているのですが、やはりコミュニケーションに不安が残ります。納品したシステムに重大なバグが見つかるなど何か問題が生じたとき、日本から厳重に抗議しても、その重大性がベンダ幹部に報告されないことがあります。

 中国ベンダ社内で情報が伝わらないのは、主として情報管理体制の甘さから来るものですが、同じくらい重大な理由として技術者の気質の問題が考えられます。ただし、中国人は品質意識が低いとか、頭が悪いとか、そういう次元ではありません。単に、日本流のきめ細かな報告・連絡・相談の経験が、決定的に不足しているからだといえるでしょう。

 今回取り上げた事例では、中国のレビューに対する考え方が日本の教科書的な考え方とは根本的に異なることを示しています。

日本 中国
ソースコードレビューの目的 要求仕様との整合性などあらゆる面から、ソースコードの細部までを厳密にチェックすること コーディング規約やプログラミング技法の指導や確認
アプローチ ボトムアップ的な改善 トップダウン的な指示
レビュー実施者 関係者全員 理解している者1人
レビュー指摘事項の周知方法 みんなで頭を突き合わせて検討するので、その場で関係者全員に周知 有識者が1人でレビューした結果を、後からおのおのの担当者に伝達。指摘事項が全体で共有されることはない


 以上の教訓を踏まえて、この失敗例への対策を次のように整理しました。


日本流の開発プロセスの指導強化
結果報告をうのみにせず、プロセスの実施状況をしっかりと確認


その他の事例では


 そのほか、中国オフショア開発の失敗例をまとめました。

■中国オフショア開発の失敗例

上流工程から任せてほしいというベンダの主張を受け入れ基本設計から委託したが、実際には最初から最後まで日本人技術者が中国に常駐しており、コスト削減の効果はほとんどなかった。


契約締結時にベンダへ自社の開発標準マニュアルを提供した。ところが、いざふたを開けてみると、マニュアルは十数年前に制定されたレガシーシステム開発を対象とした内容であり、オープン系開発ではまったく役に立たなかった。


試験発注の小規模プロジェクトで成功したので、次は本格的に大規模プロジェクトを発注した。ところが、前回担当したプロジェクトリーダーはすでに離職しており、また最初から説明をし直すことになった。


ベンダとの契約交渉時に、過去プロジェクトで用いたドキュメントのサンプルを見せてほしいと依頼したら、顧客名が記載された設計ドキュメントのコピーをそのまま提示してきた。機密保持の意識がまったくないようだ。


大連のあるベンダは、日本語のできる社員が豊富に在籍しているといううたい文句であったが、実際には同じ人物が異なる名義を使って複数の顧客に対してそれぞれメールを出していることが判明した。


中国ベンダから技術者を日本に招聘(しょうへい)したが、社内の中国人留学生のアルバイト時給を知り、自分の給与水準と比較して不満を外に吐き散らすようになった。やがてモチベーションが低下した彼は、プロジェクト全体の和を乱し、プロジェクト半ばで強制的に帰国させられた。その後、彼はすぐに別の会社に転職したらしい。


仕様変更が発生したので専用の連絡票を使って詳しく説明したところ、「了解しました」との回答が得られたので安心していた。ところが、随分後になってプログラムが修正されていないことが発覚。それをバグ(修正漏れ)だと抗議したが、中国ベンダは真っ向から反論してきた。「当時は連絡票で説明を受けたが、正式に仕様書が修正されていない。だから仕様変更の依頼は受け付けていない」。


日本企業側で、若い人に国際感覚を持たせたいと称して、語学はおろか、基本的なプロジェクトマネジメント知識すら不足している社員をオフショア開発の交渉窓口に就けた。ところが、自分より能力のないものに対して、中国人は反抗的な態度を取ることがある。案の定、中国ベンダは若手社員のいうことを聞かなくなり、プロジェクトは破綻した。
■中国オフショア開発の成功例

 もちろん、中国オフショア開発には次のような成功事例も数多くあります。


業務アプリケーション開発や組み込みアプリケーション開発など、さまざまな分野での原価削減、およびプロジェクト損益の改善に寄与


中国人を意識することで、仕様書や設計力が向上


中国ベンダに指導することで、自社のベンダ管理能力が向上


オフショア開発の機会を通して国際感覚を磨き、海外進出の足掛かりとする

お刺し身文化と麻婆豆腐文化


 先日、都内のある中国人社長から聞いた、日中両国の文化の違いをよく表す例え話を紹介します。

日本式文化:「お刺し身文化」

日本はお刺し身文化です。

 お刺し身とは、説明するまでもなく生魚の切り身ですが、この調理法は恐らく何千年も前から日本に存在していたでしょう。21世紀になった現代でも、北海道から沖縄まで全国どこであっても、基本的な味や形は変わりません。もちろん海外であっても、魚の種類は違えどもお刺し身は依然としてお刺し身の味がします。お刺し身の一部は、芸術の域にまで達しています。

中国文化:「麻婆豆腐文化」

一方、中国は麻婆豆腐文化です。

 本場四川省では想像を絶するほど辛いのは有名な話。ところが、北京では味が随分まろやかになりますし、東京ではまったく味がしないと不満を漏らす中国人がいるほど。つまり、麻婆豆腐は地域、あるいはその土地の人々の好みに合わせて辛さがまったく異なります。

- PR -

 面白いことに、麻婆豆腐は偶然の産物だとする説が有力です(麻婆豆腐の起源には諸説あり)。さらに、中国四川省では豆腐ですら偶然から生まれたという話を聞いたことがあります。なんとも「いいかげん」な料理です。

 この例え話には、中国オフショア開発の重要な鍵が示唆されています。規律・過程・美徳を重んじる日本人、臨機応変を好み結果重視の中国人。麻婆豆腐文化の中国は、ずさんな品質管理を露呈する一方で、日本でも難しいロケット打ち上げに成功するほどの高度な技術力を持ちます。目的を理解し、視覚化された適切な目標があれば、ソフトウェア分野でも正確で高度な仕事を遂行するでしょう。

 読者の中には、前半に紹介した失敗事例と似たような体験をされた方が大勢いるでしょう。でも、失敗を経験したからといって、中国ベンダは品質意識に乏しいソフトウェア開発後進国だと判断するのは感心できません。それは、私たちのお刺し身文化的な均一した価値観にすぎないのです。

 大切なのは、日本と中国が同じ土俵で議論することです。誰でも分かる客観的なデータを用意して、納得のいくまで議論します。ソフトウェア分野のプロジェクトマネジメントにおいては日本に一日の長があるので、必要なことは遠慮せずにどんどん要求しましょう。出来上がった最終結果だけではなく、開発プロセスが正しく実施されているかどうかの途中確認はオフショア開発の成功を左右する重要な鍵となります。

 このような相互確認を怠らなければ、過去の多くの失敗を未然に防げたに違いありません。今後の皆さまの検討をお祈り申し上げます。


No comments: