オフショア開発は会社選びが全て?正しい選び方と失敗した時の対処法
オフショア開発は、現在非常に注目されています。
日本のエンジニアを雇おうとすると、どうしても月に100万円近い金額がかかるのに対して、その半分程度でエンジニアを参画させることが出来るので、人気なのも当然でしょう。
オフショア開発では、
「どの会社を選ぶのか」
ということが最も重要で、プロジェクトが失敗する例も見られます。
では、オフショア開発をする上では、どのような会社を選ぶべきなのでしょうか。
今回は、会社の選び方や失敗しないための方法、そして失敗した時の対処法について見ていきましょう。
オフショア開発の会社の選び方
まずは、オフショア開発における会社の選び方について見ていきます。
時差を考慮する
1つ目は、時差を考慮することです。
オフショアと一言で言っても、様々な国での開発が可能です。
そして、一般的にはオフショア開発をしている会社は、特定の国に特化して開発を進めることが多いです。
そのため、「会社選び = 国選び」でもあると考えられます。
「オフショア開発白書2021年版」では人気のある国として
1位:ベトナム
2位:フィリピン
3位:インド
4位:バングラディッシュ
5位:中国
が挙げられています。
オフショア開発の大きな魅力の1つが、「人件費が安くてコストカットが可能」ということなので、東南アジアなどの人件費が安い国が人気です。
しかし、場合によっては
「〇〇の国にビジネスを展開していきたいから、現地の常識を持ったエンジニアを採用したい」
など、会社によって選ぶ基準は様々でしょう。
オフショア開発で問題になるのが、「時差」です。
時差があまりにも大きいと、現地のエンジニアとのコミュニケーションが取れる時間帯が少なく、会議などの予定が合わない可能性があります。
多くの国では、日本と同様に夜間手当が存在するため、海外の会社に依頼する際にも、現地の日中に仕事をするのが基本です。
そのため、依頼する国の時差を事前に考えておく必要があるのです。
例えば、先ほど挙げたインドだと日本との時差が3時間半あります。
ということは、日本の朝10時はインドの6時半です。
業務時間の半分が連絡が取れない時間帯になると、問題が発生する可能性があるのです。
このように、会社選び(国選び)が重要になります。
国のスキルレベルを確認する
次に、その国のエンジニアのスキルレベルを確認する必要があります。
どの国のエンジニアが優秀かは、個人差がありますが、少なくともエンジニアの総数が多い方が、優秀なエンジニアの数も多くなります。
もちろん、会社によってもレベルは違いますが、国全体のスキルレベルが低ければ、その中で優秀なエンジニアの揃う会社を探すのは、かなり厳しいでしょう。
加えて、国の施策としてIT人材を増やす国策をしているところもあります。
また、そもそも大学などの教育機関でITを専攻できるか否かなど、国の環境によってエンジニアの育ちやすさが違います。
他にも、その国の人が「プライベートでどのくらい勉強をするのか」なども、国のスキルレベルを変える大きな要因となるでしょう。
このように、国によってスキルレベルの差があるため、それを考慮して会社選びをする必要があります。
日本法人があることを確認する
次に、その会社が「日本法人を持っているか」が重要です。
海外法人だけしかない企業の場合、為替の影響を受けやすいことや、対応してくれる人に日本人がいない可能性があるなど、リスクが高くなります。
特に、自社の独自の文化が強い企業ほど、それを海外のエンジニアに直接伝えるのは難しく、日本企業のことを理解しているエンジニアが間に入るか否かで、プロジェクトの成功率は圧倒的に変わります。
プロジェクトのメンバー構成を確認する
次に、依頼をしたいシステムの規模の、その会社における一般的なプロジェクトメンバー構成を確認しておきましょう。
オフショア開発では、日本国内の開発とは違い
・現地のエンジニアをまとめる役割
・日本と海外エンジニアの連絡役
などの役割を持った人員をアサインすることがあります。
この構成がしっかりとしているほど、プロジェクトの成功率は上がるものの、人員が多くなれば費用も高くなります。
そのため、会社を選ぶ段階でその会社が
「どういう風にプロジェクトを進めているのか」
ということを理解しておく必要があるでしょう。
日本人のプロジェクトの参画を確認する
次に、先程のプロジェクトメンバーの構成の中に「日本人」がいるかを確認しましょう。
実際にあなたの会社がやり取りするのが
・日本人の担当者
・現地のエンジニア
だと、プロジェクトの進め易さがに雲泥の差があります。
前述した時差の問題に加えて、「言語の壁」は、オフショア開発でも度々問題となります。
そのため、実際にプロジェクトをどのように進めるのかを含めて、日本人の参画を意識しておきましょう。
運用保守体制を確認する
続いて、「運用保守の体制」についてです。
システムは、開発して終了ではありません。
その後、しっかりと運用していくことが重要になります。
例えば、実際に使ってみると、仕様の考慮漏れなどでシステムが止まることは多々あります。
そういった時に、保守契約を結んでいないと、修正を依頼できない事があります。
また、大規模なシステムの場合には、そのシステムを利用したり、常に状態をチェックするような運用の契約を結ぶこともあります。
日本の企業には、同じ会社に「開発部隊」「運用保守部隊」が両方ともある会社も多いですが、海外の企業にもあるとは限りません。
また、運用保守の場合には、問い合わせなどが発生する可能性があり、日本語ができる人が必須の場合もあるでしょう。
このような理由から、開発と運用保守を含めた依頼を考える時には、その会社がそういう体制を作ることが可能であることを確認しておきましょう。
単価が予算と合うかを確認する
次に、単価が予算に合うかを調べる必要があります。
オフショア開発をする際には、前述したように日本人をプロジェクトに参画させる場合や、ブリッジSEなどの仲介役を入れることが多々あります。
しかし、プロジェクトに参画させる人数が増えるということは、開発にかかる総額も増えることを意味しています。
規模の大きなプロジェクトの場合は、この差が誤差になるケースもありますが、短納期・小工数の場合には、影響度が大きくなります。
そのため、ある程度の予算感と単価が合うかを前述のプロジェクトメンバーの構成とともに確認するべきでしょう。
実績を確認する
次に、実績です。
オフショア開発と一言で言っても、WEBサイトの制作と業務システムの開発では、そもそも必要なスキルが違います。
やっていく中で問題になったことを経て、その企業やエンジニアの経験となっていくため、同じ業界や同じジャンルの開発をしたことがあるか否かは、プロジェクトの成否に大きく影響します。
そのため、実績を確認していく必要があります。
オフショア開発の会社選びに失敗しない方法
続いて、オフショア開発の会社選びに失敗しないための方法を挙げていきます。
契約は短めに考える
特に最初の契約は、短めに考えることで、リスクを回避できます。
一般的に開発は、納品物を受け取り、自社でUAT(受け入れテスト)を行ってから納品完了となります。
そのため、契約が短いとそれだけ
「作ったものの品質」
を早めに確認することができます。
その間のコミュニケーションの取りやすさや、進捗報告のレベル、納品物の品質や資料の作り込み度合いを確認するためにも、まずは短めの期間で契約してみるのがおすすめです。
契約内容を細かく決める
次に、「契約内容」です。
オフショア開発で問題になることとして「納期が守られない」や「品質が思ったよりも低い」ということが挙げられます。
こういった問題を解決するための1つの方法が、「契約内容をしっかりと決めておく」ということです。
契約内容に納品物などを指定することで、トラブルを避けることができます。
仕様は細かく決める
オフショア開発では、日本の会社に依頼するよりも、仕様を細かく決めて依頼することが重要になります。
これは、各国の文化の違いなどによる
「このくらいはやって当然」
という基準の違いを回避するためです。
例えば、エラーの際に
・どこまでデータを戻すか
・メッセージをどうするか
・エラー後の遷移はどうするか
などは、運用が始まった時に問題が起きやすい箇所の1つでしょう。
細かく仕様を決めておくことで、運用がスタートしてからの修正が少なくて済むため、しっかりと資料化しておきましょう。
日本法人に仲介してもらう
オフショア開発において、直接海外の会社に依頼をするのは、非常にハードルが高いです。
それよりも、日本法人を持っている海外企業であったり、海外企業とのプロジェクトを多数こなしている日本企業に依頼をする事で、オフショア開発における失敗を回避することが出来るでしょう。
資料は細かく残す
仕様を細かく決めることは前述しましたが、それ以外に関しても資料に関しては細かく残していくことが、オフショア開発に失敗しないコツと言えるでしょう。
例えば
・システム全体の概要や目的
・ER図
・関連部署と利用用途の解説
・プログラムやサーバーなどの構成図
・ロジックの概要
など、詳細設計書と違って、作るか否かがプロジェクトによって異なるようなものに加え
・定例会議の議事録
・最終的に確定した仕様の一覧
・ToDoリスト
・QA表
など、できるだけ目的ごとに資料を作っておきましょう。
資料が煩雑化してしまわない程度に細かく情報を残すことが重要になります。
オフショア開発の会社選びに失敗した時の対処法
続いて、オフショア開発における『会社選びに失敗した後』に出来る対処法を考えていきましょう。
どれだけ慎重に会社を選んでも、失敗すること自体はあります。
そのため、その被害を最小限に抑える方法を考えておく必要があるのです。
最低限契約内容を遵守してもらう
前述したように、契約内容をしっかりと決めておくことが重要ですが、その契約内容を遵守してもらうことが重要になります。
もしも契約内容を遵守していない場合などは、返金も視野に入れて対応する必要があるでしょう。
エンジニアの交代を要請する
エンジニアの交代を要請することも、オフショア開発で失敗した時の対処法として有効でしょう。
特にコーディングに関しては、エンジニアが変われば状況が変わることが多いです。
そのため、少しでも高いスキルを持ったエンジニアに参画してもらえないかを相手先の会社に依頼してみるのがおすすめです。
他の会社に引き継げないか相談する
会社選びに失敗した際には、できるだけ被害が小さい段階で他の会社に依頼を変更するのが良いです。
その際に、間に入っている日本企業があれば、そういった相談を持ちかけてみるのもありでしょう。
ブリッジSEなど上流エンジニアを替えてもらう
オフショア開発においては、ブリッジSEなどの上流のエンジニアが非常に大きな役割を担っています。
そのため、上流のエンジニアを変えるだけで、プロジェクト全体に大きな改善が見られるケースも多いです。
特に、上流のエンジニアの日本語の理解度が低い場合、設計書が日本語だと実装との乖離が生まれる可能性が高いです。
場合によっては別の会社から上流のエンジニアだけを参画させるなどの対策で変わる可能性があります。
マイクロサービス化していく
マイクロサービスとは、個々の独立した機能を組み合わせてサービス化していく考え方です。
各処理を独立化し、
「入力する値」
「出力される値」
だけを把握していくことで、各々の処理が干渉しないようにする方法です。
このマイクロサービスの形で開発を進めていくことで、仮に会社選びに失敗して、依頼する会社を変えたとしても、他の部分への影響が少なくなります。
反対に『一箇所のミスの影響範囲』が大きいような作り方にならないように注意しておきましょう。
安全なオフショア開発はAMELAに
今回は、オフショア開発における会社の選び方を見てきました。
オフショア開発で重要な会社選びですが、これに失敗してしまうと、金銭的にだけではなく、時間や労力も大きな損失が出ます。
しかし、実際に1つ1つ会社を探していくのは難しいでしょう。
そこで、AMELAをご活用下さい。
オフショア開発に向いていると言われるベトナムでのオフショア開発を中心に、ITコンサルティングなどを行っております。
日本法人があり、日本での開発実績も多数存在するため、安全なオフショア開発が可能です。
会社選びにお困りの際には、是非お気軽にご相談ください。