見出し画像

「Yahoo!オークション」の独自技術と最新のモダン技術で進化する「Yahoo!フリマ」の開発風土とは

個人間で商品の売買ができるフリマアプリ「Yahoo!フリマ」。 そのサービス開発でリーダーシップを発揮するエンジニアに、最新のモダン技術を採用する開発の舞台裏やエンジニア視線から見たYahoo!フリマ事業のおもしろさについて語ってもらいました。

※本記事は2022年に取材されたものを再編集しています。内容は旧ヤフー株式会社時代の情報を含みます。

プロフィール

澤田 正稔(さわだ まさとし)
2004年に旧ヤフーに中途入社。エンジニアとして「Yahoo!ショッピング」、「Yahoo!オークション」などを担当し、2018年より現職。

林 祐大(はやし ゆうた)
2016年新卒入社。営業、マーケティング、プロダクト企画を経て、2022年よりエンジニア主務。現在は、開発や設計を担当。


手軽で使いやすいフリマサービス「Yahoo!フリマ」誕生の舞台裏

─ まずは、「Yahoo!フリマ」についてお聞かせください。

澤田 「Yahoo!オークション」のサービス開始は1999年。20年以上にわたるインターネットオークションサービスの草分けである「Yahoo!オークション」の資産を引き継ぎながら、2019年「Yahoo!フリマ」が誕生しました。(サービスローンチ当時の名称の名称はPayPayフリマ)私は「Yahoo!オークション」と「Yahoo!フリマ」両方のサービスのエンジニアリング領域の統括をしています。

「Yahoo!フリマ」は、「Yahoo!オークション」からフリマ向けのサービスを切りだすことに特化した事業です。たとえば、「Yahoo!オークション」には「競り」と「即決」の機能がありますが、「Yahoo!フリマ」は個人間取引にフォーカスし簡単に取引ができるサービスとなっています。

「Yahoo!オークション」の多岐にわたる機能をシンプルにし、垣根を低くすることで、これまでオークションサービスを使ったことがないユーザーにも、気軽に使ってもらえるように始めたのが「Yahoo!フリマ」です。

幸いにも、「Yahoo!フリマ」はこの数年で急成長しており、アプリダウンロード数もローンチ1カ月で100万を達成し、現在は累計で1000万ダウンロードを越えています。

澤田 正稔

─ 林さんは2016年入社後、最初は「Yahoo!オークション」のサービスに関わっていたそうですね。

私は入社後「Yahoo!オークション」のストア向けの営業を経験し、その後は企画やマーケティングの部署に異動して、集客施策や顧客育成などの業務を担当してきました。「Yahoo!フリマ」の担当になってからは、エンジニアやデザイナーと協力して機能開発や改善を進めるプロダクトの企画をしています。 2022年からはエンジニアが主務になりました。エンジニアのスキルはすべて入社後に身につけたものばかりです。

澤田 林さんは「Yahoo!フリマ」の立ち上げから関わっているので、尋常ではないフリマ愛にあふれています(笑)。入社2〜3年目のメンバーが新規事業の企画開発に関わり、 主導的な役割を果たしているのも、「Yahoo!フリマ」事業ならではの風土です。特に「Yahoo!フリマ」開発部は、若いメンバーが大きな裁量を持ってサービスをつくっています。

若手に任せる裁量。身近なサービスだからこその思い入れ

─ 「Yahoo!オークション」は、社内のエンゲージメントサーベイで高い評価を得ています。特に「上司との関係性」や「裁量の大きさ」ではトップクラスですね。

澤田 エンジニアが受け身で仕事をするのではなく、サービスの企画段階から関わり、企画やデザイナーが連携して仕事を進める点を一番大切にしています。 若いメンバーでも意思の強ささえあれば、どんどん抜擢して裁量権を与えています。そうしたことが評価にもつながっているのだと思います。

「Yahoo!オークション」や「Yahoo!フリマ」はコンシューマー向けのサービスなので、メンバーも一人のユーザーとして楽しんでいます。 だからこそ、ユーザー体験を自分たちの力で、より向上させていこうと前向きになれますね。友人や家族など、身近な人たちが「Yahoo!フリマ」を楽しく手軽に使ってくれている。 だからこそ、もっとサービスをよくしたいという気持ちになります。

林 祐大

モダンな開発環境を目指し、使用言語にKotlinを提案

─「Yahoo!フリマ」を支える技術についてお伺いします。高負荷のトランザクションを処理する技術やサーバー分割の技術などは、「Yahoo!オークション」から技術資産として継承していると聞きました。その蓄積のうえに、「Yahoo!フリマ」ならではの新しい技術も導入しているそうですが、具体的にはどんなことでしょうか。

澤田 「Yahoo!フリマ」の事業を立ち上げる際に、選定技術としてサーバーサイドKotlinを採用しています。通常はJavaを標準言語として使うことが多いのですが、KotlinはJavaとの親和性が高く、短い開発期間でも効率的にバグの少ないコードを書けること、開発メンバーにAndroidエンジニアが多かったことから品質を担保しつつ、最短で価値を提供できるのではと考えて提案しました。

ほかにもマイクロサービスアーキテクチャでコード自体をテンプレート化することで、複数コンポーネントを高速に同時開発することも提案しました。共通機能は「Yahoo!オークション」の資産を活用することで開発コストを抑え、「Yahoo!フリマ」特有の部分についてはバックエンド・フロントエンドともに新規開発することが基本的な戦略でした。

すべての機能をスクラッチ開発することは非常にコストがかかることですが、もともと「Yahoo!オークション」ではマイクロサービスアーキテクチャを採用しており、全社もさまざまなSaaSを提供しているため、必要な部分のみを開発すればよく、スピード感を出せたこともよかったと思っています。

