ブリッジSEとして、ベトナムでのオフショア開発を進めるときに気をつけること

以前、ベトナムでのオフショア開発を行っている企業でブリッジSEとして働いていました。

日本で詳細設計書を作成し、ベトナムでコーディング、単体テストを行います。
その後、日本で再度テストを行い、納品と言う流れでした。

日本人エンジニアは日本語、ベトナム人エンジニアはベトナム語と英語だったため、エンジニア間で直接コミニュニケーションがとれません。
双方のエンジニア間では、ベトナム人翻訳者が活躍してくれていました。
日本人エンジニアが日本語で作成した詳細設計書を、ベトナム人翻訳者が日本語からベトナム語へ翻訳します。
単体テスト仕様書も、ベトナム人翻訳者が日本語で作成し、日本人エンジニアがレビューしていました。

コミニュニケーションツールは、skypeをメインに利用していました。
そんな、ベトナムでのオフショア開発で私が気をつけていたことをまとめました。

時間管理に気をつけよう!

日本とベトナムの時差は2時間で、ベトナムが2時間遅いです。
急ぎのタスクで「◯◯時までにお願いします!」と依頼するときは、どちらの国の時間なのかをしっかり伝える必要がありました。
ここを省略すると、日本では日本時間、ベトナムではベトナム時間として受け取ってしまいます。
「日本の15時、ベトナムの13時までにお願いします!」が満点の伝え方だと思います。

残業、休日出勤はないと考えよう!

ベトナムの人は、日本人エンジニアの伝家の宝刀「残業」と「休日出勤」をほぼ使いません。

基本的に残業はしません。休日出勤もしません。
仕事が終わっていなくても、定時になれば帰ってしまいます。
トラブル時はお願い次第で対応してくれることもありましたが、彼らのモチベーションはめっちゃくちゃに下がります。
1週間の残業をお願いしたことがあったのですが、その週末、今週は疲れたので来週いっぱい休暇が欲しいと言われてしまったこともありました。
(彼らが残業、休日出勤した場合は、お給料を時給換算した場合の倍の手当てが支給されていたのに!)

定時以降にトラブルが発生したときは、日本でしっかり対応できるように体制を整えておくことが必要です。

ベトナムの休日に気をつけよう!

もちろん祝日が、日本の祝日とは違っています。
2月の上旬には、「テト」と言うベトナムの長期休暇もあります。
この時期は、だいたい1週間から2週間ほどの休暇をとるメンバーが多かったです。

スケジューリングするときは、ベトナムの祝日も考慮して考えておくことが大切です。
ベトナムの祝日を確認出来る、こちらのカレンダーが手離せません。

www.viet-jo.com

タスクの詰め込みすぎに気をつけよう!

ありますよね。納期がせまっていて、メンバーのタスクを詰め込んでおくこと。
おそらく日本人エンジニアだったら、残業なり休日出勤なりして、対応してくれていたりします。泣ける。

ベトナムの人も、無理なスケジュールを押し付けたら、まずはがんばろうとしてくれます。
ただ、残業、休日出勤はしないため、決められた時間内にがんばることになります。
ひとつひとつのタスクにかける時間を減らすんですよね。

その結果、明らかに品質が下がってしまうこともあり、バグが多発、納期に間に合わなかった、と言うこともありました。

タスクを依頼するときにこちらの完了希望日を伝え、完了予定日を連絡してもらうといいと思います。
ただ、完了予定日から遅延している場合も連絡が来ないこともありますので、日本側から状況確認する必要があります。

品質の考え方の違いに気をつけよう!

ベトナム単体テストまで完了しているはずが、日本で同じ検証を実施すると、バグが次々に、、、
ベトナムでの結果を鵜呑みせず、日本でもしっかりテストをすることが大切です。

これは日本とベトナムの品質への考え方の違いが大きいと思います。
例えば、インターネット回線ひとつとっても、日本では切断されることがほとんどないですよね。
ベトナムでは低下なり、切断なり、は良くあることです。
だからと言って、回線会社へ殴り込みに行くひと、日本のように鬼のようなクレームをインターネット上へ書き綴るひとはいないと思います。
日本のように、何事も精度が高いわけではなく、そうゆうものだと捉えて生活しているのです。

彼らはとてもまじめなので、なぜ品質が大切で、どこまで品質を追求してほしいか、等をしっかり説明すると、理解してくれ、努力もしてくれると思います。
ただ、すぐの改善は難しい部分も多いので、日本でもしっかりテストを行いましょう。
そして、その工数もしっかりスケジューリングしておくことが必要です。

詳細設計書はきちんと書くべし!

「初期値=null」と記載すると、初期値として英字で「null」と設定されていたことがありました。
nullって世界共通のプログラミング言語じゃないのか、と愕然とした瞬間です。

また、日本の業務システムには良く出てきがちな「売上年度」「決算年度」など、さらっと記載してもこちらの意図は届きません。
例えば決算が3月の会社は2017年1月2月3月は2016年度となりますが、決算が12月の会社は2017年度となりますよね。
日本人であればさらっと理解してもらえますが、このような場合は仕組みをしっかり説明する必要がありました。
私はサンプルの入力データを何件か記載し、そのデータの出力データを記載することで、間の処理を理解してもらっていました。

とりあえずは、日本人とベトナム人と違いをしっかり把握すること!

書いていて、ベトナムでのオフショア開発ってとっても大変な気がしてきました。
でも、わたしはベトナム人エンジニアのスキルはとっても高いと思います。
きっちり大学で勉強しているメンバーが多いため、こちらの意図さえ理解してもらえれば、仕事はハヤイ!

また、ベトナムの人たちは、家族をとても大切にします。
同様に、仲間もとても大切にしています。
そして、とても親日家です。そして、とてもまじめ。

こちらからしっかりコミニュニケーションをとり、何事もしっかり説明すると、彼らはとても優秀なエンジニアでした。
彼らからとんでもないコードが届いたときは、日本からの伝えもれと言うパターンもとても多かったんですよね。
これは結局日本人エンジニア相手でも変わらずですが、しっかりコミニュニケーションをとることがいちばん大切ですね。

個人的に、ベトナムは1度遊びにいったこともあり、大好きな国です。また行きたい!

f:id:irodoruhito:20170326235507j:plain