見出し画像

オフショア先の国や業者を選ぶ際のポイントとは?

こんにちは、株式会社スクーティー代表のかけやといいます。
私は2012年にベトナムに渡り、以降、100以上のオフショア開発プロジェクトを経験してきました。

その経験から、今後オフショア開発を検討されている皆様に、オフショア先の国や業者の選定でのポイントをお伝えしようと思います。

弊社もオフショア開発会社ですが、なるべく客観的な内容でお伝えいたします。長文ですが、最後まで読んでいただけると嬉しいです。

オフショア先の国の選定

株式会社Resorzさん発行の、2021年版オフショア開発白書によると、50%以上の企業がオフショア先としてベトナムを希望しているそうです。続いて、フィリピン、インドと続きます。

現時点ではベトナム一強の状況ではありますが、それでも選択肢はたくさんあるということです。

では、どういう点を考慮してオフショア先の国を選定すればいいのでしょうか?

優秀なエンジニアが多い

オフショア開発で一番怖いのは「安かろう、悪かろう」です。作業的な業務を委託する場合であっても、エンジニアの能力が低いとソースコードはどんどん乱れていきますし、何より生産性がひくいです。結局高くついてしまうかもしれません。

​そのため、労働市場として優秀なエンジニアがいるかどうかは大前提として必要でしょう。

エンジニア人口、情報工学専攻がある大学数、数学オリンピック情報オリンピックのランキングなどからある程度目処をつけることができます。

物価が安い

現地の物価は業務委託費用の相場に直結しますので、日本と比較して安い国を選ぶと、開発費用を抑えることができます。

​現時点での物価だけでなく、インフレ率も見ておく必要があります。今物価が安くても、急激に物価上昇しているような国だと、数年後にはコストメリットが出なくなってしまう可能性があります。

統計データとしては、国際金融情報センターが発行しているレポートがあります。

時差が小さい

例えば実際に現地のチームと業務を行う際、少なくとも数時間は業務時間が日本と重なっているかは確認しておいたほうがいいでしょう。

例えば地球の反対側にあって、業務時間が全く重ならないような国だと、連絡してもレスが半日後(見れるのは1日後)だったり、早朝や深夜にミーティングをやらなければいけなくなったりと、持続可能でない状況になる可能性が大きいです。

時差は2,3時間以内の国を選択することをおすすめします。

日本語教育に力を入れている

ソフトウェア開発において、顧客を含むチームメンバー間のコミュニケーションが非常に重要であることは言うまでもありませんが、オフショア開発の場合コミュニケーションの難易度が上がります。

「言いたいことがなかなか伝わらない」「相手が言っていることをうまく理解できない」という状況が継続的に発生するのは非常にストレスですし、プロジェクトのスケジュールや品質のボトルネック(かつ、シングルポイント)になってしまいます。

もし英語でのコミュニケーションに問題がないのであれば、インドやフィリピンといった英語圏の国でもいいですが、日本語でのコミュニケーションを求めたいのであれば、その国が日本語教育にどれくらい力を入れているかが非常に重要になってきます。

指標としてはその国の、日本語教育施設数、教師数、学習者数、または、それらの伸び率などが適当と思われます。

出張の際に滞在しやすい

最近はコロナの影響でフルリモートで顧客と現地メンバーが業務を進めることが多くなっています。しかし、チームの立ち上げやプロジェクトキックオフ、課題解決などで短期的に現地に出張しなければいけないケースは想定されます。

また、現地メンバーの管理や教育の担当として、日本から現地へ年単位の長期出張、あるいは現地法人への出向などのケースも想定されます。

上記のようなケースを想定し、日本人が滞在しやすい場所を選ぶことも重要です。例えば治安の良さや、食べ物が日本人の口に合うか(これは個人の好みにもよりますが、長く住む上でとても重要です)、強い反日感情がないか、などです。

海外の安全情報に関しては、外務省が発信しています。

政権や社会インフラが安定している

政権が不安定で、国外からの連絡ができなくなったり、危険な状況のために現地のメンバーが業務どころではなくなったり、あるいはインターネット回線が貧弱でチャットすらできなかったりなどといった状況も、日本では想像できませんが、海外では十分にありえます。

国別のネット速度はいろいろなサイトで調べられますが、例えばこのサイトで見ることができます。

​業者選定のポイント

オフショア先の国の選定をしたあとは、いよいよ実際に発注する業者の選定になります。

プロジェクトがうまくいくかどうかは発注先の会社だけでなく、発注側、業者双方の担当者にも強く依存しますので、知り合いからいい業者を何社か紹介してもらって、複数社に小さめのテストプロジェクトを発注して結果を見るのが安全だと思います。

ただ、前提として業者を選定するにあたって確認すべき点はいくつかありますので、それらを紹介していきたいと思います。

基本的には日本国内での業者選定と同じ観点が必要

もし日本でソフトウェア開発を委託した経験のある企業さんであれば、国内の業者を選定する際のチェックポイントのようなものはあると思いますので、まずはそれに照らし合わせるのがいいです。

  • 開発対象のシステムと類似のものを過去に開発した実績があること

  • 必要とされる技術に知見があること

  • 知り合いからの紹介など、会社として信頼できること。特に代表は信頼できそうか?

    • 私は状況が悪くなって逃げてしまった業者を見たことがあります。こういうのは代表の姿勢が強く影響していると私は思います。

  • 一度話をしてみて、窓口となる人が信頼できそうかどうか

  • 情報セキュリティはどのように守られているか

  • など

