オフショア開発と聞くと、どうしても「品質が…」「言語の壁が…」というマイナスなイメージがあります。が、実際こうした失敗のほとんどはしっかりと準備をすれば防げることでもあります。

「オフショアは品質が悪い」ということのほとんどの原因は準備不足にあります。
今回はオフショア開発を頼む前にやるべき準備についてお話しします。

1. オフショア開発のための準備1:まずは自社でプロダクトへの意識と役割、期待値を統一する

オフショア開発の準備
まずはオフショア先に委託する前に、下記のことを自社で確認しましょう。これはオフショア開発の準備というより、全ての開発において重要な準備です。

・自社の中でプロダクトに対する意識(何を、なんのために作るのか)
・誰がどこまで責任を持ち、意思決定者が誰か
・オフショア開発先にどのようなことを期待するか

1-1. 自社の中でプロダクトに対する意識

「なんのためにプロダクトを作るのか」はオフショア開発のみならず全ての開発プロセスで重要になります。
プロダクトの目的が明確にオフショア開発チームに伝わることで、オフショア開発先はこのプロダクトの目的を参照しながら開発を進めていくことができます。

目的が共有されていることで、オフショア開発チームでも開発しながら、「この機能、目的を考えるとこっちの方が使いやすいんじゃないか?」「これは目的に照らし合わせると不必要なのではないか?」などの議論も活発に起こりやすくなります。

1-2. 各役割の責任範囲、意思決定者が誰かを決める

オフショア開発という外部に開発チームを持つ体制で開発をする場合、特にチーム内での意思決定者が明確であることは大切です。
これもオフショア開発を頼む前にやるべきとても大切な準備となります。

オフショア開発に限った話ではありませんが、特にデザインや使い勝手の面では、発注元チーム内で人によって「良い」と思う基準が違うことにより「あの人はOKと言ったのに、こちらの人はNGと言ったので手戻りになりました」ということが発生しやすくなります。

オフショア開発を頼む前に、全ての開発プロセスにおける自社の各メンバーの責任範囲や、最終的な意思決定者を明確にしておくと、後々決定が覆されて開発期間が伸びてしまうというようなことが防げます。

1-3. オフショア開発先にどのようなことを期待するか

オフショア開発先へ発注をする前に、オフショア開発に何を一番求めているかもチーム内で認識を合わせておくのも準備として大事なことです。

人によって「オフショア開発」へのイメージは違います。
とにかくコストが安ければいいのか、あまりコストカットにはならずとも自社の社員のように考えて開発して欲しいのか…など、どんな基準でオフショア開発先を選ぶかをチーム内で認識を合わせておきましょう。

2. オフショア開発のための準備2:仕様書にしっかりと落とし込む

オフショア開発の準備
オフショア開発でよくありがちなのが、日本人エンジニアに任せるのと同じように「なんとなく、いい感じにやっといて!」と指示してしまい全然イメージと違うものができてしまうこと。

文化も言葉も違う開発チームに頼むのだということを念頭に置いて、仕様書は誤解しようがないくらいに作り込んでおくことをオススメします。

具体的には、まず画面構成や遷移図、モックアップがあるとそこからユーザーの動きが想像しやすいので、もし可能であればちゃんと作り込んだものを入れた方が良いでしょう。
特に言語の壁があるオフショア開発では、視覚的なイメージは開発メンバーたちの理解を助けます。明確なビジュアルを準備しておくととても話がスムーズに進むでしょう。

オフショア開発の準備

invisionなどで簡単なプロトタイプを作るのもおすすめ

「そこまで準備する時間がない!」「変更が入る可能性がある」という場合は、少なくともオフショア開発に出すプロダクトの、メインのユーザーのタイプ、ユーザーフローはきちんと明記しておくと良いでしょう。

