約16時間の時差を飛び越えて、同日集荷・配送サービス「Mercari Local」はどうやって開発されたのか?

2021年7月20日、メルカリ米国事業(US版メルカリ)では、非接触の同日集荷・配送サービス「Mercari Local」の拡充を発表しました。

Mercari Localとは「Mercari Now」としてサンフランシスコ、ニューヨーク、ヒューストンなどの主要都市で展開していた非接触での同日集荷&配送サービスを全米展開したもの。これによって近距離売買を簡単にし、快適に出品できるようになったのです。

US版メルカリと言えば、パロアルトオフィスと東京オフィスで連携して機能開発を行っています。しかし、新型コロナウイルスの感染拡大を防ぐため、パロアルトオフィスは2020年3月から在宅勤務体制へ移行。東京オフィスでは、2020年2月から在宅勤務体制になりました。

──約16時間の時差と「会えない環境」のなかで、Mercari Localはどうやって開発を進めてきたのでしょうか?

今回のメルカンは、東京オフィスでUS版メルカリの開発を行うチーム「US@Tokyo」のAndroidエンジニアである吉岡 毅(@tsuyogoro)とBackendエンジニアのAnurag Bharadwaj(@anurag)が登場。US@Tokyoチームでは特に配送周りの機能を開発していたと言いますが、リリースまでの日々はどうだったのか?直撃してきました。

※撮影時のみマスクを外しています

この記事に登場する人


  • 吉岡 毅(Tsuyoshi Yoshioka)

    大学院卒業後、ソニー・エリクソンモバイルコミュニケーションズ株式会社(現 ソニーモバイルコミュニケーションズ株式会社)に入社。世界展開されていたフィーチャーフォンの開発から始まり、Symbianスマートフォン、Xperiaシリーズのスマートフォンの開発に従事。2016年3月よりメルカリに入社し、以来、US版メルカリのAndroidアプリを担当。『Android アプリ設計パターン入門』の著者の一人でもある。

  • Anurag Bharadwaj(アナーラグ・ブハーラドワッジ)

    JP版メルカリの機械学習チームでインターンをしたのち、2020年にUS版メルカリを開発するUS@TokyoチームのBackendエンジニアとして正式入社。Mercari Localプロジェクトに携わる。現在はShippingチーム内の他のプロジェクトも担当。余暇には競技プログラミングも行う。


初めての出品は「食器洗い用スポンジ」

ーMercari Localの全米展開、おめでとうございます!そして、お疲れさまでした!!このサービスは「Mercari Now」という名前で始まったものでした。いつごろから開発をスタートさせていたんですか?

@tsuyogoro:このプロジェクトは、2019年にマーケット調査から開始しました。当時から、フィジビリティスタディ(実現可能性を事前に調査・検討するもの)をガシガシと進めていたんです。実際に機能として開発するタイミングで開発担当チームが発足。ビジネスサイドはパロアルト、配送に関する機能実装のノウハウは僕らのほうが持っていたので、開発は東京で行うことになりました。

最初のステップでは、2020年初めに僕らUS@Tokyoチームがパロアルトへ出張し、仕様と方向性の目線合わせをするためのMTGを1週間半ほど実施。その後、それぞれに分かれて開発などを進めていきました。市場ニーズや検証を実施するためα版を同年4月にリリース。成長フェーズへ入った7月には、一部のお客さま向けにβ版として「Mercari Now」をリリースしていました。

このプロジェクトの特徴は「ミニマムで進めたこと」。というのも、この機能はパートナーさんと実際に手を組んで動かさないとわからないものでもありました。リアルな場でしっかり動くかどうかをテストするため、α版ではまずは食器洗い用のスポンジを出品して…。

吉岡 毅(@tsuyogoro)

ースポンジ!

@tsuyogoro:そうなんです(笑)。当時はサンフランシスコ内でしか稼働できなかったので、メルカリメンバーが買い手・売り手となり、スポンジを届け合う実験を4月に実施していました。ある程度の市場やニーズを調査し終えてから、次のステップであるβ版へ移行しています。

通常であれば、α版だった構築フェーズからプロモーションを仕込んだりするんです。しかし、今回はまず構築に集中。β版である成長フェーズになってから「商品を数時間以内に手に入れたいときはこの機能を使いませんか?」といったメッセージを出すなどプロモーションも開始しました。そのときに開発チームへ参加してくれたのが@anuragです!

@anurag:たしか、2020年5月末ごろでしたね。それまでは別のプロジェクトに参加していました。でも、実は言うとMercari Localのアイデアを聞いたときからとても興味があって…コードレビューに参加するなど、いつでもプロジェクトに貢献できるようにしていました(笑)。実際に声をかけてもらったときのうれしさは、すごかったですね!

約16時間の時差で意識したのは「方向性の合意」

ー 一番聞きたかったのは、アメリカ・日本の時差をどう乗り越えながら開発したのかという部分です。パートナーさんもいることから、わりとしっかりコミュニケーションしなければならないプロジェクトでもあったと思うのですが?

@tsuyogoro:このプロジェクトで大事なのは、関係メンバーが「方向性に合意していること」です。そのため、先ほどもお話ししましたが、最初にUS@Tokyoチームがパロアルトオフィスへ出張し、方向性の合致や見るべきポイントを絞るためのMTGを1週間半かけて濃〜く行いました。1日4〜5時間くらい話し合っていましたね。方向性さえ合えば、あとは各々で動くことができます。何としてでも1週間半で決め切らねばと思い、普段なら絶対やらないアジェンダやプレゼン資料づくりも頑張りました(笑)。

