読者です 読者をやめる 読者になる 読者になる

海外のユーザーを向いたプロダクト開発の工夫

こんにちは、検索事業部の岡根谷です。クックパッドは日本だけでなく海外でもレシピサービスを展開しています。今回は自分がプロダクトオーナーとして行った「関連レシピ」の複数言語同時リリースの話をしたいと思います。

関連レシピとは?

レシピページの下にあり、ユーザーの行動から関心を汲んで自分にぴったりなレシピを見つけるのを助ける機能です。 「パスタ」で検索してジェノベーゼパスタに興味を持ってレシピを開いた人が、より自分にあったジェノベーゼパスタを見つけることができる、というようなシナリオを想定しており、たくさんのレシピを闇雲に探索するのではなく絞り込む方向に導くことで「作る」という行動に繋げたいという思いがあります。

チームメンバーは世界中に散らばっており、各国のエンジニアやコミュニティマネージャーと連携して、スペイン語、アラビア語、インドネシア語、英語、ベトナム語など複数の言語のAndroidアプリで同時リリースを目指しました。

f:id:m_okaneya:20160811074222p:plain

アラビア語版関連レシピ

言葉がわからない国のプロダクト開発をどう進めるのか

プロダクトオーナーとして自分が重要な判断を行えるためには、誰よりも詳しく正しく、そこに暮らすユーザーの困っていることとプロダクトの提供価値を語れる必要があります。

会ったこともない国のユーザーのことを現地の人以上に正しく理解できるのかと怯みますが、その自信が持てないと、現地メンバーの一つ一つの意見に左右されてプロダクトの方向性を見失ってしまいます。 現地感覚を持つメンバーの意見は大事ですが、それを鵜呑みにするのではなく最終的な決定は自分が自信と責任を持って行えるために、様々な方法を試みました。

1. わからなくてもとにかく自分自身が徹底的に使う

地味ですが、とにかく徹底的に使って自分自身が一番うるさいユーザーになる努力は絶対に必要だったと感じています。開発中のアプリを自分のスマホに入れて、仕事中にかぎらず通勤中の電車でも布団の中でもとにかく毎日徹底的に使い続けるうちに、ユーザーが一体どういう場面でこの機能に出会うとうれしいのかという大きなストーリーとともに、アラビア語であってもよいケースそうでないケースの感覚が持てるようになりました。

とはいえ文字情報の理解はさすがにきびしかったので、スマホではテキスト選択して自動翻訳できる Google Translateを、PCのChromeのブラウザでは語意までわかる Google Dictionaryの力を借りました。細かいことですが、ページ全体を翻訳するのではなくわからない部分だけを選択してツールで訳すことで、なるべくユーザーに近い画面を見ることを心がけました。

誰よりもプロダクトに詳しくなるために、自分にできる方法でとにかくプロダクトと親密になることが重要だと実感しました。

f:id:m_okaneya:20160812083505p:plain

2. プロダクトの提供価値を一枚の絵で示し、みんなの共通理解にする

距離的に離れたグローバルの開発では、そもそもこのプロダクトは何を目指すものなのなんだっけということすら目線がずれてしまいがちです。「関連レシピは、言葉に現れないユーザーの関心を汲んでぴったりなレシピを提案する絞り込みの機能である」という定義が全メンバーの共通の理解になるよう、ユーザーストーリーを一枚の図に表現して、hangoutを通じて各国のコミュニティマネージャーにプレゼンをしたり、各国の開発者が見る社内ブログにのせたりして、浸透に努めました。

プロダクトの提供価値がいつでも誰でも参照できる伝わりやすい形になっていることで、それに基づいた公正な判断ができるようになります。この画が示せるようになったことで、ユーザーに興味を持ってもらえるよう広く多様なレシピを出したい、いう中東地域からの提案があったときも、検索を広げる方向はこの機能の役割とずれるから別の方法で実現しようと一緒に納得して決めることができました。

f:id:m_okaneya:20160810210742p:plain

3. 現地のコミュニティマネージャーにチェックしてもらって判断する

自分自身で使い込むことも大事ですが、ネイティブの目で見てより高い品質を確保するために、リリース判断には各国のコミュニティマネージャーからフィードバックを得て判断する、という方法を取りました。 自由回答にならないよう、実際のユーザーに近い状況でのフィードバックが得られるように対象レシピと観点を細かに指定し、スプレッドシートで作業シートの形式にして依頼しました。

f:id:m_okaneya:20160810185311p:plain

この方法のよかったところは、作業シートの形式にすることで主観的なフィードバックが定量化できるようになり、「何割以上◎だったらリリースする」という統一の基準を設けてすべての言語のリリース判断や比較が行えたことです。一方で限界は、プロダクトの目的を丁寧に繰り返し伝えてやってほしいことを相当に細かく説明しないと、実際に使うユーザーに近い正直な感想は得られないということです。関連レシピという名前が先行して「自分が作りたいレシピが見つかるか」ではなく「似ているかどうか」に終始したフィードバックが多くなってしまったのは反省点です。 考えてみれば、日本の開発をしていても、正直なユーザーの視点を持つのは非常に難しいことです。なので、国を超えて他人にそれをやってもらうことの難しさは一際です。

