オフショア開発の3つの課題・問題点【フィリピンでのオフショア開発を経て】

2018年12月10日月曜日

IT

オフショア開発拠点の街中

こんにちは、uni-browserの財前航介です。

自分は今年の10月まで、フィリピンでブリッジエンジニアとして勤務していました。

それ以前は日本でITエンジニアをやっていたのですが、英語力の向上を目的としてフィリピンの現地企業への転職を行いました。

私としては本当に良い経験になったのですが、日本企業のお客様とフィリピン人開発エンジニアの間に入ってコミュニケーターの業務をやっていると、オフショア開発の難しさ、ひいては、日本人がグローバルにビジネスを行う上での課題のようなものを感じたので、この記事ではそれについてシェアできればと考えています。

なぜオフショア開発を行うか


オフショア開発拠点の道端

この記事をクリックしてくださった方であればご存知だと思いますが、オフショア開発とは、主に人件費が安い発展途上国などで製品の開発を行うことですね。

私が住んでいたフィリピンは先進国に比べると人件費が安く、現地の人達の英語力も非常に高いことから、オフショア開発先として人気のある国です。

私が勤めていたフィリピンの現地企業でも、日本をはじめとして、アメリカや、オーストラリアなどの先進国からソフトウェアの開発業務を受注していました。

開発者を雇う上でのコストとしては、日本人の開発者を準委任契約で雇うときと比べて、おおよそ半分程度の値段で雇うことができるイメージです。


なぜわざわざ海外でソフトウェア等の開発を行うのかと言えば、人件費を大幅に安く済ますことができるからですね。

フィリピンだけでなく、同様の目的で、中国ベトナムインドネシアインドミャンマーなどの国でオフショア開発を行っている日本企業も多くありますね。

オフショア開発の課題・問題点


オフショア開発拠点の通り

私がブリッジエンジニアとしてオフショア開発に携わる中で感じた、オフショア開発の課題・問題点は以下のようなものです。

  • 言語の違い
  • 社会基盤の違い
  • 文化・考え方の違い

言語の違い


言語のクッキー

私が働いていたフィリピンであれば、英語が通じるのでまだ良いのですが、やはり現地人同士の会話は現地語で行われます。

そうなってくると、会議中に開発者同士でどんな相談をしているのかが、現地の人達の間でしか共有されないこともあります。

特に私の場合は開発チームに日本人が一人の状況で業務に当たっていましたので、現地人同士の現地語で繰り広げられる会議には、かなり置いて行かれていました。

ただ、フィリピンであれば、ドキュメントも全て英語で作成されていますし、会議後に英語で質問をすれば、現地人もしっかり英語に切り替えて対応してくれるので、そこまで致命的なことにはならずに済みました。

私自身は妻が英語しかしゃべれないアメリカ人ということもあり、ある程度英会話に対する耐性がついていたことも幸いしたと思います。

ただ、日本からいらっしゃるクライアントの方々は、希望してフィリピンに来ていらっしゃったわけではない方も多く、「英語など学生以来だ」という方もいらっしゃいました。

そこをブリッジエンジニアとしてフォローするのが私の仕事ではあったのですが、やはりクライアントの方々も、現地人開発者とのちょっとしたやり取りなどを直接行いたい場面もある中で、出張でいらっしゃった際などには少し苦労されてしまっている印象を受けました。

翻訳者やブリッジエンジニアを雇っていたとしても、日本企業の方々がマネージャーとしてプロジェクトを進める以上、現地人開発者との間で、人と人との直接のコミュニケーションが必要な場面も出てきてしまいます。
私の場合はそこを積極的にやって下さるクライアント様ではあったのですが、その分、言葉の壁で苦戦してしまう場面もあったように見受けられました。

社会基盤の違い


オフショア開発拠点の上空写真

ここで言う社会基盤の違いとはどういう事かと言うと、日本人が当たり前と思っている社会基盤のことを話しても、発展途上国の現地人エンジニアには通じない場合があるということです。

たとえば、NFC関連のシステムを開発する際、そもそもの概念が現地人に伝わらないことがあります。

NFCと言えば、SuicaPASMOICOCAに代表されるような、カードやモバイル端末をかざすことによって近距離の通信を行えるような仕組みですが、そもそも発展途上国では鉄道がある地域がかなり限れています。
また、その鉄道も日本のように高度なシステムのもとに運用されているわけではありません。

