オフショア開発の失敗と成功の分かれ道~ソフトウェア開発におけるリスク対策の経験談~/戴 春莉

 現代の経営にとって、情報システムを導入することは必須と言っても過言ではないでしょう。しかし、サブプライムローン問題などから見られるように、世界経済の雲行きが再び怪しくなってきました。そのような環境の中で、経営者はますますROIを重視した投資を行う必要があります。それは情報システム投資に関しても同じ事が言えるのではないでしょうか。規模は大きいが、自社業務と比較して処理プロセスが多く、使わない機能が多数あるシステムを導入すると、投資に対するリターンは低いものでしょう。逆に単純処理機能のみのシステムだけを導入することは自社の強みを失い、システム導入の効果自体が発揮されず、投資は失敗で終わるでしょう。ゆえに、経営者にとって、いかに「身丈に合うIT化」を行うかが問われています。
 では、「身丈に合うIT化」とは、一体どのようなものでしょうか。市販されているパッケージだけ使えばいいのか。それともシステム全体を自社主導で開発すればよいのか。私はこの「身丈に合うIT化」を次のように考えています。

・自社の強みである部分は、その強みをより発揮できるような大事な部分は自社主導で開発する
・その他の部分はパッケージの導入で最低限の標準化を実現する 

このような「揚長避短」(長所を伸ばし、短所を避ける)に成功しているIT化こそ、今後の情報システム設計に必要だと考えております。
 前置きが長くなりましたが、今回のコラムでは、特に自社主導の開発についての一手法である、オフショア開発におけるリスク及び対応策の一部について述べさせていただきます。

<1>ユーザーの身になる
 プロジェクトをはじめる前、このプロジェクトは何をするのか?何のためにするのか?・・・など5W1Hを明確にすること、つまりユーザーの身になりきることが一番重要と考えています。技術者の立場+ユーザーの目線で現状分析(AsIsの理解)すること、成果物をシミュレーションすること(ToBeのイメージ化)が出来れば上流工程で開発が失敗する可能性は最小限に抑えられます。ここで、設計者自身がユーザーの身になりきれなければ、開発の仕様設計段階に踏み込まないことを心掛けるべきと考えています。
 私の場合、ある日「着物縫製加工」管理についてのシステムを構築してほしいと経営者から要望がありました。現状などをいろいろと聞き、管理上の大変さ、そして現場担当者、管理者、経営者のIT化への思いを理解することが出来ました。
その一方で、自分は着物の着付けも知らない外国人ソフトウェア技術者なので、着物縫製加工管理のシステム構築について要求分析、要件定義など上流工程を行うことが可能だろうか、と戸惑いました。技術上ではIT化することができても、システム設計はかなり難しく、単純な流通業務における伝票のやり取りだけでは済まなかったのです。ベンダー企業にとってもこの部分のシステムはややこしいようで、市販システムのほとんどが縫製加工管理の部分を避けていました。しかし、現場に入り、ユーザーの身になって、約2週間一緒に作業や、ミーティングを行い、現場の皆さんの悩みを共有することで解決の糸口を見つけることができました。

<2>上流工程におけるアーキテクチャの設計によって開発のリスクを最小限に抑える
 開発のリスクはたくさん挙げられますが、どれが一番大きな問題でしょうか。
私の十数年間の開発現場の経験から申し上げますと、「仕様書変更」は国境に関係なく、日中技術者がともに悩む問題です。完璧な仕様書は世の中に存在しません。仕様書の変更も何処の国でもごく当たり前なことです。仕様変更に対応できなければ、それは設計者の失敗だと思います。私の場合、いつも仕様の変更があると想定しています。従って、設計上では、プロダクトとモジュール化を並行し、カプセル化できる処理、呼び出すことができる処理、繰り返す処理をアプリケーションアーキテクチャ設計時に分別させ、インターフェース+コンポーネントの階層+構造設計で、ユーザー側は新しい要求があれば、ユーザー自身でもプロダクトとモジュールの組み合わせで、仕様変更に対応することが可能になります。
勿論ベンダーの立場としてはカスタマイズの収入が減りますが、ユーザーにとっては大きなメリットがあるので、ユーザーの身になれれば自然にこのような設計を行います。

<3>オフショアソフトウェア開発のリスク=ソフトウェア開発のリスク
 オフショア開発は単にソフトウェア開発の一手段です。私の経験では、オフショア開発のリスク管理については、実は海外だけではなく、日本国内でも同じことを考えるべきと思います。海外にしても日本国内にしても同じリスクが発生していますので、リスクに対する認識から言うと国境を区別すること自体がリスクの一つだと思っています。

 今日、グローバル化の進行のため、海外の資源により簡単にアクセスすることができるようになりました。その結果、海外でのソフトウェア開発要望も日々増えています。しかし、グローバルな環境におけるソフトウェア開発も、究極的にはユーザーの立場になって考え、ユーザーの要望に沿って実施する必要があります。そのためには、ユーザーの要求を理解しなければならないので、開発者にとっては技術能力もさることながら、ユーザーとのコミュニケーション能力が今まで以上に必要となるでしょう。


■執筆者プロフィール

氏名     :戴 春莉(たい しゅんり)/情報システム監査士
得意分野   :デザインの手法を情報処理技術への応用、上流工程の要求分析、
        問題デザインと可視化など
メールアドレス:dai-jp@leto.eonet.co.jp