質問の仕方は工夫の余地があると思いますが、作業を明確にすることで定性的な感覚を定量化する、というのはよかったです。

4. ヘビーユーザーの行動を追跡する

プロダクトリリース後は、この機能が一体どのような場面で頼られて使われているのかを理解するために、それを最もヘビーに使ってくれているユーザーの行動を追跡するということをやりました。この方法のよいところは、実際のユーザーの行動という絶対的な証拠に基づいて、各国のメンバーと話ができることです。「ユーザーはきっとこう振る舞う」「これはユーザーにとってこうにちがいない」という主観を排して客観的な理解が持てるので、同じ土台の上に立ってみんなでプロダクトをよりよくしていくための議論ができます。

f:id:m_okaneya:20160810210656p:plain

実際のユーザーの中でも特に高頻度に使ってくれている人たちの行動は、一人のスタッフの意見よりもCTR等の数字より何百倍も説得力があります。チーム全員の目線が揃うと同時に、自分自身のユーザー理解が進むという意味でも非常によかったです。分析する中で、通常の検索の場面だけでなく、自分が気に入って保存したレシピから似たような見た目や盛り付けのレシピを見つける時に便利に使われていることがわかりました。

このことから、「言葉にしにくい希望を汲んで」という仮説とプロダクトの実態は一致しているけれど、当初想定した今日の食事決めの場面よりも、お菓子作りやパーティーのような計画を必要とする場面でより便利に使われているという事実がわかりました。

5. 日本語でやってみる

自分の言語だったら実感が持てるのではないか...と考え、日本のクックパッドのデータで関連レシピを再現してみるというのもやってみました。自分の言葉で普段食べるもので確かめることで、自分自身の実感は深まりました。しかし、これは結局自分の言葉か相手の言葉かという立場を逆転させただけなので、各国のメンバーと共有することはできません。国を超えた開発をするには、いつまでも自分の土俵に引きこもうとするのではなく、どんな土俵であってもみんなが対等に力を発揮できるような土台工事をできるようになるのが重要だと学びました。

f:id:m_okaneya:20160810211732p:plain

※未公開のテストプロダクトです

まとめ

振り返ってみると、結局大事なことや苦労したことは日本のプロダクト開発と共通だということに気づきます。

ちがう言葉だからわからないということはなく、自分自身が徹底的に使い込み、チームメンバー全員でプロダクトの目的を共有し、そして一人ひとりのユーザーの行動に向き合うことで、プロダクトオーナーとして責任を持って判断ができるようになります。

そしてその中で気がついたのは、日々料理をする人が困ることやうれしいと思うことは、言葉や文化が違っても本質的には同じであるということです。言葉や文化の振れ幅を排除して普遍的なものに目を向けることで、日本のユーザーにも世界中のユーザーにも頼られる、毎日の料理を楽しくするサービスになれるのではないかと信じています。

最後に

世界にサービスを展開を進めているクックパッドでは、世界中の毎日の料理を楽しみにすることを目指して一緒に働く仲間を募集しています。興味を持った方は こちらへ!

/* */ @import "/css/theme/report/report.css"; /* */ /* */ body{ background-image: url('http://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527163350.png'); background-repeat: repeat-x; background-color:transparent; background-attachment: scroll; background-position: left top;} /* */ body{ border-top: 3px solid orange; color: #3c3c3c; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; line-height: 1.8; font-size: 16px; } a { text-decoration: underline; color: #693e1c; } a:hover { color: #80400e; text-decoration: underline; } .entry-title a{ color: rgb(176, 108, 28); cursor: auto; display: inline; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; font-size: 30px; font-weight: bold; height: auto; line-height: 40.5px; text-decoration: underline solid rgb(176, 108, 28); width: auto; line-height: 1.35; } .date a { color: #9b8b6c; font-size: 14px; text-decoration: none; font-weight: normal; } .urllist-title-link { font-size: 14px; } /* Recent Entries */ .recent-entries a{ color: #693e1c; } .recent-entries a:visited { color: #4d2200; text-decoration: none; } .hatena-module-recent-entries li { padding-bottom: 8px; border-bottom-width: 0px; } /*Widget*/ .hatena-module-body li { list-style-type: circle; } .hatena-module-body a{ text-decoration: none; } .hatena-module-body a:hover{ text-decoration: underline; } /* Widget name */ .hatena-module-title, .hatena-module-title a{ color: #b06c1c; margin-top: 20px; margin-bottom: 7px; } /* work frame*/ #container { width: 970px; text-align: center; margin: 0 auto; background: transparent; padding: 0 30px; } #wrapper { float: left; overflow: hidden; width: 660px; } #box2 { width: 240px; float: right; font-size: 14px; word-wrap: break-word; } /*#blog-title-inner{*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-position: left 0px;*/ /*}*/ /*.header-image-only #blog-title-inner {*/ /*background-repeat: no-repeat;*/ /*position: relative;*/ /*height: 200px;*/ /*display: none;*/ /*}*/ /*#blog-title {*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-image: url('http://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527172848.png');*/ /*background-repeat: no-repeat;*/ /*background-position: left 0px;*/ /*}*/