クックパッドの海外展開プロダクト開発ノウハウとは(前編)~検索結果に言語や宗教が影響する。プログラミングクックパッドの海外展開プロダクト開発ノウハウとは(前編)~検索結果に言語や宗教が影響する。20172017年1月23日アプリケーションを海外で展開するには、アプリケーションの内容それぞれの現地の言葉に翻訳すればできる。実際には言語、宗教、地域ごとのライフスタイルなどの違いによって一筋縄ではいきません。海外展開するプロダクトの開発にはどんな困難が降りかかるのか。Global」の内容をまとめました。Global海外事業部でエンジニアをしている滝口と申します。いまは海外事業のヘッドクオーターがあるイギリスに住んでいて、今日はこのカンファレンスのために日本に来ました。クックパッドはここ数年、海外事業に力を入れていて、いろんな言語、いろんな国に対応しています。想像してみてください。中東は今、インターネットユーザー数が世界4位で、ユーザー数の伸びでは世界1位のマーケットです。そこで、もしあなたが中東でインターネットのサービスをリリースしようとしたら、なにをしたらいいでしょうか?海外事業のチームに入る前の僕は、中東に入ったことがないしよく分らない。実際にやってみるといろんなおどろきがあったので、それで今日の話は、海外向けのサービス開発について、いまやっている人や興味がある人に、僕が3年くらいやってきた経験を、プロダクト、開発、チームの3部構成で話そうと思います。地域性を構成するのは風土、風俗、ライフスタイルまずはプロダクトについて。海外展開をするに当たって、サービスのローカライズとはなにか、実際になにをするのかを見ていきます。食品メーカーが海外に進出するときには、現地の人の生活習慣や味覚に合わせて商品をローカライズします。メキシコでヒットした「マルちゃん」。現地の人はスープはそのあままスープとして飲むので、日本と同じ味付けだと塩分が濃いので塩分を抑えたり、ハバネロやレモンなどを好む傾向があるので、酸味や辛みを調整したりしています。このように、いかに現地の習慣や味覚にとけこめるかが海外展開での競争優位性を決めるひとつの重要な要素になっています。マクドナルドだと、インドでは人口の34%がベジタリアンで、また宗教的な理由で豚肉と牛肉を食べないので、ベジタリアン向けのメニューや鶏肉を使ったメニューを多く取りそろえています。このように現地の地域性の理解なしにサービスをローンチするのは難しいな、というのを感じてもらえたと思います。やってその地域性を理解したらいいか。culture)、ライフスタイル(Lifestyle)の3つがあって、下のレイヤが上のレイヤの土台になっています。気候や地形と言った風土は文化的な営みに影響を与えていて、文化的な営みはその上のライフスタイルに影響を与えています。イギリスの食文化は気候的には野菜やフルーツの種類が少なくて、文化的には質素であるほどよいとされてきたので調理方法があまり発展しませんでした(新野注:一般にイギリス料理においしいものは少ないと言われている)。ライフスタイルで言うといまとなっては世界各地の料理が町中で食べられるので、それほどイギリスの食事は悪くないんだよと。理解できたら、次はサービスをどれくらいローカライズしたらいいか、ですが、これは地域やサービスの特性に寄るところが大きいです。model」(狩野モデル)というのがあって、そこでは「あたりまえ品質」と「魅力的品質」があって、あたりまえ品質は満たさないとユーザーの満足度が低くなるんですが、コストを掛けても一定値以上は変化しない。魅力的品質は低くてもユーザーの満足度は変わらないのですが、コストを掛けるほど満足度があがっていくというものです。プロダクトを開発する上では、最小限のコストであたり前品質をみたし、なるべく多くのリソースを魅力的品質に割くようにする必要があります。海外展開をするときに、なにが当たり前品質でなにが魅力的品質かは、その地域によって違ってきます。ベトナムでは、カフェで無料Wi-Fiを提供することが当たり前となっているので、ユーザーはカフェにWi-Fiがあるものと期待してやってきます。これはベトナムではあたり前品質になっています。イギリスでは、マグカップを注文したら6個中5個が壊れて届いたことがありました(会場笑)。日本ではこんなことは起こらなくて、全体にサービスの品質が高いことがあたり前だと思われています。日本だとアプリの品質についても、クラッシュすると「ゴミアプリ、星ひとつ」みたいな評価になったりしますが、海外の人はそういうのに寛容だったりするので、海外ではエクストリームなバグを直すよりも、そのサービスを使いたいと思えるような魅力的な機能の開発に集中した方がいいと思います。海外展開ではユーザーの幅が広いため、ユーザーとはこういう人であると定義することが難しくなります。そこで属性よりもコンテキストでユーザーを理解することが大事で、なぜ料理をするのか、家族のためなのかパーティのためなのか、いつ料理をするのか、平日か休日か。やってレシピにたどりつくのか、材料名で検索するのか料理名で検索するのか、ほかの方法なのか。いうコンテキストに沿ってユーザーを定義する必要があります。具体的な方向性が決まったら、次はプロダクトの開発です。グローバライゼーションとはこの2つから成り立っています。Webサービスにおけるインターナショナライゼーションは、エンジニアリング的な変更なしに多様な地域にプロダクトを適用させるための仕組みや作業のことを指します。ローカライゼーションは、インターナショナライズしたプロダクトに特定の言語や地域のための変更を加えることを指します。「こんにちは」というテキストがあったとき、これをコードに埋め込まずにIDに置き換えることをインターナショナライゼーション。そのIDに対応してベトナム語を追加することがローカライゼーション。このプロセスをぐるぐる回していくことがブロー払いゼーションです。ひとつ重要なのがLocale(ロケール)。ロケールはISOで定義された言語コードと国コードからなっていて、ユーザーの環境を特定するのに使われます。ご存じの通り、言語と国は一致しません。英語だってアメリカ語、イギリス語、シンガポールでの英語などがありますし、スペイン語はアメリカ大陸で広く話されている一方で、スペイン国内ではスペイン語とカタルーニャ語が使われているみたいな感じで、言語と国との組み合わせで考える必要があります。検索は言語や宗教の影響を受けやすい海外展開では、3つ必要なものがあると考えています。3つ目はそのほか全部です(会場笑い)検索については、とにかく各言語への理解と地道な例外処理です。いくつかの言語には単語に性別があります。スペイン語だと、コーヒーは男性名詞、ビールは女性名詞です。修飾子は修飾される単語の性別に一致させるというルールがあるので修飾する単語によって語形が変化します。これに対応するため、検索するときには単語の末尾を削除してからマッチさせたりするのですが、例外的な変化をする単語もあるので、そういうのは例外として扱わなければなりません。世の中にはアクセント記号というのがあります。アクセント記号は多くの国では読むときは意識されるのですが、書くときには面倒なので省略されることがけっこうあるので、検索するときはクエリのアクセント記号を削除してからマッチします。明示的にアクセント記号が付けられたときだけは厳格にマッチしたりします。これにも例外があって、ベトナムでは「chay」はアクセント記号の種類によって意味が変わったりするので、これは厳格にマッチさせるというようなこともしています。見ても同じなんだけど出力すると違っていて、こういうのを正規化で頑張る、みたいなことをしたりします。soup」(グリーンピースクリームスープ)は4単語がですが、それがハンガリー語になると1単語になります。このグリーンピースのクリームスープは一単語で、ニンニクのクリームスープも一単語、だけどブロッコリーのクリームスープになるとなぜか2単語になります(会場笑い)で、現地の人にどういうルールがあるの?って聞いたら、現地の人もよく分からないと言っていたので、よく分かりません。いう場合に単語の前方一致だけで検索すると、クリームスープと検索したときにブロッコリーのクリープスープは結果に出るけれど、グリーンピースのクリームスープとニンニクのクリームスープは出ないみたいになるので、そういう言語に対しては部分一致を入れたりしています。検索結果は言語だけでなく地域も考慮するスペイン語はスペインだけでなくアルンゼンチンでも使われていますが、スペインとは文化や手に入る食材が違うので、アルゼンチンの人にとってスペインのレシピが上位に表示されるというのはうれしくありません。検索結果はリージョン(地域)を考慮して順番を変える必要があります。宗教を考慮する必要もあります。イスラム教の国で豚肉を使ったレシピが表示されたらとんでもないことになるので、イスラム教圏ではそのようなレシピは排除しているのですが、インドネシアではイスラム教徒だけでなくキリスト教徒もちょっといるので、インドネシアで明示的に豚という言葉を入れて検索されたときだけは、豚肉を使ったレシピも表示しています。後編では、なぜ開発の段階から翻訳を意識するのか、そして複数のタイムゾーンにまたがる開発チームのマネジメントなどについて。2017[速報]Rubyのコアコミッター笹田耕一氏、クックパッドへクックパッドの海外展開プロダクト開発ノウハウとは(前編)~検索結果に言語や宗教が影響する。Niino(jniino)IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。Feed最新記事10本ITエンジニアが投票した「ITエンジニア本大賞2020」ベスト10発表。Kubernetes」が正式版に。ElasticsearchやKibanaなどをKubernetes環境にデプロイ、Operatorにより運用も容易にKubernetesとコンテナの実行に最適化された統合システム「Diamanti」のアーキテクチャはどうなっているか[PR][速報]AWS、2021年初頭に大阪リージョンを開設すると発表。10へログイン可能に。10へ拡大Google、コーディング不要でアプリケーション開発ができる「AppSheet」買収。WebAssembly」正式版を5月にリリース。usPublickeyについて/運営者についてお問い合わせ広告についてプライバシーポリシ。