パロアルトオフィスへ出張したときの写真。夜はメンバーみんなでピザをつくり、食べた!

みんなで手作りピザを食べている様子

ーすべては見るべきポイントを絞るため?

@tsuyogoro:そうです。時差も距離も、僕らではなんともできない。さらに新型コロナウイルスの影響で直接会うことすらままならない状況でした。だからこそ、同じ方向を向いていることが大事。見るべき方向・目的を徹底的にシンプルにすることで、コミュニケーションで起こりそうな問題を先に潰した感じですね。

パロアルト・東京での開発体制を図解したもの

@anurag:時差や距離があるなかで開発を進めていくうちに気づいたのは、ちょっとしたコミュニケーションが大きな問題に繋がりやすいということ。Mercari Localは影響範囲が大きく、スピードを求められるプロジェクトでした。適切なコミュニケーションをとらないと、のちに余計な負荷を生みやすかったんです。僕自身も、コミュニケーションで齟齬があったとき、2日ほどで完了できた開発に5日かけたことがありました。そこで、コミュニケーションさえしっかりしていればスピードを保てると気づいたんです。開発で何かあれば、直せばいいだけなので!

僕は、自分の仕事内容を簡潔にまとめたり、複雑な開発になりそうなときは何度かMTGをして議論を重ねたり、仕様書を書いたりなど、齟齬が生まれないように常に意識していました。1日の終わりにはSlackにメモを残し、他のチームが業務を引き継げるようにしていました。あるチームは開発に関する引き継ぎ情報を「次のイベント」と伝え、より印象強いものへ発展させる工夫もしていましたね。

Anurag Bharadwaj(@anurag)

@tsuyogoro:実際には、毎週2回の定例以外でもさまざまなMTGを実施していました。それは、どちらかと言うと実業務の話よりも「何にフォーカスするのか」をシンプルにするための話し合いでしたね。

スクラムマスターを“ローテーション”したことによる効果

ーこれまでの開発体制から変えたところはありますか?

@tsuyogoro:チャレンジングだったのは、スクラムマスターをローテーションにしたことですね。今回の開発はメンバーへの属人性が高まる可能性もありました。そういった依存関係を解消しつつ、スムーズに開発を進めるためにスクラム開発を取り入れていたんです。また、スクラムマスターを僕一人にするより、いろいろなメンバーで回しながら異なる視点を入れたほうが解決策も多くなると考えて、ローテーションにしていました。

驚いたのは、US@TokyoチームのQAエンジニアである@hilary(Chan Man Ying)のスクラムマスターぶり!QAは、開発が概ね完了した段階で行うもの。それまでの間は、開発企画に入ることはあれど、実働は少なめだったりします。そんな背景もあり、彼女にスクラムマスターをお願いしたのですが…これがとてもよかった。

僕がスクラムマスターをやると、その場にいるメンバーから担当メンバーへ介することになるのですが、彼女は直接やりとりできる。彼女自身がプロセスワークに興味を持っていたことも心強かったです。現在、@hilaryは実業務の30〜40%をスクラムマスターに割いています。今回のプロジェクトで、チームにとってのスクラムマスターの動かし方がある程度見えたように感じています。

@anurag:今やスクラムマスターはローテションではなく、ずっと@hilaryが担当し続けていますもんね(笑)。そうやって僕らは、開発体制を細かくフレキシブルに変更して、効率性を追いかけながら1年半やってきました。

@tsuyogoro:あのですね…僕としては@anuragの成長ぶりもすごいと感じているんですよ!彼は2020年にメルカリへ新卒入社したエンジニアでもあります。定期的にレトロスペクティブ(振り返り)を実施していたんですが、そのなかでフィードバックがあると真摯に受け止め、次にはほぼ確実に反映されていました。より成長したい意欲を常に感じていました!

@anurag:ありがとうございます!僕の最初の仕事は、オファー機能全体を構築することでした。少し後から参加したのでキャッチアップしながら動いていましたが、おかげでいろいろなコードレビューを通じていい経験ができました。僕が参加したときはまだ調査段階のものが多かったですけれど、視認性を高めるかたちで機能へ落とし込めばいいものになりそうなデータも集まりつつありました。

@tsuyogoroさんの言うとおり、当初は進捗共有があまりうまくできず、それに対するフィードバックをもらっていました。個人的には、そこはとても注意していました。それに、僕にとってMercari Localが初めて“プロ”として関わったプロジェクトでもあります。だから、どうしても頑張りたかったんです!

@tsuyogoro:最高です!これからもMercari Localをより良くしていきましょう!

@anurag:ですね!!Mercari Localによって、新しい売買のニーズが生まれると感じています。いろいろな化学反応が生まれるように、より機能を磨き込みたいですね!

@tsuyogoro:そんな@anuragも所属するUS@TokyoのShippingチームでは、Mercari Localのようなエキサイティングなプロジェクトに参加したいエンジニアを大募集中です!くわしくは、下記のページをチェックしてみてください!!

関連記事 サクッと読める!✨

「Mercari Summer Internship 2022」の募集を開始しました! #メルカリな日々

メルペイ初!QAエンジニア育成&インターンシッププログラム「Merpay QA Summer Training Camp 2022」の募集を開始します! #メルカリな日々

「Mercari Summer Internship 2021」の募集を開始しました! #メルカリな日々

関連記事 読み応えアリ✨