見出し画像

やはり日本語ができる海外エンジニアだけを日本企業は採用すべき理由

はじめに

オフショア開発を4年ほどフリーランス、自社で行ってきました。国内のエンジニア不足から海外人材の採用は一つの選択肢となっています。ただ、4年間でいろいろ試行錯誤してきましたが、結局のところタイトルにあるような結論に辿り着きましたので、その試行錯誤について紹介します。

前提

前提としてPMやSEの日本人は英語を話すことができないとします。英語がビジネスレベルで使える場合はこの記事の主張は成り立たないため、スルーしてください。ちなみに私も英語をビジネスレベルでは使えません。

スマホアプリ - インドオフショア開発 - 1回目

チーム構成

  • PM:日本人1名(私)

  • ブリッジエンジニア:インド人1名:日本語N3 + バックエンドエンジニア

  • エンジニア:インド人3名:日本語話せない

  • テスター:インド人1名:日本語話せない

これでスマホアプリの開発を行いました。私は日本語が話せるインド人とコミニュケーションをとり、開発をマネジメントしました。
具体的な作業としては、PMの私が顧客折衝と要件定義、基本設計を行いました。
その後、ブリッジエンジニアに基本設計を説明し、あとはインド側に英語で説明してもらい、丸投げして出来上がる画面を待っていました。
デザイナーから日本語XDをもらったので、それもインド側に丸投げしてこの画面通りに作ってくださいと伝えました。

発生した問題

  • 画面がデザイン通りにならない。

    • スマホアプリは約40画面ですが、私から200以上のフィードバックを行いました。

  • アプリの動作について、顧客が期待していた動作をしない。

  • スケジュールが1ヶ月遅延した

考察/調査した振り返り

やってみて気づいたことですが、意味の理解できない外国語の画面を開発するのは結構大変です。日本人の私たちも英語の画面であれば作れるかもしれませんが、韓国語やアラビア語の画面を開発するとなると相当きついです。私たち日本人ネイティブにとっては一目瞭然の差も、外国人からすると差に見えないことがあります。1px単位にもこだわる日本人に合わせるにはそれなりのエンジニア教育が必要です。

アプリの動作についても、設計で全てカバーできることが理想ですが毎回のMTGで若干の仕様変更が発生することや、実際のアプリを触ってみて変更が発生することが現実です。その際に日本人であれば、ある程度少ない言葉や背景の伝達、これまでの経験で"よしなに"やってくれますが、外国人の場合はそうはいきません。

毎回コミュニケーションにブリッジエンジニアが入ることは仕方ないのですが、単純にMTG時間が2倍になってしまいます。一つのエラーを説明するのにも時間がかかりました。


Webアプリ - インドオフショア開発 - 2回目

次にWebアプリケーションの開発に取り組みました。
チーム構成は同じように以下です。

  • PM:日本人1名(私)

  • ブリッジエンジニア:インド人1名:日本語N3 + バックエンドエンジニア

  • エンジニア:インド人3名:日本語話せない

  • テスター:インド人1名:日本語話せない

前回の経験から、ブリッジエンジニアの理解力がオフショア開発のプロジェクトを左右することを感じました。ブリッジエンジニアのプロジェクト理解力が高まるほど、少ない言葉で仕様変更などを伝えられるためです。

そのために設計作業をブリッジエンジニアと一緒にやることにしました。理解力をつけるためには設計をして、間違いをレビューすることが一番だと感じたためです。

発生した問題

  • 画面がデザイン通りにならない

  • 設計スキルがない場合、レクチャーに時間がかかる

考察/調査した振り返り

画面がデザイン通りにならない問題は、オフショア開発において結構根深い問題だとこの時に気づきました。この開発だけではなく、他のプロジェクトや、別会社のオフショア開発経験もありますが、画面がデザイン通りにできません。なぜできないかの理由は上で述べた通りです。ただデザインのQAも行ってはいます。しかしQAがチェックしてもなお、PMまでデザインのミスが上がってきます。

設計を一緒に行う際に、PMが基本設計、ブリッジエンジニアが詳細設計を行うようにしました。ただ、このブリッジエンジニアはこれまでプログラマーとして開発してきた経験がほとんどで、設計の経験がありませんでした。
そのため、設計のレクチャーに大幅に時間を取られる結果となりました。

ただし、ブリッジエンジニアの理解力は確実に上がり、前回のような大きな認識齟齬は少なくなりました。

そのため、ブリッジエンジニアだけの別ミーティングなど、会話する時間を長くとり、プロジェクト理解をできるだけしてもらうようにしました。

Webアプリ - バングラデシュオフショア開発

インドオフショア開発会社で複数のプロジェクト経験を積みました。その後、バングラデシュのオフショア開発会社で業務委託としてPMを行いました。
チーム構成は以下です。

  • PM:日本人1名(私)

  • 通訳者:バングラデシュ人:1名:エンジニアスキルなし/フリーランスで月水金の3h稼働

  • エンジニア:バングラデシュ人8名

  • テスター:バングラデシュ人4名

  • インフラエンジニア:2名

特徴として、インドオフショア会社は日本語と英語が話せるブリッジエンジニアを5名ほど雇用しており、全てのプロジェクトにつけていました。ただ、バングラデシュの会社はブリッジエンジニアを採用しておらず、通訳者が間に入ることでやりくりしていました。

