クックパッドの海外展開プロダクト開発ノウハウとは(前編)~検索結果に言語や宗教が影響する。Cookpad TechConf 2017

2017年1月23日

アプリケーションを海外で展開するには、アプリケーションの内容それぞれの現地の言葉に翻訳すればできる。そう思われがちです。しかし、実際には言語、宗教、地域ごとのライフスタイルなどの違いによって一筋縄ではいきません。

海外展開するプロダクトの開発にはどんな困難が降りかかるのか。1月21日に都内で行われたイベント「Cookpad TechConf 2017」から、クックパッドの海外事業部でプロダクトの開発を行う滝口健太郎氏のセッション「Go Global」の内容をまとめました。

Go Global

海外事業部でエンジニアをしている滝口と申します。

fig

いまは海外事業のヘッドクオーターがあるイギリスに住んでいて、今日はこのカンファレンスのために日本に来ました。

クックパッドはここ数年、海外事業に力を入れていて、いろんな言語、いろんな国に対応しています。

fig

さて、想像してみてください。中東は今、インターネットユーザー数が世界4位で、ユーザー数の伸びでは世界1位のマーケットです。そこで、もしあなたが中東でインターネットのサービスをリリースしようとしたら、なにをしたらいいでしょうか?

海外事業のチームに入る前の僕は、中東に入ったことがないしよく分らない。だけどエンジニア的には翻訳を追加したらうまくいくんじゃないの? と思っていました。

しかし実際にやってみるといろんなおどろきがあったので、それで今日の話は、海外向けのサービス開発について、いまやっている人や興味がある人に、僕が3年くらいやってきた経験を、プロダクト、開発、チームの3部構成で話そうと思います。

地域性を構成するのは風土、風俗、ライフスタイル

まずはプロダクトについて。

海外展開をするに当たって、サービスのローカライズとはなにか、実際になにをするのかを見ていきます。

例えば食品メーカーが海外に進出するときには、現地の人の生活習慣や味覚に合わせて商品をローカライズします。

メキシコでヒットした「マルちゃん」。現地の人はスープはそのあままスープとして飲むので、日本と同じ味付けだと塩分が濃いので塩分を抑えたり、ハバネロやレモンなどを好む傾向があるので、酸味や辛みを調整したりしています。

fig

このように、いかに現地の習慣や味覚にとけこめるかが海外展開での競争優位性を決めるひとつの重要な要素になっています。

マクドナルドだと、インドでは人口の34%がベジタリアンで、また宗教的な理由で豚肉と牛肉を食べないので、ベジタリアン向けのメニューや鶏肉を使ったメニューを多く取りそろえています。

このように現地の地域性の理解なしにサービスをローンチするのは難しいな、というのを感じてもらえたと思います。

ではどうやってその地域性を理解したらいいか。

地域性を構成する要素として、風土(Climate)、風俗(Folk culture)、ライフスタイル(Lifestyle)の3つがあって、下のレイヤが上のレイヤの土台になっています。

fig

気候や地形と言った風土は文化的な営みに影響を与えていて、文化的な営みはその上のライフスタイルに影響を与えています。

例えば、イギリスの食文化は気候的には野菜やフルーツの種類が少なくて、文化的には質素であるほどよいとされてきたので調理方法があまり発展しませんでした(新野注:一般にイギリス料理においしいものは少ないと言われている)。

ただ、ライフスタイルで言うといまとなっては世界各地の料理が町中で食べられるので、それほどイギリスの食事は悪くないんだよと。

地域ごとに違う「あたり前品質」と「魅力的品質」

地域性を理解できたら、次はサービスをどれくらいローカライズしたらいいか、ですが、これは地域やサービスの特性に寄るところが大きいです。

品質を表すのに「Kano model」(狩野モデル)というのがあって、そこでは「あたりまえ品質」と「魅力的品質」があって、あたりまえ品質は満たさないとユーザーの満足度が低くなるんですが、コストを掛けても一定値以上は変化しない。魅力的品質は低くてもユーザーの満足度は変わらないのですが、コストを掛けるほど満足度があがっていくというものです。

fig

なので、プロダクトを開発する上では、最小限のコストであたり前品質をみたし、なるべく多くのリソースを魅力的品質に割くようにする必要があります。

海外展開をするときに、なにが当たり前品質でなにが魅力的品質かは、その地域によって違ってきます。

例えばベトナムでは、カフェで無料Wi-Fiを提供することが当たり前となっているので、ユーザーはカフェにWi-Fiがあるものと期待してやってきます。これはベトナムではあたり前品質になっています。

イギリスでは、マグカップを注文したら6個中5個が壊れて届いたことがありました(会場笑)。

fig

日本ではこんなことは起こらなくて、全体にサービスの品質が高いことがあたり前だと思われています。

日本だとアプリの品質についても、クラッシュすると「ゴミアプリ、星ひとつ」みたいな評価になったりしますが、海外の人はそういうのに寛容だったりするので、海外ではエクストリームなバグを直すよりも、そのサービスを使いたいと思えるような魅力的な機能の開発に集中した方がいいと思います。