さらに、コンビニの支払いなどでNFCを用いる仕組みはまだ普及しておらず、自動販売機を街中で見かけることもありません。
(自動販売機が路上にないのは、治安を考慮したセキュリティ上の理由です。)

そういった状況の中で、NFCに関するシステムの仕様を話し合う会議を設けても、そもそも前提となる「NFCとは何なのか。何に使われるものなのか。」を、現地人エンジニアたちに理解してもらう時点で大きな労力を要してしまいます。

日本ではシステムエンジニアと言うと文系出身者の方も多く見られますが、海外では基本的には、学校で情報系を専攻し、専門的なITの知識を学んできた人達がほとんどです。
ですから、ベースにあるプログラミングや、ソフトウェア開発の知識は日本と比べてもそこまで大きな差はないのではないかと感じています。

ただ、もし日本のインフラに関わるようなシステムの開発を海外に発注するのであれば、日本では当たり前と思われている社会の仕組みが、あちらでは認識されていない可能性があるということを意識しておく必要があります。

そこまで大きな認識の違いばかりではなくても、そういった前提部分の違いは、開発を進める上で随所に出てきます。

コミュニケーションを取りながら、しっかりと現地人エンジニアたちに仕様を理解してもらった上で開発を進めていくことが必要になってきます。


文化・考え方の違い


オフショア開発拠点の道路

上記でも、オフショア開発を進める上での問題点や課題についてお話ししてきましたが、私が最も大きな課題であると感じているのが、この「文化・考え方の違い」です。

具体的に言うと、フィリピンに限らず「何が何でも納期厳守」とか「死んでもクライアントのために働く」というような、日本特有の仕事に対する考え方は、海外にはありません。

良い悪いの前に、そもそも論として、「そういう概念がない」という印象です。

海外に旅行をされたことがある方は感じたかもしれませんが、コンビニやショッピングモールで買い物をする時一つとっても、店員さんとお客さんの関係に、日本ほどの上下関係はありません。

フィリピン人の店員さんなんかは、気さくに
「お、その洋服君に似合うんじゃない?」
とか、
「ビニール袋いる?」
ぐらいの感じで話しかけてきます。

私がアメリカに行った際は、ガムを噛みながら接客している店員さんもいましたね…

日本から海外に行ってこういう接客態度を見ると、やはり最初は
「なんだこの態度は!けしからん!」
というような感情が湧いてくると思います。

私も最初はそういう風に感じました。


ただ、そこに住んでいる人たちからすると、それが普通で、逆にそれ以外の環境を知らないのですよね。

海外に行った際は、
「そういうものなんだ」
と思って受け流すのが得策でしょう。


しかし、一緒にシステムを開発するとなると、そうはいきませんよね。

クライアントに対する報告の丁寧さとか、ソフトウェアの品質に対するこだわりとか、失敗をしてしまったときの再発防止策の徹底の大切さとか、、、、

日本で仕事をする上では、こういう部分は心を鬼にして徹底的にやらないと、クライアントからも、周囲からも認められない部分があるように思います。

私もフィリピンに行く前は日本企業でエンジニアをやっていましたから、そういった考え方が染みついていました。

「それが正しいのだ」と思って疑わずに業務に当たっていましたし、そういった態度を周囲に認めて頂いて、二階級特進などをさせて頂いたこともあります。

ですから、自分は日本のクライアントの方々の業務の進め方には、ある程度理解があったつもりです。


そして、クライアントの方々は、そういった考え方を現地人エンジニアにも浸透させようとするのですが、正直そういう根性論に近いことを現地の方々に言っても、頭の上にクエスチョンマークが浮かびます。

もちろん現地エンジニアの人達はみんな気さくな良い人達ですから、反論したり、嫌な顔をすることもなく、快く"Yes"と言ってくれます。

しかし、何だか根本的なところが伝わっていないような気がするのです。
(頭の上に"?"マークが見えるのです…)

そういった状況の中で、日本のお客様と現地人エンジニアの間でブリッジエンジニアとして業務に当たりながら、私なりに至った結論があります。


根本的なマインドセットは、変わらない


オフショア開発拠点の裏通り

正直、お客様は、伝統ある日本の大企業でしたので、日本流の業務の進め方の中で成果を出されてきた方々でした。

