中国でのオフショア開発を成功させるためには、「『何を』達成すべきかという事業目的を明確にすることだ」と前回述べた。今回は実際に中国で体験した失敗例や、事例を研究して得た教訓などを紹介する。
なぜ多くの日本企業は、中国オフショア開発で失敗し続けるのでしょうか?
これまで日本企業はシステム開発に関して数ある選択肢の中から、中国オフショア開発を選択してきました。それが、今日のIT業界は私たちが好むと好まざるとにかかわらず、中国やインドなど海外IT企業との共存が必要不可欠になってきています。日本企業の担当者が中国渡航しなくても、彼らの方から日本に押し寄せて、日本語で立派なプレゼンテーションを披露する時代になりました。
ある中国オフショア開発プロジェクトの検収結果が届きました。いくつかのバグが見つかったため、残念ながら一発では検収が通りませんでした。よく調べてみると、コーディング規約に従ってないソースコードの書き方も若干あります。ソースコードレビューは何回もしていたはずなのに……。
日本企業の開発コーディネータ(以下、日本)は、バグの原因を探り、再発防止に努めなくてはいけません。開発コーディネータと中国ベンダの開発リーダー(以下、中国)は、以下のような会話をしています。
日本 「中国側のソースコードレビューはどうなっているのですか? 先日報告されたソースコードレビューの報告書を読みましたが、何をどのようにレビューしたのか、よく理解できませんでした」
中国 「ソースコードレビューで重点を置くのは、コーディング規約の確認です。ソースコードレビューは、別部署のリーダーである李さんに応援してもらい、既に3回も実施しました。李さんは、当社でも特に技術力に優れている人物です」
ところが、中国側の報告内容には次のような不信な点があります。
日本人の開発コーディネータは、ソースコードレビューの形骸化を懸念しています。ソースコードを1行ずつ丹念にチェックする根気強さが、中国側には不足していると感じています。実際、検収は一発では通りませんでした。そこで、開発コーディネータは中国側リーダーに対して、ソースコードレビューを再度実施するように指示します。ところが、中国側の回答は意外な内容でした。
日本 「コーディング規約を準拠しているかを再度見直すとともに、机上でのデバッグをもう1度実施してください」
中国 「ご要望は分かりました。しかし、机上でのデバッグですが、その作業工数は非常に多いと思います。通常、当社では実施しません。紙の上でソースコードを追いながら要求仕様を確認する方法などは、コーディングやり直しと実質的に変わりません。要求仕様の確認は、PC画面上からのテストで検証するものです。本当に必要でしょうか?」
さらにこう続けます。
中国 「検収で見つかったバグはもうすぐ修正されるので、プログラムは安定稼動します。したがって、わざわざ追加費用をかけてもう1度ソースコードレビューを実施しても、その効果には疑問があります。もし、机上のレビューだけですべてのバグは防止できるとなると、バグ摘出目標を上げる品質指標値の意味がないですね」
その言い分は理解できますが、開発コーディネータはどうしても納得できません。日本側が反論する前に、中国ベンダのリーダーはさらに追い討ちをかけます。
中国 「当社の方針では、最も重要なのは納期を守ること、そして品質を確保することです。品質保証はプログラムの動作確認テストが効果的です。画面上から動作確認するテストが最も優れていると思います。 テスト項目を増やし、何度も繰り返してテストするとバグ摘出率は高くなります。ソースコードの仕様チェックの概念はいいと思いますが、効率は良くないのではないでしょうか。例えば、あるプログラムを1時間かけてテストすると、効率よくバグが発見できるでしょう。
ところが、机上でのデバッグとなると、レビュー者と担当プログラマが2人で一緒にソースコードレビューしなければなりません。2人で半日かけてレビューしても、バグの発見は難しいのではないでしょうか。
また今回のプログラムには、複雑な計算アルゴリズムなどはありませんから、その観点での机上でのデバッグは必要ないと思います。
従って、当社としては動作確認テストを優先し、もし時間に余裕があれば、後からソースコードの仕様チェックを行う。これでよろしいでしょうか?」
以上が、中国オフショア開発の一例です。
Copyright © ITmedia, Inc. All Rights Reserved.