CMMIをオフショア開発に生かす
納期遅延や品質劣化が懸念される
オフショア開発で最も大きく懸念されるのが、納期遅延や品質劣化の問題です。日本と中国の間では、製品に対する品質の考え方の違いや、決められた納期についての考え方の違いから、問題を引き起こす場合があります。
ちょっとした考え方の違いで起こったトラブルの例を紹介します。この例では、納期直前になったため、納期の厳守を伝えました。すると、すぐに納品してきましたが、品質はボロボロでした。問い合わせると「納期通りに出せと言われたから、テストが途中だったが、約束通り納品した。何が悪いのか」と返答がありました。品質の意識が違っていたのです。
こうした、考え方の違いに対する解決方法は、「お互いの開発プロセスを明確に定義し、それに従った開発を進める」という"プロセス重視"の開発体制を構築することです。
オフショア開発においてプロセス重視の開発体制を整えるのは、容易なことではありません。以下では、プロセス重視の開発体制を整えるためのアプローチを、いくつかのステップに分けて解説します。
プロセス重視の開発体制を整えるためのステップ
- 現状を把握する
- 同じ思想(開発モデル)に基付いて開発(プロセス)を進める
- 定量的な進ちょく管理を徹底する
ステップ1: 現状を把握する
発注元もオフショア先も、現在どのような状況なのか、どのような開発や調達を行っているかを知ることが重要です。現状の問題点を網羅的に洗い出すには、CMMI(Capability Maturity Model Integration、能力成熟度モデル統合)を活用して現状のギャップ分析(アプレイザル)を実施するのが効果的です。
CMMIモデルは、開発の参照モデルとして世界の実質的なデファクト・スタンダードになっています。CMMIモデルと比べることで、自分たちのやり方(プロセス)が標準的なやり方と比べて何が違うのかを、開発の開始から完了まで全工程にわたって確認できます。このギャップ分析によって洗い出された問題点が改善点となり、その後のプロセス改善活動のスタート・ラインとなります。
図3: ギャップ分析による調達・開発プロセスの現状把握 |
中国政府も、報奨金制度を作り、オフショア開発を強く推奨しています。例えば、奨励金制度の下では、アプレイザルによるCMMI成熟度レベル達成といった一定の条件をクリアすれば、オフショア先企業は、中国商務部と地方自治体のそれぞれから最大50万元(合計100万元)を取得できます。
- 中国CMMIレベル達成報奨金制度(中国語サイト)
ステップ2: 同じ思想(開発モデル)に基付いて開発(プロセス)を進める
アプレイザルで洗い出された改善点に基付いて、プロセス改善活動に取り組みます。アプレイザルでは、一般的に数十個以上の改善点が出てくることが多く、これらを1度で解決することは不可能です。これらに優先順位を付けて、計画的に改善策に取り組んで、調達と開発のプロセスを整備していく必要があります。
プロセスを整備することの重要性を理解していても、具体的にどのように取り組んでいったらよいか分かりにくいのも事実です。
オフショア開発においてプロセス改善を推進するポイントは、アプレイザルによって見いだされた改善点に大きく依存しますが、最も重要なことは、ライフ・サイクルを通して、発注元とオフショア先のそれぞれのプロセスを明確に定義することです。
CMMIモデルは、プロセスを定義するための参照モデルとして、活動の特徴別に、区分やプロセス領域という共通の活動にまとめられており、非常に分かりやすく体系付けられています。
オフショア先との共通言語としてCMMIモデルを活用し、それぞれの活動や手順を網羅的にプロセスとして定義することは、効果的なやり方です。さらに、お互いのプロセス定義を明確にしつつ、どのように連携してプロジェクトを遂行するかという統合プロセスの定義を検討することも重要です。
図4: 調達と開発のCMMIモデル(クリックで拡大) |
プロセス定義の中で特に重要な要素の1つに、工程定義があります。工程定義では、要件開発・設計・製造・テストなど、明確な作業順序(工程)の定義とともに、各工程で実施すべきプロセス、各工程の開始・完了条件を明確に定義する必要があります。
特に、工程の完了条件の定義は重要です。完了条件に基付いて工程ごとに工程完了レビュー(マイルストーン・レビュー)を実施することにより、それまでの活動の成果物や問題点を、その都度解決することができます。これにより、問題点を次の工程に引き継ぐことなく、前工程で品質を確保できるようになります。これらの活動を、すべてプロセスとして明確に定義し、オフショア先との間で契約として合意する必要があります。
少し観点が異なりますが、プロセス重視の開発を進める上で重要になるのが、プロセス遵守状況を客観的に監視する"プロセスQA"活動です。お互いに合意したプロセス定義があっても、担当者がそれに従わなければ、何の意味もありません。プロセスQA活動によって、プロセスの遵守状況を確認できます。これにより、早期の問題摘出・解決、上位管理者へのエスカレーション、プロセス自体の改善など、多くのメリットが生まれます。
プロセスの整備も含めて、プロセス改善活動を効率的に行っていくには、SEI(The Carnegie Mellon Software Engineering Institute)パートナー制度に登録しているプロセス改善コンサルタントに協力を依頼するとよいでしょう。この選択は、費用を最小限に抑えて改善を進める手段の1つとなります。
- SEIパートナー(英語サイト)
ステップ3: 定量的な進ちょく管理を徹底する
工程定義と深く関連していますが、日々のプロジェクト管理、特に進ちょく管理が、納期遵守と品質確保のための重要な活動になります。
進ちょくや品質は、すべて定量的な指標を設定する必要があります。日本と中国は文化や言葉が違うため、「問題なく進んでいます」、「品質は問題ないです」といった抽象的な言葉のやり取りは、トラブルの元になります。
進ちょくや品質は、個人の判断で定性的に報告させるのではなく、客観的に(定量的に)報告させることが重要です。これにより、意識や認識の違いを統一できます。どのような数値を、いつ、どのように測り、どのように分析し、誰に報告するか、などを明確に定義し、オフショア先と文書で合意する必要があります。
週次の定例会などを設け、決められた進ちょく報告フォーマットに従って、進ちょく指標、品質指標などの必要な情報を、必ず定期的かつ定量的に報告させることが需要です。これにより、プロジェクトの状況が見えるようになり、早期の問題摘出にもつながります。
まとめに代えて
オフショア開発には、リスクと課題があります。しかし、これまで説明してきたように、こうしたリスクと課題をクリアするための、いくつかの手段があります。この記事が、これからオフショア開発を始めようとしている方にとって、オフショア開発の実現に向けた次のステップへと踏み出すきっかけとなれば幸いです。