発生した問題

  • 画面がFigma通りにならない

  • メンバーの数と開発成果が見合っていないように感じる

考察/調査した振り返り

何度も出てきていますが、テスターを通しても画面がデザイン通りにならないことはオフショア開発では頻出の問題です。いくつか手段はありますが、外国人にテスターを任せず、日本人がテスターとして入るほうが良いと考えています。

今回は私を含めて16人での開発といった大人数での開発です。もちろん上には上がいますが、これまでの5,6名規模ではありませんでした。そこで感じたことは、メンバーの数と開発成果が見合っていないことです。

原因は大きく2つで、要件定義・設計の遅れと、メンバーの理解力です。
16人チームですが、要件定義・設計を行うのは全て私でした。あとの15人は開発部隊といった位置付けです。そのため、私の作業が進まないと後の15人も動けない状態でした。そして結果として私の設計の遅れから、15人のメンバーも遅れることになりました。

次にメンバーの理解力です。インドオフショア会社の経験からプロジェクト理解力は非常に重要だと痛感していました。今回は通訳の方に依頼してプロジェクト説明を依頼しました。通訳の方はフリーランスで週3勤務で3h、リモートで働く契約でした。となると、通訳以外のメンバーでコミュニケーションをとり、質問があればSlackで私に質問といった流れとなります。ただ、結果としてプロジェクト理解がチームとして上がりませんでした。


Webアプリ - 自社開発

オフショア開発を経験し、人材の採用ノウハウもあったので自社で海外人材を採用して受託開発も行っています。
プロジェクト理解が非常に重要であることと、その理解力を高めるには設計などのアウトプットをレビューすることが良いことはわかっていました。
しかし、どうしても第二言語でプロジェクトを説明するとコミュニケーションギャップによって余計に時間がかかってしまっていました。

ただ、日本人で英語がビジネスレベルに使えてシステム開発ができる人材は非常に市場価値が高いため、零細企業では採用はほぼ不可能です。

そこで、日本人通訳者にプロジェクトの背景を理解させて、設計のやり方をレクチャーし、設計をしてもらう方法を試してみました。

チーム構成は以下です。

  • PM:日本人1名(私)

  • 通訳者:日本人:1名

  • エンジニア:インド人2名

  • デザイナー:インド人2名

さらに技術選定にもこだわりました。結局AWSを使って細かなことをやろうとするからインフラエンジニアが必要になります。そのため、VercelやXanoなどといった簡単にセットアップでき、サーバーについて意識しなくて良いツール群を選定しました。これで人材を不要に配置する必要はなくなります。

発生した問題

  • エンジニア経験なしの通訳者に設計を依頼するのは、サポートありでも難しかった。

  • 外国人デザイナーに日本のプロジェクトはやはり厳しかった。

  • プロジェクトスピード全体の遅さ

考察/調査した振り返り

日本人通訳者にプロジェクトの背景を理解させ、技術選定はPMが行い、その中で外国人エンジニアに作ってもらう形でした。ただ、どうもプロジェクトのスピードが遅い状況でした。

一つの理由として、外国人デザイナーにデザインを依頼してみました。そこで気づいたことはデザインを行うにあたり、プロジェクト理解が非常に重要であることです。私はエンジニア出身のため今回初めて気づきましたが、デザイナーも要件定義や顧客と話せるレベルの人材を配置すべきだと気づきました。結果として、デザインが遅れエンジニアが待機する時間が増えました。

さらに、エンジニアからの質問も通訳者は回答できないため、結局PMまで回ってきます。この構成の意図としては技術的な意思決定はエンジニア側で決めてもらうようにしたかったのですが、現実はそうはいきませんでした。


まとめ

オフショア開発を4年間やってきて、必ず抑えるべきことを書きます。

  1. チーム全体として、プロジェクトの理解力を上げるべき。(オフショア開発はこれが特に難しい)

  2. デザイナーは顧客と話しができるレベルの日本人にすべき。(デザインには要件理解が強く求められる。)

非常にシンプルですが、以上です。
書いた通り、オフショア開発は間に通訳者が入ることや日本語のわからない外国人が開発するため、プロジェクトの理解を上げにくい特性があります。これを上げるために試行錯誤しましたが、昨今の開発効率化ツールの台頭から少人数開発ができるようになってきています。

そのため、以下のチーム構成が現状理想だと考えています。

  • PM:日本人1名

  • デザイナー:日本人1名

  • エンジニア:外国人1 or 2名 : 日本語がビジネスレベルで使える人材

理解力を上げるにはコミュニケーションコストを下げるべきです。そのため、プロジェクトのメンバーを減らします。日本語ができて、エンジニア力もある外国人を1,2名採用してその人に開発をしてもらいます。

今後、開発効率化ツールがどんどんグレードアップしていくことを考えると、多人数開発はチーム全体の理解力を上げること非常に難しいです。であれば少数精鋭チームを作るべきだというのが今の私の結論です。

この続きについては以下の記事に書いております。


PR

弊社はトップレベルの海外ITエンジニアの採用代行を行っています。今回紹介した少人数開発に興味があればぜひご連絡ください。


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