これをしっかり準備する背景としては、たまにオフショア開発の失敗として「ユーザー視点がなくユーザーにとって使い勝手が悪いものが出来上がってしまう」ということを聞くからです。
これはオフショアチームに、どんなユーザーがどんな風に使うかを共有されていないことから起こりやすいので、少し意識的に伝えると良いでしょう。

こちらの記事ではUI/UXデザインツールのFigmaを紹介していますので、参考にしてみてくださいね。

3. オフショア開発のための準備3:事前にある程度テスト要件を決める

オフショア開発の準備
オフショア開発を、ウォーターフォールのような最初に全部決めてしまってスケジュール通りにやっていく、という開発プロセスで行うことは、個人的にはあまり推奨しません。

ただでさえ認識齟齬がおきやすいオフショア開発で、最後の受入テストでしかプロダクトのレビューをできないような開発体制では、「思ってたのと違う」となり開発やり直しになりやすい、変更を入れづらくマーケットの要望を臨機応変に入れられないなどの問題が発生します。

そのため、準備段階で「どの段階でどのようなテストをするか」を決めることが大切になってきます。
どの段階で(なるべく早いのが望ましいです)、どんな項目をテストするかを決めておくと良いでしょう。

4. オフショア開発のための準備4:小さな単位でレビューを行うような開発体制を作る

オフショア開発の準備
上記したことを関連しますが、やはりオフショア開発は言語の違いや文化の違いからどうしても認識齟齬がおきやすくなります。

あまりコミュニケーションを頻繁に取らないオフショアチームは、大きな認識齟齬ができて開発が無駄になる可能性が高くなる、ということを知っておいた方が良いでしょう。

その共通認識を自社内で持って、アジャイルの開発体制をとるか、ウォーターフォールにするのか、などの開発体制や進め方を準備しておきましょう。

5. オフショア開発のための準備5:キックオフにて共通イメージを持てていることを確認する

オフショア開発の準備
自社内での認識合わせや仕様書が準備できたら、オフショア開発チームとのキックオフをします。

対面でできるのが一番望ましいですが、オフラインでも良いでしょう。
開発の始め方は各社違うと思いますが、キックオフではオフショア開発チームと自社のチームが同じ目的に向かっていけるようにしましょう。

また、オフショア開発チームからの質問や提案を受け入れるための空気感を作ることも、キックオフで必要になることです。

6. まとめ

ここまでしっかり準備すれば、あとは適宜オフショア開発チームとコミュニケーションをとりながら開発を進めることで大きな失敗は防げるはずです。

せっかく別の国に開発チームを持つのですから、試行錯誤しながら良いものを一緒に作り上げて行くぞ!というポジティブなマインドセットも準備しなければいけないものかもしれません。
オフショア開発チームと一緒にものを作り上げた時の喜びはとても大きいので、しっかり準備して臨みましょう!

7. ベトナムでオフショア開発をするならバイタリフィへ

もちろん、「開発の経験がなくてあまりわからないので相談したい」という場合は、ぜひ弊社へご相談ください。
バイタリフィバイタリフィアアジアでは、ホーチミンで2008年から10年超のオフショア開発経験と実績を活かし、優秀なベトナム人エンジニアを活用したソフトウェア開発・サービス開発/保守運営が可能です。

ベトナムオフショアならバイタリフィへ

また、当社は、ベトナムに子会社(バイタリフィアジア・スクーティー)を設立しています。
バイタリフィアジア・スクーティーでは、当社で受けた案件の開発部分をベトナム拠点に依頼するようなオフショア開発ではなく、お客様がベトナム拠点と直接関わり、案件進行して頂く事によりコストを抑えたリソース提供を可能にしています。
お客様の専属エンジニアをベトナムにもって頂くようなイメージでの開発が可能となっていますので、「どのようなチームで、どんな風に開発を進めれば良いのかわからない…」と迷っている場合にも一度お気軽にご相談ください。
当社で受託するのがよいのか、バイタリフィアジアへお繋ぎするのがよいのか、お客様にとって適切な開発体制をご提案しています。