2019年7月2日に開催された、アプリケーション開発を支えるエンジニアたちが登壇するイベント「Developers Summit 2019 Summer」。今回は、テクノロジーやプロダクト、開発プロセス、エンジニア組織をテーマに、登壇企業それぞれの知見が共有されました。
メルカリからはCTOである名村卓と、VP of Backendの田中慎司が登壇。2018年7月に導入を発表したマイクロサービスについて「どういった背景でマイクロサービス化に踏み切ったのか」「どのようなエンジニア組織を目指しているのか」「具体的なマイクロサービス化への道のり」を、組織編成や技術的な事例を交えて発表しました。
そこで今回は、名村が登壇したイベントレポートを公開。名村が感じる「メルカリのエンジニア組織が抱える課題」と、マイクロサービス化を通じて実現しようとしている「統率のとれた有機的な組織」について語りました。
※本記事は名村による登壇内容をメルカン編集部で編集したものです。
メルカリのエンジニア組織が抱える「オーナーシップの低下」「情報の不透明さ」
マイクロサービスとは、複数の小さなサービスを連携させて管理、運営を行う開発手法のこと。メンバーやチーム単位に裁量権が与えられ、自由に開発できることなどが特徴の1つとして挙げられます。では創業以来、マイクロサービスとは真逆のモノリシックな開発手法を用いてきたメルカリが大きく転換することを決めた理由は?
名村:現在、メルカリのエンジニア組織は大きく4つに分けられています。
・ Product Development・・・フロントエンドやクライアントサイドを中心としたチームが所属し、プロダクトマネージャーとやりとりしながらサービス実装を進める
・ Backend・・・BackendチームやSREチームが所属し、プロダクトのバックエンドシステムを担当。マイクロサービスのマイグレーションも行う
・ Data・・・おもに機械学習を行うAIのほか、BI、検索システムチームが所属し、データを活用してサービス改善などを行う
・ Engineering Organization・・・オンボーディングを行うチームが所属し、採用や育成を行う
名村:しかし今、メルペイというペイメントサービスがスタートするなど、システムが複雑化しています。そしてさらにチーム間での分業化が進み、一人ひとりが関わる領域が小さくなるにつれて「メルカリをこうしていきたい」といったオーナーシップも少しずつ低下する傾向にありました。また、組織が大きくなれば、どうしても階層化が進みます。そうすると、どんどん組織内の透明性が下がり「誰に聞けばいいのかわからない」「何が決まったのかわからない」状態にもなります。メルカリではこういったところを課題として抱えていました。
マイクロサービス化で目指すのは「統率のとれた有機的な組織」
事業が複雑化し、さらに分業化によるオーナーシップの低下。そして組織の階層化で起こり始めた情報の不透明さ。こういった課題解決の1つとして、メルカリはマイクロサービス化を選択します。では、マイクロサービス化し「オーナーシップの低下」「情報の不透明さ」をなくした先に見ている「理想の組織」は何か。名村はこのように続けました。
名村:組織内で起こり始めている課題を解決し、その先にある「理想の組織」として僕が社内でよく話している4つの要素があります。
名村:まずは「育成型組織」。これは要するに、メルカリのエンジニア組織に所属しているだけで人が育っていくようなものにしたいということです。なぜなら、メルカリは「いっぱい採用しているよね」と言われていても、「メルカリ出身のエンジニアって優秀だよね」とあまり言われることがない。そこで、メルカリで働くエンジニアたちがどんどん成長できるような環境を整備しているところです。そもそも、成長するビジネスの背景には、必ず人の成長が紐付いています。その逆も然り。人の成長にフォーカスすれば、おのずとビジネスも成長するのではないかといった考えもあり、育成に注力しています。
続いて、「Microdecision」です。これは、可能な限り権限をエンジニアに移行し「自ら決断しながら動く」という考え方です。先ほどお話しした育成型組織を実現するには、この考え方は必須。また、オーナーシップを高める意味でも重要なポイントです。
そして「全員SoftwareEngineer」。これも先ほど少しお話ししましたが、今のメルカリでは分業化が進み、エンジニアでも職種定義が発生し「iOSエンジニアはその領域しか着手しない」といったところがあります。もちろん、専門領域での知見や技術力向上を否定するわけではありません。ただ、我々にとって技術とは、あくまでもプロダクトをつくるための手段。最高のプロダクトをつくり上げるうえで、「職種定義で範囲を絞るのは少し違うのではないか」と考えているのです。
最後に「Open Organization」。これは最近になって強まり始めた考えです。そもそもエンジニア間では、プロダクトづくりでの開発手法や成果を社外にも公開する「オープンソース」があります。「ならば、組織についても公開してみたらどうか?」と考えました。今後のメルカリでの考え方や社内の仕組みを徐々にシェアしていくつもりです。
名村卓(メルカリCTO)
育成型組織、Microdecision、全員SoftwareEngineer、Open Organization。これらができる組織を、名村は「統率のとれた有機的な組織」と呼びました。
名村:この4つの要素を実現したときにどんな組織ができあがるだろうか? 日本語でも英語でも表現しづらいところがあるのですが、僕は「統率のとれた有機的な組織」が誕生するのではないかと考えています。
名村:階層型組織を否定するつもりはなく、ただ、全体の方向性のみトップダウンで伝えつつ、そのほかの意思決定をボトムアップでかき集め、最終的にいいプロダクトづくりにつなげたい意図があります。そもそも人間に限らず、あらゆる生物が生存競争のなかでトライアンドエラーをくり返し、進化し続けてきました。メルカリも、統率がとれた方向性のなかでメンバーそれぞれの考えを尊重し、自由に挑める組織を目指しているのです。そして、いろいろなところで想像を越えるような進化が起こることに期待したいと思っています。
「統率のとれた有機的な組織」にマイクロサービスが必要な理由
では、「統率のとれた有機的な組織」となるために必要なものとは何か? ここで名村が挙げたのは「Microservices」「Micro components」「Design System」「Data Platform」「Feature Flags」「Engineering Ladder」の6つ。
名村:「統率のとれた有機的な組織」をつくっていくために必要な要素がこちらです。
名村:「Microservices」はトレンドワードになりつつあるので、ご存知の方も多いかもしれません。メルカリでは以前からマイクロサービス化を推進していて、少しずつ道筋をつくり、移行を進めています。「Micro components」はフロントエンドに近い考え方があり、要するに役割を細分化していく手法です。この2つが組み合わさることで、組織が大きくなっても個々人がしっかり動ける体制になります。
「Design System」は、ステートメントを定義し、システムに落とし込んでいく手法です。エンジニアの「こういった機能がほしい」というリクエストに対して、毎回デザイナーが1からデザインするのではなく、それを実現するためのコンポーネントが揃っている状態を指します。すでにUberやAirbnbでも採用されていますが、メルカリで定義するデザインシステムは、Googleのマテリアルデザインに近いかもしれません。
また、今後はデータによる判断が重要視されます。そこで「Data Platform」をつくり、さまざまな意思決定をデータで判断していく。ここに「Feature Flags」というABテストのような機能を組み合わせて「こういったお客さまにこの機能は有効。でもあのお客さまには有効じゃない」など、パーソナライズした判断も重要になると考えています。有機的な組織に近づくほど、ボトムアップでの意思決定の成否判断が大事。そのなかでは「なんとなくこっちがいい」と、感情的な判断も混じり始めます。そうしたときに、データを使った意思決定ができる環境が肝になるんです。特にメルカリの場合は「お客さま体験を向上する」といった明確な指標があります。今後は明確にデータで判断していくことになります。
最後は「Engineering Ladder」。これは、エンジニアにとってのキャリアマトリクスを指します。メルカリでもまさに今、「エンジニアとしてこれくらいスキルがあれば、こんなことができる」などを定義し、社内評価システムに組み合わせようとしているところです。
ここでようやく、本登壇のテーマの1つであるマイクロサービスが登場します。そして「なぜマイクロサービスなのか?」の理由も明らかに。
名村:ではなぜ、マイクロサービスなのか。僕としても、有機的な組織になるにあたり、ここはとても重要な要素だと考えています。メンバーがオーナーシップを持って意思決定する環境づくりは大事。しかし、責任範囲が広すぎると意思決定できない事態も起こります。
名村:そこで、まずは責任範囲をカプセル化し、それぞれが意思決定を実現しやすい環境をつくる必要があるのです。これによって権限委譲をするうえでも、細かい範囲でシステムを区切っていくことができます。これは比較的簡単にできるので、有機的な組織を目指す最初の入口として重要だと思っています。「Microservices」「Micro components」「Design System」「Data Platform」「Feature Flags」「Engineering Ladder」。これらの要素が揃えば、継続的に進化する組織になっていく。そして、最終的にはいいプロダクトが生まれてくるだろうと考えています。
マイクロサービス化と同時に進める、エンジニア組織のオープンソース化
メルカリで進められている、マイクロサービス化。それと同時にエンジニア組織体制の再構築も行われているところですが、最後に名村は「今後は、メルカリのエンジニア組織における採用プロセスや評価基準なども社外にシェアしていきたい」という想いを明かしました。
名村:例えば、先ほどお話しした「Engineering Ladder」。海外ではLadderを公開し「うちではこうやってエンジニアを評価しています」と社外にシェアしていたりします。メルカリでもこういった情報をどんどんオープンにすることで、よりエンジニア業界がハッピーになるのではないかと考えています。最近のスタートアップでも「エンジニアの評価をどうやればいいのかわからない」なんて声が多いのです。メルカリではキャリアや評価基準、さらに採用基準をオープンにし、1つの例として広がっていくといいなと考えています。
もちろんLadderだけでなく、採用プロセスなどの内部情報をどんどんオープンにしていく予定です。さらに、Open Organizationとして、組織のオープンソース版のようにできないかと考えています。そしてゆくゆくは、他の企業も公開していく流れができると面白いんじゃないかと思っているところです。
マイクロサービスによって実現したいのは、メルカリエンジニアの誰もがオーナーシップを持って開発に挑み、成長できる「統率のとれた有機的な組織」。そのために必要な要素、メルカリエンジニア組織の今後が紐解かれた登壇内容でした。
-
名村卓(Suguru Namura)
2004年株式会社サイバーエージェントに入社後、アメーバピグ、AWA、AbemaTVなどの新規サービスの立ち上げに従事。2016年7月、株式会社メルカリに参画。US版メルカリの開発を担当、2017年4月、執行役員CTOに就任。