システム開発の発注先の選択肢として、海外に発注する「オフショア開発」が近年注目を浴びています。
IT人材が豊富な海外に発注することは、理にかなっていると思います。しかし、アクシアに寄せられる保守移管・開発引継ぎの問い合わせの中で、「オフショア開発で失敗をしてしまい、プロジェクトの立て直しをはかりたい」という相談が増えてきています。
そこでこの記事では、お客様から寄せられたオフショア開発の失敗事例と、オフショア開発を発注する際の注意点や国内発注との考え方の違いを紹介します。
メリット・デメリット、注意点を把握していただき、不幸なプロジェクト失敗を未然に防ぐお手伝いができたら……と思います。この記事がお役に立ちましたら幸いです。
オフショア開発とは
オフショア開発とは、システムの開発業務を海外の事業者に委託・発注することを指します。新興国が発注先となることがほとんどで、過去には中国、インド、近年ではベトナムへの発注が多くなっています。
発注元の企業と現地エンジニアとのコミュニケーションを円滑に図るために、「ブリッジSE」と呼ばれる仲介役が入ってプロジェクトを進行してゆくケースが一般的です。ブリッジSEは日本側との交渉や調整、報告などのコミュニケーションを担い、チームの人員に必要な情報を伝達する役割があります。
実際の開発費用・期間をまとめた資料を無料で差し上げます。資料請求はこちら>>
オフショア開発のメリットとデメリット
オフショア開発のメリットとデメリットは、どのようなものでしょうか。
メリット
オフショア開発のメリットは、なんといっても開発コストが安いことです。日本国内の数分の一程度のコストに抑えることができます。
発注先となることが多い中国・インド・ベトナムは人件費が安く、労働力も豊富なため、近年オフショア開発が活用されることが増えました。日本国内の労働力が少子化によって減少している背景を鑑みると、オフショア開発は合理的な考え方であるといえます。
デメリット
デメリットは、言語や文化の違いによってコミュニケーション面・契約面のトラブルが発生しやすいことです。
- 言語が違うため意思疎通をうまくはかれない
- 翻訳の際に本来と違った意味で解釈される
- 納期厳守や残業の文化がないため、遅延が多い
- 日本では言うまでもない常識の機能だが、仕様書に書いていないため実装されなかった
といった例が挙げられます。
オフショア開発の失敗事例
オフショア開発で失敗してしまうと、不具合の改修や作り直しをするために追加コストが発生して、結果国内発注するよりもコストがかさんでしまうことがあります。
それでは、具体的な失敗事例はどのようなものでしょうか。
要望通りのものが納品されない
コミュニケーションがうまくいかず、要望と違うものが納品されることがあります。
バグが多い
多くのバグが原因で、少しでも違った操作をするとシステムエラーとなり操作を完了できない、という事態が起きてしまうことがあります。
要望は満たしているがパフォーマンスが悪い
欲しい機能は全て揃っているが、画面が表示されるまでに数十秒かかってしまい、実用に耐えられないという悲劇的な事態が起こることもあります。
システムの品質・保守性が低い
- ソースコードが1つのファイルに何万行も記載されている
- 可読性が低い(変数名、定数などが意味不明)
- システムの設計が要求仕様を満たすための設計になっていない(設計が間違っている)
コードを書くときに用いられる手法やセオリーが日本と違うことから、このようなトラブルにもつながります。
システムの品質・保守性が低いと、パフォーマンスに影響を及ぼしたり、システム障害が起こりやすくなる原因となります。また、システム障害を引き起こすバグがすぐに見つけられず、解決するのに時間がかかってしまい、コストがかさむこともあります。
オフショア開発の注意点
オフショア開発を発注する際に注意するポイントは、「要求仕様を明確にしておくこと」です。
要求仕様を明確に
国内の開発会社に発注して成功実績があったとしても、同じような要求の伝え方ではうまくいかない可能性が高いのがオフショア開発の難しいところです。
国内でのやり取りの場合、詰めが甘い部分が早い段階で指摘され、問題点を補正することができます。例えば発注側が提示した仕様要求に不明確・曖昧な点があったときに、開発会社側から指摘や質問が上がりトラブルを未然に防ぐことができます。オフショア開発では問題点が補正されずそのままプロジェクトが進行してしまい、後でトラブルになることがあります。
オフショア開発の成功確率を上げるためには、発注元企業が仕様策定、仕様書作成、仕様書レビューの負担が国内発注に比較して高くなることを覚悟する必要があります。国内の企業に発注するよりも、より細かく仕様を提示しましょう。動作仕様についてはもとより、各機能に求められる表示性能要求についても細かく記載する必要があります。
要求仕様が不明確で失敗した事例
実際の事例では、納品されたシステムの中で使用頻度が高いと想定されている主要機能が情報を表示するのに10秒以上かかってしまうことが判明しました。開発会社にこの機能が実用に耐えられない旨を指摘したところ、「仕様書に記載がないため対応できない」という回答が返ってきて、確かに記載をしていなかったため反論ができなかった、という失敗談があります。
実際の開発費用・期間をまとめた資料を無料で差し上げます。資料請求はこちら>>
オフショア開発はやめたほうがいい?
失敗談が多くあるのならば、オフショア開発には手を出さない方がいいのでしょうか。そのようなことはなく、発注者側が知識を持ち合わせていればとても活用的な開発方法です。
しかし、失敗する可能性が高い状況は存在します。この項では、オフショア開発を頼まない方がいい状況と、国内発注との違いをまとめました。
発注者の中にシステム発注に慣れた人がいない場合
発注者側にシステム開発の発注に慣れた人員がいない場合は、オフショア開発は回避したほうがよいでしょう。
システム開発において失敗しやすいポイント・曖昧になりトラブルになりやすいポイントを熟知していて、それらを検知し明確に指示できる人員が発注者側にいない場合は、海外と開発者との間で期待と成果のギャップが生まれやすくなり、失敗する可能性が高まります。
日本は「ハイコンテクスト」文化であることを認識する必要がある
日本のコミュニケーション方法は、暗黙の了解(前提となる知識・文化・習慣などから行間を読むコミュニケーション方法)が多い傾向にあります。このようなコミュニケーション方法や文化を「ハイコンテクスト」、前提となる知識などがなくても伝わる、シンプルで明快なコミュニケーション方法や文化を「ローコンテクスト」といいます。
この行間を読むコミュニケーション手法が文化・習慣が異なる海外へのシステム発注の場にそのまま利用されることがトラブルの原因の1つと考えられます。
システム開発という「正確なコミュニケーション(あいまいにしないコミュニケーション)」が求められる分野では、国内の企業間でも認識のズレが起こりやすいです。ハイコンテクストなコミュニケーションは、わざわざ言葉にしなくても伝わる、あいまいでも伝わるという特徴があります。もしも発注時にあいまいな点があった場合、日本国内ならばシステム会社側から確認が入るため解決することができますが、海外ではなかなかそうはいきません。
文化や習慣が異なる海外への発注は、ハイコンテクストではなく、暗黙の了解が発生しない「ローコンテクスト」のコミュニケーションをとる必要があると考えられます。言葉にしないことは伝わらない、言葉にしたことはそのままの意味で理解される、ということを頭に入れてコミュニケーションをとらなくてはなりません。
認識のズレを少しでも減らすために、システム開発経験が豊富な人員が発注者側にいることが望ましいです。
プロジェクトの進め方を変更する必要がある
システム開発を国内に発注するか、海外に発注するかを決定する際に、前述のとおり発注者側の要求の伝え方を変える必要があります。オフショア開発をする場合は、発注者側の負担が増えることを前提に要員の配置やプロジェクトの計画を立てる必要があります。
オフショア開発の失敗事例と注意点・まとめ
オフショア開発の失敗事例と、オフショア開発に踏み切る際の注意点をメインに紹介しました。
そもそもシステム開発は日本人同士でも認識のズレが生じやすいため、言葉や文化の違いがある海外に発注する場合はなおさらコミュニケーションに気をつけていかないと、失敗してしまいがちです。
日本の少子化による労働力不足を鑑みると、オフショア開発自体の考え方自体は合理的です。この記事に記載した問題点を克服し、うまく海外の開発リソースを活用してシステム開発を成功させることは、⻑期的にみて解決されるべき課題だと思います。
最後に、以下の記事には、日本国内でのシステム開発失敗事例と対策方法をまとめています。この記事とあわせてご覧いただき、失敗を防ぐヒントとなりましたら幸いです。
最後までお読みいただき、ありがとうございました。