#はじめに
ある程度の試行錯誤の上でようやく軌道に乗ってきたので
実際に体験した事柄から開発を進めるコツを簡単に紹介します。
オフショア先はベトナム(以下VN)で、チームとしてはVN側にはブリッジが1名あとはメンバーという構成です。
日本にいる私がVNにいるブリッジとやりとりして開発を進めています。
#やったこと
##最初
何はともあれキックオフです。
VNまで足を運んでキックオフです。
実際に顔を合わせて仕事することで以後のコミュニケーションに響くのではないかと思います。
VNに行くにあたっては日本語のできるブリッジの方いるので高校程度の英語力があればあとは身振り手振りでなんとかなりました。
恐らく単身で行っても英語だけで何とかなります、
一般人もフレンドリーですし治安も良いです。あとご飯も美味しい。
私はキックオフと環境構築だけ済ませて帰国しました。
##ベトナム側の開発レベル
エンジニアとしてのレベルは未知数でしたが日本と大きく変わらない印象でした。
エンジニア歴が5年であればそれ相応といった感じです。
ただし日本と大きく変わるポイントはRubyの知識でしょう。
日本では浸透しているRubyですがチームで経験しいるメンバーはいないという実情でした。
恐らく私のチームだけでなく、VN全体で日本と取引のある企業に属していた方以外はまともにRubyを触っていないでしょう。
なのでRubyを書いて欲しい場合は学習コストが掛かるでしょう。
##開発スタイル
基本的にチャットツールを用いてコミュニケーションをとりました。
開発は日本側で仕様書を用意してブリッジに渡し、ベトナム語に訳してもらいます。
訳した後にその内容で実装してもらい、ある程度実装が終わったらレビューして指摘していくというよくある開発スタイルです。
レビューや指摘については日本語と英語・コードを混ぜて行います。
というのも日本語で長文になりがちな指摘事項などはどうしても微妙な誤訳があったりしたので、英語で同じ意味の文章を書いておくことにより誤訳を減らそうとしていました。
英語だとVN側のメンバーもある程度読めますし。
それでも伝わらない時のためにコードで会話すれば問題ないです。
コードは国を越えてもエンジニアの共通言語です。
##コミュニケーション
英語レベルはチャット上での意思疎通は難しくないという印象でした。
基本的に日本語でブリッジを通じてメンバーとの意思疎通を行うわけですが、個別に話したい時は英語で話しかけるようにしています。
ブリッジと話す際に気をつけなければならないのは和製英語と言い回し、難しい単語です。
和製英語で印象的なのはレビュー完了後にfixと言って通じなかった時ですね。
言い回しは日頃から意識しないと特に影響があると思います。
その実装はあまり推奨されていないけど納期的にはやぶさかではないかな。
このような曖昧な言い回しは誤解を生みやすいです。
文章の前半で否定しておきながら最後に肯定するなどは伝わりにくい印象でした。
##資料は嚙み砕く
これはVNに限りませんが
社内ドキュメントなどは社内で通用するように書かれていることが多いので分かりやすく訳す必要があります。
社内用語の翻訳が一番骨が折れるので、開発前に噛み砕いた訳を準備していた方が良いです。
#オフショアを安定させる
ためにはコミュニケーションが一番大きいように感じました。
開発スタイルは慣れなので暫くすれば特に問題なく回るようになります。
一番大変なのはコミュニケーションで、言葉の言い回しは中学生でわかるレベルに落とし、英語もある程度理解している必要があります。
物理的距離もあるのでどうしても距離感を感じてしまいます。
なのでそれを解決するために毎週Skypeでの雑談会を行っています。
雑談を通じて個性を知ったりフレッシュしたりできるのでコミュニケーションを円滑にできています。
- 訳しやすい日本語でコミュニケーションする。
- 定期的に雑談する。
この2つが大事だと思います。