こんにちは、イチです。
下記のポストを読んで下さい。
この話、結構「知りたい」という方がいるので、あまりお役立ち度は高くないと思いますが(笑)、この記事で語らせていただきます。
オフショア開発の経緯
僕が2020年まで、12年間勤めていた前職の東京の制作会社の社長は、とにかく「今できないものでも、仕事としてやればできる!」の信条のもと、社内で対応不可能な案件をバンバン取ってきちゃうちょっと困った人でした。
社内にデザイナーしかいないのにシステム開発案件を取ってきちゃったり、動画制作案件を取ってきちゃったり。
これだけ聞くとメチャクチャなトンデモ社長なわけですが、ところがどっこいですよ。
この社長は、社内の誰も作れないと見ると最悪、自分自身でその場で勉強して、納期までに自分で作っちゃうのです。
そんな有言実行な人でもあった。だからみんな付いていったんですよね。
人間の基本スペックが優秀。多分あれは「天才」の部類だと思う。
僕がそんな社長のもとで奮闘していた頃の話。
突然の無茶振り
「天才」の社長が、例によって無茶振りをしてきました。今回の無茶振りは「スマホアプリを作れ」というもの。うちは制作会社であって開発会社ではない。
いやいやいや。誰も作ったこと無いっすよ!!
社内のメンバーみんなで総ツッコミ。
一千万程度入るから、それでもやれと。で、そのアプリの要件を聞いたところ、相当レベルの高いことを要求されている。
PWAと呼ばれる、WEBサイトを内蔵ブラウザで表示させるWEBビューアプリなら以前簡単なものを作ったことがあったが、今回の案件はアプリ専用言語で開発する「ネイティブアプリ」というものだ。
僕は例によってディレクションを命じられてるので、今回はさすがに内製では無理だ、外注をさせてくれと言いました。
「いいけど、じゃあ、オフショア開発やってみて」
僕と同い年の社長はあっけらかんとこう言い放ちました。
※オフショア開発とは
システム開発などの業務を海外企業、または海外の現地法人などに委託すること。
社長は高学歴で英語もある程度できたが、僕は凡人だし英語などからきし。
鬼か!
暗中模索
鬼社長(いつかシメると決意)に「オフショア開発」を命じられた僕は、そんなツテもないしノウハウもないので、まずは「それがこの案件に対して妥当なのか」というところから調査しました。
いろんなエンジニアに聞いたり、ネットで調査した結果、オフショア開発をすると、当時の為替では確かに開発費を10分の1に抑えることができました。
(今は円安なので多分3分の1くらいか、それ以上に上がっちゃってるかと思います)
単純に言うと、30万の案件が3万でできてしまうのです。この開発フローとノウハウを確立しちゃえばめっちゃおいしいから、これは開拓する価値がある!と僕も判断しました。
ただ、アメリカ(ドル)やヨーロッパ(ユーロ)はかえって高くなるので、中東や東南アジアでやる必要があります。
そして、英語でググりまくりリサーチを重ね、全世界(通貨はドル)で使えるクラウドソーシング「Odesk」(現在のUpwork)を探し当てました。
Upwork
https://www.upwork.com/
僕のオフショア開発の戦場です。
言語の壁
さて、Upworkを見つけ、法人でユーザー登録を済ませた僕ですが、ここで次なる試練が訪れます。
「え、英語ができねえ」
これは致命的です 笑
プロフィールやユーザー登録はなんとかなっても、「依頼文」はそうはいきません。
そもそも英語ができないのにオフショア開発しようっていうのが今考えると頭がおかしいんですが、当時の僕はバリバリのベンチャー脳でアグレッシブでしたので、「為せば成る!!」という鉄砲玉思考で突っ込みました。
で、どうしたかというと、Google翻訳です。今ならAIがありますが、当時は当然そんな便利なものはない。
この話、英語ができる人からみると「なにやってんだこいつ」って感じで超笑えると思います。
Google翻訳、いくら精度が高くなってきていたとはいえ、日本語を普通に書いたのではほぼ意味が通じません。
特に複雑に文節がつながっていたり、接続詞などがあると途端に意味が通じなくなる。たいてい「主語」が狂います。
日本語って普通に書くと、前後の文脈から主語を省略しがちなんですよね。
翻訳すると、IとかWeを使わなくちゃなのに勝手にyouになる。
Google翻訳の限界
さて、普通に日本語を書いたものを英語にしたのでは、全く意味が通らない。そして「アプリの要件定義」で誤解が生じたら完全に死亡フラグです。
主語が省略された日本語をGoogle翻訳にかけ、WeがYouになってることに気づかなかった場合、次のようになります。
「これはとても難しく、あなたにはこれを作ることができません」
ただの誹謗中傷か!何しに来たんだよお前!と言われて終了でしょう。
「プリーズ」
「プリーズじゃねえよ!!」
って感じです。こちらとしては丁寧に依頼してるつもりが、先方から見るとただの侮辱ですよね。
で、僕はこれを「逆翻訳」というテクニックを使い、巧妙に切り抜けました。
僕が自分で考えて編み出したので一般的なのかは知りませんが、この逆翻訳は次のようなものです。
1.日本語を1主語1述語にして、ワンテーマで必ず句点で区切る。
2.グーグル翻訳にかけ、そのかけた英語を再度日本語翻訳にする。
3.意味が変わってしまったら、表現を変える。
4.2度3度逆翻訳かけても意味が変わらなければ合格。
苦し紛れの逆翻訳でいざ依頼
英語ができない僕がアプリのオフショア開発をするため、Google逆翻訳のテクニックを使って、「多少文法的におかしくても、とりあえず意味は通る英文」は作ることはできました。
おそらくあちらさんから見ると「ワタシ、ニホンジン、英語ヘタ。アナタニ、アプリツクテホシイ」程度には通じることでしょう。
英語ができる方に見せたらあちこちおかしいでしょうし、かなり恥ずかしいんですけど、いいのです、要は通じれば。
日本人は文法や発音を間違えることを恥ずかしがって、英語を話したがりません。だからいつまでも英語を話せないんです。
その後に入った中国人スタッフに聞いたのですが、中国人は全然日本語話せないのに、「フジヤマ、ゲイシャ、スシ、コンニチハ」と言えるだけで「日本語できます!」と超自信満々に言います。
そして身振り手振りでとにかく意思を伝えようとする。それでいいんですよ。「バカにされる」「恥ずかしい」とか思っていては外国人とコミュニケーションなど取れません。
次は要件定義書とアプリのモックアップを作っていきます。
要件定義書
とりあえず意味が通じる英語を作る手段ができたので、次はアプリの要件定義を行わなければなりません。
とにかくこのアプリが「何を目的にしていて」「誰に向けた」「どんなアプリなのか」を伝えなければ、制作の外注などできないのです。そのための「要件定義」です。
要件定義っていうのは開発の現場では非常によく使われるというか、なくてはならないプロセスなのですが、WEBデザイン界隈においては聞き慣れない言葉かもしれませんのでちょっと解説します。
言葉は難しいですが、分解して考えると「要件」を「定義」する。
つまり「どんな内容なのかをはっきりと書面で書き起こし、制作に関わる全ての人間の間で認識を共有する」っていうことです。
これ、実はWEBサイト制作でも行っているんです。要件定義書って名前じゃなくて、見積書だったり発注書だったり、デザインカンプだったりするでしょうけどね。
要件は、とにかく誤解のないように、曖昧な部分を一切排除して、誰がみても明らかにすること=定義することが極めて重要です。
で、これを英語でやる。
プログラムや専門用語は万国共通
初めてのアプリのオフショア開発をやることになった僕は、要件定義書やアプリのモックアップを英語で作り始めました。
一旦日本語で全部作り、それを全部英語に起こしていく。Google逆翻訳を使って。
これは意外だったのですが、要件定義やモックアップは、思ったほど苦労しませんでした。なぜかというと、プログラム言語や専門用語、そしてデザインは「万国共通」だからです。
もともと英語がベースですから、プログラムであれば外国人とコミュニケーショを取るのは比較的ラクなことに気づいたのです!
これ…いけるかもしれない…!
今まであまりにすべてが未知過ぎてゲロが出そうだったのですが、なんとかなりそうな光明が見えてきました。
資料を完成させて、部下(25歳コミュ障女性)にもチェックしてもらい、いざUpworkに依頼。
まずは一部工程を350ドルで出しました。アプリ開発要件としては激安です
10分もせず、ピロンピロンと入ってくる提案
インド、カナダ、パキスタン、マケドニア、ブラジル・・・
僕の英語が通じている…!
次々と来る提案
僕の未知なる戦場、世界的クラウドソーシングのUpworkに、あちらのジュニアスクール生でも読める簡単英語で攻め込んだ僕は、ついに諸外国の優秀なエンジニアからの提案をもらうことができました。
集まった提案は全部で16件。それぞれの人とメッセージでやり取りをします。
すでに要件はしっかりと資料にまとめてあるので、届く質問も具体的。いいぞいいぞ。
ただ、メッセージがチャットみたいになるわけですが、それがもうめちゃくちゃ大変 笑
Google翻訳を別窓に常に開き、分かりやすい完結な日本語を作ってから逆翻訳をして、意味が通る状態にして相手に投げる。この繰り返しで会話します。
とにかく間違ってはいけないのは「主語」。これだけは最後英語になっても再度確認。
1000ドルじゃないとやれない、とか、100ドルで提案してきたけど話をしているとどんどん価格を釣り上げるカナダ人とかとやり取りしながら、世界の荒波に揉まれました。
でも、意外にいけるのです。
英語のできない僕みたいな平凡な日本人でも、為せば成るのです!
日本のアニメはやはり強かった
16名の提案者とやり取りする中で、目を引く人が出てきました。
返信も早いし、提案も具体的。会話をしていたら「日本のアニメを良くみている」と。
何をみてたのか忘れちゃいましたが、僕も知ってるアニメでした。まどマギだったっけなあ。結構マニアックだったと思います。
その名はムハマンド。髭面のパキスタン人です。28歳くらい。
ヒゲモジャなので48歳くらいに見えます。でも若かった。
ムハマンドは当然日本語は話せないんですが、英語は流暢です。
僕の拙い英語もちゃんと理解してくれてるようだし、作れるか?と聞いたら任せてほしい、と。
「よーし、キミに決めた!」僕のポケモンに決定です。髭面のポケモン。ヒゲモジャ。
で、ムハマンドと開発を始めて、最初のうちは結構順調でした。ガントチャート作って、確かあの時はマイルストーンごとに報酬を支払う形にしたと思う。
きさくだし優しいし、とてもいい人なんですが、ただ、ごくたまに打ち合わせの途中で突然いなくなるんですよね。
しばらくしたら戻ってくるんですが、それがすごい不思議で。
文化のギャップ
開発のやり取りの中で突然いなくなるムハマンド。
「よく突然返信がなくなっちゃうけど、大丈夫? どこか調子が悪いんですか?」と聞いてみました。
さすがに会話中に突然返信が途切れるのは色々こちらも不都合があるのと、単純に「倒れたんじゃないか」とか健康的な心配も考えられたので。そのくらい会話をぶった切っていなくなるんですよ。
すると、悪びれる様子もなく「ああ、お祈りの時間なんだ」とのこと。
…なんて? おいのり?
ああ、「お祈り」か!!!
ビジネスの現場に似つかわしくないパワーワードだったので一瞬脳が処理できませんでしたが、そうか、アッラーの神か!
ムスリムは、毎日定時になると、その時の仕事をほっぽらかしてもお祈りに行くんです。
いや、イスラム全体ではなく、このムハマンド氏固有の性質なのかもしれませんが、とにかくムハマンドにとってそのお祈りは「絶対に譲れない大切なもの」でした。
いやー奥が深い。オフショア開発。
僕はとりあえず、早くこのプロジェクト終わんねえかなと、八百万の神に祈ったのでした。