2021年11月11日に、プロダクト開発体制を一挙公開〜メルカリ・エンジニア組織の大解剖〜 というイベントを開催しました。 この記事はその中のセッションの1つ、「メルカリのプロダクト開発体制」の書き起こしです。
詳しくはYouTube上にある配信アーカイブをご視聴下さい。
当日行われたその他セッションの書き起こしは以下でご覧いただけます。
- 【書き起こし】プロダクト開発体制を一挙公開 – 全員ソフトウェアエンジニアとは?
- 【書き起こし】プロダクト開発体制を一挙公開 – Cross-functional team in Mercari
- 【書き起こし】プロダクト開発体制を一挙公開 – メルカリプロダクト開発体制本音トーク
自己紹介
宮坂と申します。社内では@mmiyと呼ばれています。私は現在、Product Foundationのヘッドを担っています。メルカリには3年前ぐらいに参画しています。その当時からPMオフィスやテクニカルプロダクトマネジメントなどを担当してきました。過去の経歴として最初がNRI、次がMicrosoft、楽天、ファーストリテーリングと歩んできたのですが、Microsoft時代からプロダクトマネジメントを担当していました。当時が2000年なので、20年以上プロダクトマネジメントを行ってきたことになりますが、それ以外にも組織開発やオフショア開発、Agile開発、PM組織の立ち上げなども行ってきました。
プロダクト概要
まずメルカリの現状について紹介します。メルカリのアプリはCtoCマーケットプレイスのメルカリ、最近始まったBtoC ECのメルカリShops、決済サービスのメルペイが1個になったサービスとなっています。
メルカリのアプリは2013年にローンチしてから、7〜8年経ちましたが、この間に急速に成長しています。MAUは2016年を基準として6.8倍、GMV(売上)は8.9倍ということで非常に速いスピードで成長しています。
このプロダクトを支えるために、プロダクト開発組織もサイズが大きくなっています。現在、プロダクト開発に直接関わるのが約500人で、2017年から約3倍となっています。職種としてはプロダクトマネージャー、エンジニア、デザイナー、QAエンジニア、プログラムマネージャーなどで構成されています。また、エンジニアの半数以上は外国籍エンジニアとなっています。これはプロダクト開発組織の運用上、キーになるポイントかと思います。
これまでのプロダクト開発体制の変遷
ローンチ時、つまり創業時は1チームしかありませんでした。この時のプロジェクトオーナーは創業者である山田進太郎になります。その下で必要なエンジニアがサービスを開発し、2013年にローンチしました。
そしてこの最初の体制をコピーする形で開発体制が拡充していきました。プロジェクトオーナーがいて、その下にPM、バックエンドエンジニア、iOSエンジニア、デザイナーなどが所属して開発を行なっていく形です。この時はレポートライン(評価者)もプロジェクトオーナーでした。
2018年4月にPMM(プロダクトマネージャーマネージャー)とEM (エンジニアリングマネージャー) 体制に変更しました。
これに伴ってエンジニアのレポートラインをEMに、PMのレポートラインをPMMに変更しました。この背景としては2017年ごろから外国籍のエンジニアが入ってきていることや、リリースから5年くらい経過したことで、キャリアパスについてケアする必要が出てきたことが挙げられます。PMではエンジニアの成長やキャリアパスに関する相談に対応するのは限界があったということです。
なお、この当時は3ヶ月(四半期)ごとにチームを作り直していました。
その場合、最初の1ヶ月でチームビルディングとオンボーディング、プランニングを行います。次の1ヶ月は開発して、最後の月にテストしてリリースするといった具合でした。そしてリリースするとまた新しいチーム体制になって、開発を再度スタートします。
この頃の課題としては、各チームによって開発の取り組み方が異なっていたこと、日本語の資料ばかりで外国籍エンジニアからよく分からないと不満がたまっていたことが挙げられます。また、当時の開発はウォータフォール型で、プロアクティブではないという指摘が寄せられていました。
これまでのプロダクト開発体制の変遷(Front-back体制)
そこで、これらの課題を解決するために2019年1月からチーム固定化というのをはじめました。
チーム固定化は、ユーザ体験ごとに区切ってチームを割り当てるという仕組みになります。それまではチームに対してFeatureをアサインしていたのですが、テーマを与えて、各チームでFeatureを考えるという形に変更しました。また、当時はマイクロサービスマイグレーションを進めていたこともあり、Front-back体制に変更しています。
2019年4月にはScrumを導入しています。当時Scrumを用いていたチームはありませんでした。そこで、トレーニングやAgileコーチを入れて、トライアルとして開始しました。もう1つ行ったのが、SpecとTicketの英語化になります。これは外国籍のエンジニアが増えてきたことに起因しています。日本語で書くのも良いのですが、英語も合わせて書くことを必須としました。英語があるなら日本語は不要といった形です。
チーム固定化やFront-back体制の影響について紹介します。実際開発を進めてみると、チーム間で連携しなければならないことがとても多かったことに気づきました。そのためFeatureやアイディアの優先順位付けが難しかったり、人手不足が起こるようになっていました。例えば、売り上げが上がるもの、セキュリティやお客さまを守るもの、エンジニアリングのための施策、などを同じ軸で比較するのはとても難しかったです。
あとは3ヶ月ごとでチームを作り直すことはなくなったのですが、3ヶ月ごとに施策を考えてアサインを変える形だったので、3ヶ月で出来上がるものしか作れませんでした。中長期的な施策は難しかったです。
現在の開発体制:Campシステム
2020年1月ごろ、Scrum導入して1年経って徐々に各チームに浸透してきたというのがこの時代です。そして、次の段階を考えた際に導入したのがCampシステムになります。これはプロダクトを複数の領域に、明示的に分割する開発体制になります。
各領域をCamp、つまりCross-functionalなチームとして、Camp内だけである程度、意思決定と担当領域の機能を作りきることができる単位として設計しています。Campの中には複数のScrumチームが存在し、チーム1がクライアント、チーム2がフロントエンド、チーム3がバックエンドといった具合にCampで見るとCross-functionalな状態になっています。SpotifyのSquadと呼ばれる開発体制の変則版といえます。
この各CampにはPM Head、Engineer Headを配置しています。それぞれのチームである程度意思決定を明確にできるようにしています。当然、時にはCampの範囲を超えるタスクもあるので、それはCamp同士でディスカッションを行っています。デザイナーやQAエンジニアは、共有のチームから派遣される形になっています。
このCampシステムを導入する際に、プランニングのプロセスも策定しています。全社方針をプロダクトロードマップとしてまとめ、それをサポートするプランを各Campが年間計画(Annual Plan)として作成するといったプロセスになります。これがあることで、3ヶ月目線でなく1年目線での仕事ができるようになり、3ヶ月では難しいけれど半年あれば達成できるGo Boldな仕事もできるようになっています。
もう1つのポイントですが、各Campにはテーマがあって、そのテーマに沿って自由度を持って仕事を決められます。Campによって異なるのですが、アイディエーションを行ってからAnnual Planを書いているケースが多いようです。このAnnual Planは当然レビューされて、それがCampのガイドラインとなって開発を行っていく形になります。硬直しないよう、Annual Planは3ヶ月や半年単位で定期的にレビューされて、進捗確認や更新をします。
それ以外の開発組織系施策
Agile/Scrum開発について言うと、各チームで実行できるようになってきました。現在はCamp単位でLeSS(Large-Scale Scrum)を入れるように推奨しています。そして必要があればAgileコーチやScrum Masterをアサインしています。
2つ目のポイントはテストです。ウォーターフォールにおけるテストは最後にまとめてやれば良いですが、Agileやイテレーションでの開発になると何度も繰り返し行う必要があります。つまりオートメーションテストが必要になるのですが、QAエンジニアの数が少ないので、エンジニア自身でテストを積極的に書いて全員で品質を上げていこうという活動をCamp QAと呼んで行っています。
3つ目、最後のポイントは基盤への投資を強化しています。先日Web版を刷新しましたが、他にもデザインシステムの導入やRobust Foundation for Speedというバックエンドへの投資を強化するといったことも開発組織の施策として行っています。
これからのチャレンジ
まず、さらに大きい開発組織を作ろうとしています。先ほど、現在は500人と言いましたが、さらに倍や20倍になっても耐えられるプロダクト開発組織を作ろうとしています。また、メルカリアプリはグループ企業であるメルカリ、メルペイ、ソウゾウの3社でアプリを開発していますが、クロスカンパニーでの協業はまだ課題があると思っています。
また、先日から始まったYOUR CHOICEという制度に対応した開発体制の確立については、まだ道半ばといったところです。
メルカリでは多くの人たちがプロダクト開発に関わっていますので、D&Iを推進しています。これは色々なプロセスを変えなければいけません。そして、すべてをグローバルレベルに引き上げていく上で、開発組織やプロセスのベースラインを上げていこうとしています。これも、これからのチャレンジになります。
以上となります。ありがとうございました。
さいごに
メルカリではメンバーを募集中です。 少しでもご興味のある方は、ぜひともMercari Careersの募集要項をご覧下さい。
また、今後もエンジニアリング組織に関係するイベントを随時開催していきます。connpassでメルカリ/Mercariのグループメンバーになることで最新情報を受け取れます。