2020-06-07

ベトナムのオフショア開発はアリなのか?【単価と問題】

ベトナムのオフショア開発はアリなのか?【単価と問題】

プロエンジニアが教えるTIPSシリーズ。 明日の話のネタ、生産性向上になるネタをお伝えします。

今回は、ベトナムのオフショア開発について。 経験したことのあるエンジニアはまだまだ多くないと思います。 私が2年間経験して得た感想を紹介します。

オフショアとは

オフショアリング(英:offshoring)とは、既存の事業拠点から他国に事業を移転する経済行為を指す。

オフショアリング

IT業界では、システム開発の「プログラミング」工程をベトナムや中国に外注するオフショア開発が広く行われています。 大きな理由としては、コストの削減、IT人材不足の対策が主な理由です。

ベトナムのオフショア開発を2年間経験しました

私は、日系のシステム開発会社に勤めているのですが、2年間ベトナムのオフショア開発を経験させてもらいました。

一時期はベトナムに2週間滞在していました。ビザ無しで滞在できる期間ですね。

役割としては、ブリッジSE兼プロジェクトマネージャーみたいな役割でした。

具体的には、

  • システムの設計
  • ベトナム人に対する作業依頼
  • 成果物の確認(テスト)

ですね。

あとは工程管理だったり、コスト管理などの管理業務を行っていました。

ベトナムのチームは総勢10名から15名くらいで全員ベトナム人でした。 その中にはプログラマーだけではなく、テスターだったり、日本語の翻訳家もいました。

ベトナムのオフショア開発のメリット

ベトナムオフショア開発のメリット1:低単価とコスト削減効果

単純に単価で見ると日本の1/4から2/1だと思います。 プログラマー1人当たり、20万から25万ぐらいでした。 この中にテスターや翻訳家の費用も含まれていました。

ベトナムオフショア開発のメリット2:豊富な人材

ベトナム人エンジニアは、開発者の層が厚く、人数も多いです。 参画してもらったエンジニアは、バックエンド、アプリ(iOS、Android)、Windowsアプリ等でした。 これだけ幅広いスキルを持ったエンジニアを15名集めようとするとかなり難しいですし、単純にお金がかかります。

ベトナムオフショア開発のメリット3:仕事ぶりが良い

ベトナム人エンジニアの技術力は非常に高いです。 仕事ぶりも非常に真面目。 嘘をついたりとか人を騙したりもありませんでした。

ベトナムオフショア開発のメリット4:コミュニケーションと時差

コミュニケーションは全然問題ありませんでした。

基本的には、インターネット上でテキストのやり取りで行います。 弊社では、GitHubを利用して作業を管理していました。 GitHubに設計書や依頼事項を日本語で登録すると、ベトナム人の翻訳家がベトナム語に翻訳してくれます。 それを基にベトナム人プログラマーがプログラムを作成してくれます。

もちろん、意思疎通がうまくできないない時も有りましたが、言語が違うので仕方ないです。 その際は、表現を変えたり、説明を丁寧にしたりして対策を行いました。

また、時差も2時間とほぼ無いのもメリットです。 日本のチームとほぼリアルタイムで仕事を行えます。 障害発生時なども、早い場合には、当日中に報告をくれました。

ベトナムのオフショア開発のデメリット

単価も安い。仕事ぶりも問題ない。と夢のような話ですが、問題も有ります。

慣れるまでは大変

オフショア開発の反対勢力が、社内で非協力的だったり、社内で悪い噂を流すため、社内で成功事例が出てくるまで辛抱です。

  • 失敗する
  • 品質が低い
  • 管理コストが増えるのでコスト削減にはならない

といったネガティブな噂を流され、成果が出る前に辞めてしまうところも多いのではないでしょうか。 (そういう方ほどベトナムで作られたユニクロの服を着ているんですが…)

オフショア先は、新しく工場を建設するようなイメージで考えて欲しいです。 オフショア開発を始めた直後は、担当者が不慣れだったり、人間関係が構築できていなくて、なかなか上手く行きません。 というか、上手く行くわけがないです。

マネジメントは大変だが…

マネジメントは大変かもしれません。 ただそれって日本企業に依頼する時と変わらないと思うんですよね。

さすがに社内の同僚にプログラムの作成を依頼するのとは全然訳が違います。

いくつかオフショアで失敗したプロジェクト見てきましたが、いづれも適切なマネージメントを行っておらず、次のような感じで回していました。

  • 作業の依頼が雑(XXXと同じように作ってくれ)
  • 最後にまとめて確認をする。機能単位・画面単位で成果物を確認しない。

そのくせ作業が完了したら、中のコードが汚いとか。仕様通りのものが出来ていない。と言い始めます。 最終的には、日本人エンジニアがコストをかけて修正するケースを何度も見ました。

ユニクロなどの海外に工場を持っているメーカーの社員が見たら怒ると思います。 管理せず。細かく確認せずで、品質が上がる訳ないじゃないですか。

そのため、次のようなマネージメントは必須です。ただ、これはオフショア開発だから必要というわけではなく、日本企業に依頼しても同じです。

  • 仕様書をしっかり作成する。
  • 開発ルール、コーディング規約を共有する。
  • 質疑応答をしっかり行う。
  • 成果物は機能単位で確認する。

これをやれば、日本で開発した場合と同等のシステムを完成することが出来ます。

担当者のスキル低下

オフショア開発を行うと、日本側の担当者はどうしても管理業務が増えてしまいます。 これまでプログラムをバリバリ作ってきた社員も、オフショアの管理業務が増え、技術スキルが低下したり、面白みのない仕事が増えてしまいがちです。

私の場合もそうでした。 オフショアで10人から15人ぐらいのベトナム人プログラマに仕事を依頼するようになると、 彼らを遊ばせるわけにはいかないので、どんどん設計して、どんどん確認するというような業務になり、仕事もだんだんつまらなくなってきました。

日本企業に外注した場合と同じ

オフショアの問題・課題って日本企業に外注した場合と同じなんですよね。 であれば単価の安いコスパの良いベトナム企業に仕事が流れていくのは必然だと思います。

むしろ、日本の安くないエンジニアとしての生存戦略をむしろ考えていかないといけないかもしれません。