モデル利用で「腹割り」型委託を実現
コミュニケーションの道具としてのモデル
前回まででオフショア開発にモデリングを活用するとメリットがあるということは分かっていただけたことと思います。今回は私がプロジェクトマネージャとしてかかわってきた「Elapiz BE」(以下Elapiz)というビジネスモデリングツールの開発プロジェクトの事例を紹介します。
Elapizは、2004年の開発当初より中国に開発を委託しており、ピーク時の体制は中国側20人前後、日本側6人で現在も継続中のプロジェクトです。
最初に紹介するエピソードは、2004年末にアーキテクチャの説明のために開発委託先を訪問した時のことです。説明会の参加者は、日本側エンジニアと中国側エンジニア、そして通訳者です。
日本語とUML図で記載したアーキテクチャ定義書を事前送付していたのですが、確認してみるとほとんど理解できていません。そこで通訳者を介して仕様を説明するのですが、技術的な核心部になるとどうもうまく伝わらず、時間ばかりが経過していきます。
その理由は、担当してくれた通訳者が一般的なIT用語は問題ないのですが、オブジェクト指向やフレームワークの用語に精通していないことにありました。しびれをきらした1人の日本側若手エンジニアが英語で直接説明しようとするのですが、思うように英語が出てきません。
困り果てた彼は、思わずホワイトボードにUMLのクラス図とシーケンス図を描いて、片言の英語で説明をはじめたのです。すると中国側のエンジニアもようやく理解を示し、質問も飛び交うようになりました。
UMLの「L」はLanguageですが、確かに「言語」なんだと再認識し、オフショア開発にモデリングを利用するという方向性は間違っていないんだと確信できたできごとでした(図1)。
相互にモデルを利用するのが成功の秘訣
オフショア開発では言葉の壁もあり、モデルで視覚的に説明することにより、誤解を抑制することができます。前述のエピソードのように、日本側から中国側に仕様を伝える際にUMLモデルの利用は有用ですが、より効果的に利用するには中国側にもUMLを描いてもらうことです。
Elapiz開発初期の2005年ごろに何度も経験した会話のパターンを紹介しましょう。
日本側:(UMLのクラス図を説明して)「フレームワークの使い方は分かりましたか?」
中国側:「はい、分かりました!」
日本側:「質問はないですか?」
中国側:「ありません」
日本側:「では、説明した通りに実装をお願いします」
実際にでき上がってみると予期しない実装になっていることが多々ありました。
日本側:「説明した通りに作成していないですね!」
中国側:「機能は満たしていると思いますが…」
日本側:「フレームワークで提供しているログ機能を利用してほしいと伝えたはずです」
中国側:「見つけられなかったので、自分でログ機能も実装しました!」
確かに機能は満たしているのですが、ログ機能が重複してメンテナンス性に欠けますし、付け焼き刃の自前のログ機能は拡張性がありません。この場合、既に実装してしまったソースコードの修正だけではなく、テストもやり直す必要があり多大なコストとなります。
中国のエンジニアには「聞くは恥」という感覚があるようで、理解していなくてもなかなか質問をしてくれません。そこで一方的に説明するのではなく、中国側にもUMLを描いてもらうことで誤解を減らすことができます。
日本側で描いたクラス図(システムの静的な構造を表現)に対し、中国側に主要なシーケンス図(システムの動的な振る舞いを表現)を描いてもらいます。中国側が描いたUMLモデルを日本側でレビューすることで中国側の理解度が把握できるようになりました。
次ページでは、オフショア開発にモデリングを活用して開発委託範囲を広げることに成功した事例についてお話しします。