お見積りの時は、できるだけ安い値段で、お客様の事情を考慮した短納期で計画する。
そして納期が厳しければ、連続で徹夜をしてでもシステムを完成させる。

そういった、少し根性論にも近いマインドを、「素晴らしい」ととらえる風習が、日本のビジネス全体には、少なからずあるように思います。

私もそれを信じて日本で働いていました。


しかし、なぜ私がそう思うようになったのかと言えば、それは、私自身が日本の社会で働く中で、経験的に身に着けたからです。
仕事で少し手を抜いたときに先輩に怒られながら、効果的な改善策を打たなかった時に痛い目を見ながら、少しずつ、日本社会でやっていける術を学んでいった結果です。

ですからその考え方は、私が、経験の中で後天的に身に着けたものです。

学生の時は、別にそんなこと考えていませんでしたから。


「経験的に」身に着けたものということは、それは絶対的なものではありません。

違う経験をしている人は違う意見を持つでしょうし、そういった経験をしたことがない人には、そもそもそんな発想がないでしょう。



また日本は、国全体としてそういう考え方がスタンダードになっています。

ですから、たとえ厳しい環境が嫌になって転職したとしても、次に働く会社も似たような環境です。

その為、自分の考え方を矯正しながら、少しずつ社会に適応していくしかありません。



しかし、海外では、その発想は通じません。

たとえばフィリピンであれば、少し道を歩けば、音楽を聞きながらのんびりと物を売っている人もいますし、電気屋さんの店員は歌を歌ったり、同僚と楽しそうにずっとおしゃべりをしています。

日本のクライアントの下で、毎日残業をしながら厳しい環境に耐え続ける理由が、彼らにはないのです。

私も最初は、そういった部分を「けしからん!」と思う部分がなかったわけではないですが、ただ、これは説明することによって現地人の考え方を変えられる部分ではありません。

表面的に行動を変えてもらうことはできるかもしれませんが、根本的な業務に対する考え方を変えるのは不可能です。

また、そもそもこういったことは、どちらが「正しい」とか「間違っている」などと言う話ではないと思います。



もし日本に合わせて考え方を変えられる現地人エンジニアがいれば、その人はかなり物好きな人です。

なぜなら、少し外を見れば、もっと家族優先で、人間的に働ける環境があるからです。

さらに、海外では日本よりも転職に対するハードルが低いですから、リーダー級の開発メンバーであっても、環境が厳しければ簡単に退職をしてしまいます。

ですから、強制的に業務に対するマインドセットを変えようとしても、その人が退職する方が先になってしまうことがほとんどでしょう。

まとめ(オフショア開発では、日本人の方から歩み寄る)


オフショア開発拠点の市場

日本の業務では「絶対」という言葉を使うことが多いと思います。

納期は絶対に守る

とか

ミスは絶対許されない

とか



日本人からすると、納期を守るのなんかは当たり前のことですから、そうやって自分を律しながら業務に当たらないと、お客様からの信頼を失うことに繋がってしまいます。

ただ、海外の人達に対しても同じように、「絶対に」こうでなければいけない、という枠をあてはめてしまうと、オフショア開発では業務がうまく回らないと思います。

日本人からすると、自分たちがずっと「絶対」だと思っていた部分に関して妥協をするのは、かなりハードルが高いことだと思います。


もちろん、バグを出しまくっていては業務になりませんから、最低限の業務は的確にこなしてもらわなければ困るのですが、あまりにも完璧を追い求める姿勢は海外の方から見るとあまり美しくは映らないようなので、少し抑えながらやった方が良いのではないかと感じています。

一時的に無理やり完璧な仕事をさせることができたとしても、どこかの時点で、メンバーの大量離職などの形で、しっぺ返しを食らうことにもなりかねません。


こういったことは、オフショア開発だけにおける課題や問題点というよりは、日本人が海外の方と一緒に仕事をするときに、常に気を付けていた方が良いことかもしれませんね。

今後は、日本に働きに来る外国人労働者の数も増える見込みです。

ぜひ日本の価値観を一方的に押し付けるだけではなく、お互いに歩み寄りながら、スムーズに業務を進めていきたいものですね。

この記事が、皆様がオフショア開発の課題・問題点について考える上での参考になれば幸いです。
最後まで読んで下さり、ありがとうございました。