設計のスタートが2019年の4月で、サービスリリース予定が10月。初期メンバーが20人だけで、開発期間も半年間だけでしたので、このスピード感はとても大切でした。

また、マイクロサービス化されているシステムは状況によって一部機能を遮断し切り離すこともできるため、可用性を担保するという点でもメリットがありました。

一方で、ドキュメントを残しておく余裕がなく、ソフトウェアアーキテクチャは人によって癖が出る部分も大きいという課題もありました。 属人性を排除しつつ、スピードも高める必要があったので、チーム内にペアプログラミングを導入することにしました。ペアプログラミングの組み合わせをシャッフルさせながら開発することで、コード品質の偏りを可能な限り軽減できたと思っています。

アプリからデータを取得する際はすべてBFF(Backend for Frontend)のAPIを利用しています。アプリに持つロジックを極力排除し、BFFに実装することでアプリをシンプルな状態に保ち、コード自体はサーバー側でコントロールできる状態にします。

また、サーバー間の通信にはGraphQLを採用しました。さまざまなユースケースに対して専用のAPIを作成する必要がないため、変化に強いシステムができたと考えています。


「Yahoo!オークション」との連携、Androidアプリの同時開発も

─ 「Yahoo!オークション」との機能連携はどのような取り組みを行ったのでしょうか。

澤田「Yahoo!オークション」の検索技術を活用して、双方のデータから検索できる機能を開発したのですが、データのフォーマットがそれぞれ違うため、どうやって吸収するか。そこが一番苦労したところであり、仕様を同じように見せるマッピング技術も工夫しました。

マーケティング担当としては、クーポンの発行やキャンペーンなどの仕掛けについての要望を出していたと思います。「Yahoo!検索」から「Yahoo!フリマ」にユーザーを送客するなど、グループのアセットを活用した集客施策も重要なポイントなのではという議論をしたことを覚えています。プロモーションをどのように行い、ユーザー認知を拡大していくかは開発チームや「Yahoo!検索」のチームとも密に連携していきました。

澤田 実は、当初「Yahoo!フリマ」はiOSアプリだけでスタートする予定でしたが、マーケティングの都合などから急遽、Androidアプリも近い時期にリリースすることになりました。これも結構大変でしたね。

リリースまでは3カ月足らず。この限られた時間で何をやるかを検討しながら、一時はAndroidアプリ開発に人的リソースを寄せ、スタート時はいくつかの機能を削ることで、なんとかiOS、Androidアプリともにリリースできました。Android開発経験のあるメンバーがバックエンド開発を支えてくれて、サービス仕様の細かいことも把握できていたからこそ実現できたと思っています。

出品者とつながる機能を実装。サービス全体のシナジーを生かす

─ サービス開始後はどのような機能追加が行われましたか。

私がエンジニアとして主担当で実装したのは、投稿機能です。具体的には「Yahoo!フリマ」内で、ユーザーが欲しい物や出品している物について情報発信できたり、 ユーザー同士で交流できたりする機能です。たおえば、農家の出品者が「うちのみかんがもうすぐ収穫できるので出品します」といった投稿をすると、それに“いいね”やコメントをつけることができるのです。

リアルな市場で売り手と買い手が仲よくなる雰囲気。そんなコミュニケーション機能をアプリのなかにも持ち込めないかと思っています。今後もフリマアプリとしてのスタンダード機能は完備しながら、新たなアイデアを盛り込んでいきたいです。

ほかにWebブラウザで商品が閲覧できるようにしたり、PayPayアプリのなかに導線を作ってフリマの商品が見えるようにしたりなど、よりユーザーの間口を広くして、PayPayサービス全体のシナジー効果を高める取り組みも進めています。

澤田 出品数や取引件数が増えていくと、不正出品を検知する機能も強化する必要があります。その仕組みは、「Yahoo!オークション」と同じ機能で開発しています。 長年にわたって「Yahoo!オークション」で積み重ねてきた知見や判断基準があることは強みのひとつですね。この領域にはAI技術もどんどん活用していきたいと考えています。

「Yahoo!フリマの先にあるもの」を突き詰めたい

─ 最後に、今後の抱負と「Yahoo!フリマ」事業にジョインしてくれるエンジニアに期待することを聞かせてください。

今後も「Yahoo!ショッピング」や「ZOZOTOWN」など、ほかほかのコマースサービスとの連携は強めていきたいですね。グループ内のアセットを活用した「Yahoo!フリマ」ならではの機能をつくつくっていきたいと思います。

また、自社サービスのため、入り口から出口まで全部、自分たちで考えて作るることができます。エンジニア、企画、デザイナーなど、職種に関係なく、一緒に開発できるチームワークも楽しいです。 リリース後の反響を分析して、悩んで、そしてまた新しい企画を出していく。そのサイクルが「Yahoo!フリマ」では常時ものすごいスピードで回っています。 その渦のなかに飛び込んでくれるエンジニアの方をお待ちしています。

澤田 フリマサービスには社会のさまざまなことを変えていく可能性があります。モノを廃棄するのでなく、リユースするエコシステムを作ることは、これからの社会に不可欠です。 単にシステムを改善するだけではなく、グループ内のアセットや他社サービスとの連携を深めながら、その可能性を高めていける多様なバックグラウンドを持つエンジニアに、仲間に加わってほしいと思います。

関連リンク
Yahoo!フリマ
Yahoo!オークション


記事を読んで「Yahoo!フリマ」「Yahoo!オークション」事業のエンジニア職に興味を持っていただいた方は、ぜひ下記より職種の詳細をご確認ください。


みんなにも読んでほしいですか?

オススメした記事はフォロワーのタイムラインに表示されます!