現地メンバーが日本語でソフトウェア開発上必要な会話をすることができるか

現地チームとの​日本語でのコミュニケーションを求める場合、その企業に属する通訳やブリッジSEがどれくらいの日本語能力を持つかは非常に重要な要素になります。

日本語能力試験N2以上は必須です(N3でも大丈夫と言ってくる業者もいるかも知れませんが、私の経験上、N3で十分に通訳をできる人を残念ならが見たことがありません)が、十分ではありません。

これは日本人も同じで、ソフトウェア開発業務に携わった経験のない日本人に例えば「実装完了後にプルリクエストを作成して、レビューが通ったらソースコードをマージする」という話をしても理解されないでしょう。

同様の理由で、業務レベルの日本語能力を持っていることと、ソフトウェア開発の現場で業務をできることは別なので、ソフトウェア開発企業での業務経験を持っている通訳が多く在籍していることが望ましいです。

発注する前に業者候補とオンラインでミーティングすると思いますので、その際に通訳かブリッジSEのメンバーに同席してもらい、会話をしてみるのがおすすめです。

それ以外にも、下記点は確認しておいたほうがいいです。

  • コミュニケーションで問題が発生した場合に日本人がサポートに入れる体制があるか

    • IT企業で働く通訳の人たちは日本語が上手な人が多いですが、それでもネイティブとの壁はあり、どうしてもうまく通じない時が発生します。その時は日本人同士で話すのが一番ですが、ローカル企業だと日本人が一人も在籍していないことがあります。

  • ブリッジSEと名乗っている人物は本当に開発経験のある人材か?

    • 顧客目線だと、ブリッジSEに求める能力は顧客と直接折衝して上流工程ができることと、技術的な議論をできることではないかと思います。しかし業者によってはブリッジSEというポジションであっても、「IT用語を多少知っている」「HTMLはわかるがプログラミングはわからない」「設計書を読むことはできるが、設計ややったことがない」のような人材だったりします。

    • 要は、エンジニアではない人材が【社内で】ブリッジSEという肩書だけ持っているケースがあります。

    • 技術要件が厳しいような案件だとブリッジSEが重要になってきます。発注前にアサイン可能なメンバー同席のもとにミーティングをして会話をしてみるとか、あるいは簡易的な面接をやってもらうのがいいです。

日本顧客相手の業務の実績が豊富にあるか

日本人は、コミュニケーション方法や労働観が他国と比較してかなり極端であると言われています。詳しくは弊社発行のホワイトペーパーをご覧いただければと思います。

したがって、海外人材と仕事をする際は相手国を尊重し、コミュニケーション方法や業務の進め方を双方で話し合い、最もパフォーマンスが良くなる方法を一緒に探していくことが必要だと私は考えています。要は、発注側もある程度歩み寄る姿勢が必要ということです。

言い方は悪いですが、いまだにジャパン・アズ・ナンバーワンの感覚で、東南アジア諸国を見下すような方々はオフショア開発で100%失敗しますので、日本国内で業者を探すことをおすすめします。

とはいえ、上記の背景から、日本企業と働くことに慣れている業者を選ぶことも非常に重要です。この点に関しては、日系企業を選ぶのが一番無難でしょう。

品質保証体制は整っているか

最後に品質保証体制についてです。

オフショア開発の場合、まずコミュニケーションギャップによって​​生じる品質低下がまず挙げられます。
また、新興国への発注だと、エンジニアが若く、経験不足によって品質低下を招いてしまうことが挙げられます。

こういった背景から、業者がどのような品質保証体制を持っているかは、確認すべき点の一つになります。「専属のテスターをアサインします」だけではちょっと弱いと思います。確認事項としては下記が挙げられます。

  • 機能テスト以外のテストも行うことができるか

  • テスター、QAはどのような能力や資格を持っている人材か

    • どのようにテストをするのかを確認し、「テストケースを作ってテストをします」という回答しかできない業者はあまりノウハウがないと判断していいと思います。

  • ソースコードの品質も大事にしているか

    • ソースコードの品質をどう保つかを確認し、「ソースコードレビューをします」という回答しかできない業者は、コピペだらけだったり、やたら長い関数、マジックナンバーを平気で使うといった汚いソースコードを書いてしまう可能性が高いと判断していいと思います。

  • ソフトウェアの品質を定量的に分析するプロセスがあるか

  • 自動化のノウハウや実績はあるか

  • 設計書を大量に翻訳する必要がある案件の場合、翻訳のヒューマンエラーや表記ゆれに起因する仕様の誤認をどのように防ぐか?

最後に

今後も、オフショア開発を検討しているけどどのように始めたらいいか悩まれているような方や企業向けに、オフショア開発に関する情報を発信していこうと思います。

この記事は私が経営する株式会社スクーティーのコーポレートブログの下記記事を焼き直したものです。


この記事が気に入ったらサポートをしてみませんか?