また、海外展開ではユーザーの幅が広いため、ユーザーとはこういう人であると定義することが難しくなります。

そこで属性よりもコンテキストでユーザーを理解することが大事で、なぜ料理をするのか、家族のためなのかパーティのためなのか、いつ料理をするのか、平日か休日か。どうやってレシピにたどりつくのか、材料名で検索するのか料理名で検索するのか、ほかの方法なのか。そういうコンテキストに沿ってユーザーを定義する必要があります。

fig

グローバライゼーションを構成する2つの要素

具体的な方向性が決まったら、次はプロダクトの開発です。

グローバライゼーションとはこの2つから成り立っています。

fig

Webサービスにおけるインターナショナライゼーションは、エンジニアリング的な変更なしに多様な地域にプロダクトを適用させるための仕組みや作業のことを指します。

ローカライゼーションは、インターナショナライズしたプロダクトに特定の言語や地域のための変更を加えることを指します。

例えば、「こんにちは」というテキストがあったとき、これをコードに埋め込まずにIDに置き換えることをインターナショナライゼーション。そのIDに対応してベトナム語を追加することがローカライゼーション。このプロセスをぐるぐる回していくことがブロー払いゼーションです。

もうひとつ重要なのがLocale(ロケール)。ロケールはISOで定義された言語コードと国コードからなっていて、ユーザーの環境を特定するのに使われます。

fig

ご存じの通り、言語と国は一致しません。英語だってアメリカ語、イギリス語、シンガポールでの英語などがありますし、スペイン語はアメリカ大陸で広く話されている一方で、スペイン国内ではスペイン語とカタルーニャ語が使われているみたいな感じで、言語と国との組み合わせで考える必要があります。

検索は言語や宗教の影響を受けやすい

海外展開では、3つ必要なものがあると考えています。

1つめは言語と宗教の影響を受けやすい検索 2つ目は翻訳 3つ目はそのほか全部です(会場笑い)

検索については、とにかく各言語への理解と地道な例外処理です。

例えば、いくつかの言語には単語に性別があります。

スペイン語だと、コーヒーは男性名詞、ビールは女性名詞です。そして修飾子は修飾される単語の性別に一致させるというルールがあるので修飾する単語によって語形が変化します。

fig

これに対応するため、検索するときには単語の末尾を削除してからマッチさせたりするのですが、例外的な変化をする単語もあるので、そういうのは例外として扱わなければなりません。

世の中にはアクセント記号というのがあります。アクセント記号は多くの国では読むときは意識されるのですが、書くときには面倒なので省略されることがけっこうあるので、検索するときはクエリのアクセント記号を削除してからマッチします。ただし、明示的にアクセント記号が付けられたときだけは厳格にマッチしたりします。

fig

ただこれにも例外があって、ベトナムでは「chay」はアクセント記号の種類によって意味が変わったりするので、これは厳格にマッチさせるというようなこともしています。

それからぱっと見は同じに見えるけれども内部コードが違う、というのもあって(会場ざわつく) どう見ても同じなんだけど出力すると違っていて、こういうのを正規化で頑張る、みたいなことをしたりします。

fig

合成語について。例えば英語の「green peas cream soup」(グリーンピースクリームスープ)は4単語がですが、それがハンガリー語になると1単語になります。

fig

このグリーンピースのクリームスープは一単語で、ニンニクのクリームスープも一単語、だけどブロッコリーのクリームスープになるとなぜか2単語になります(会場笑い)

fig

で、現地の人にどういうルールがあるの?って聞いたら、現地の人もよく分からないと言っていたので、よく分かりません。

で、そういう場合に単語の前方一致だけで検索すると、クリームスープと検索したときにブロッコリーのクリープスープは結果に出るけれど、グリーンピースのクリームスープとニンニクのクリームスープは出ないみたいになるので、そういう言語に対しては部分一致を入れたりしています。

検索結果は言語だけでなく地域も考慮する

スペイン語はスペインだけでなくアルンゼンチンでも使われていますが、スペインとは文化や手に入る食材が違うので、アルゼンチンの人にとってスペインのレシピが上位に表示されるというのはうれしくありません。

なので、検索結果はリージョン(地域)を考慮して順番を変える必要があります。

宗教を考慮する必要もあります。イスラム教の国で豚肉を使ったレシピが表示されたらとんでもないことになるので、イスラム教圏ではそのようなレシピは排除しているのですが、インドネシアではイスラム教徒だけでなくキリスト教徒もちょっといるので、インドネシアで明示的に豚という言葉を入れて検索されたときだけは、豚肉を使ったレシピも表示しています。

≫後編に続きます。後編では、なぜ開発の段階から翻訳を意識するのか、そして複数のタイムゾーンにまたがる開発チームのマネジメントなどについて。

Cookpad TechConf 2017

あわせて読みたい

プログラミング言語 開発ツール システム開発




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本