Mercari Advent Calendar 2020 の25日目、最終日はメルカリ CTO @suguruがお送りします。
メルカリJPでCTOをやっている suguru です。来年から新生ソウゾウのCTOとして新しいチャレンジをする決意をしました。これを機会に、今までメルカリのCTOとして、エンジニアの価値について思ってきたことを書き残しておこうと思い、この記事を書いています。
なぜエンジニアが必要なのか
どの会社でも同じだと思いますし、当然のことでもありますが、エンジニアを採用している理由は、会社を構成するメンバーとして必要な人たちであるからです。CTOとして、エンジニアという存在は、自らの知識、知恵、技能、経験を使い、社会に価値のあるものを生み出すことができる職業だと考えています。
メルカリは「新たな価値を生み出す世界的なマーケットプレイスを創る」をミッションとしています。このミッションを達成するために、エンジニアが必要不可欠であると考えており、大きく2つの期待を持っています。
お客さまへの価値の創造
メルカリのミッション達成のためには、お客さまに新しい価値を提供する必要があり、そのためには、イノベーションが必要です。エンジニアの創造力がイノベーションを生み出すポテンシャルを秘めていると信じており、その期待がまずあります。
サービスの安定運用と改善
メルカリはインターネットサービスであり、エンジニアによって生み出された様々なシステムによって支えられています。事業活動においてこのシステムの安定と、更なる改善は必要です。ここを担う役割もエンジニアへの期待です。
メルカリにとってのエンジニアの価値
上記の期待にあるように、エンジニアは事業活動を継続していく上で必要不可欠であると同時に、メルカリにとって一番重要なお客さまに、新たな価値を生み出す可能性を秘めている部分に価値を置いています。もちろん、エンジニアだけの力で生み出すことができるわけではありませんが、エンジニアの持つ能力が重要な要素であることは間違いありません。
また、エンジニアの持つ知識、知恵、技能、経験をどう発揮し、活用するかが、価値を生み出す可能性を引き出すことも併せて重要だと考えているため、エンジニアの価値を最大化するためにも、メルカリではエンジニアがどのように事業に取り組むことができるかも重要視しています。
メルカリがエンジニアに求めている能力
エンジニアに価値を感じている一方で、エンジニアに求めている能力や考え方もあります。これらの定義を Engineering Principles にまとめていますので、興味のある方はリンク先のサイトを見ていただければと思います。
メルカリはチーム開発が主体となるため、エンジニアリングに対する行動にもある程度の基準や方向性を組織として提示する必要があります。こういった能力や考え方に共感できるエンジニア集団が、最大の価値を生み出すことができると考えています。
目指している環境と組織と取り組んでいること
こうした期待や、能力を求めていく以上、メルカリとしてもその能力を十分に発揮し、期待に答えられる環境や組織を用意する責任があります。CTOとしての役割は、これらの土台を作り上げていくことだと考えて活動してきました。
メルカリが目指しているエンジニアの価値を最大限引き出す組織として、以下のような環境があるべきだと考えています。
個々が意思決定のできる仕組み
メルカリでは、多様なエンジニアを受け入れ、個々の価値観と判断を受け入れ、支援することで、事業の改善やイノベーションを促進していくスタンスが重要だと考えています。社内では Microdecision と呼んでおり、個人やチームが独自に判断して動くことができることを意味します。この状態を実現するには、仕組みも必要だと考えており、 Data Driven な判断が会社全体で必要であると考えています。
また、メルカリの Value である Go Bold な意思決定を個々で行われるよう支援するためにも、挑戦を称賛し、失敗したとしても個人に責任を追求することない文化も必要だと考えています。失敗の影響を最小限に留める仕組みを構築していくことで、失敗を重ねるだけ組織が強くなるといったサイクルの整備が必要だと考え、推進しています。
コンテキストが伝わる風土
さまざまな事業や機能の開発において、エンジニアが目的や背景をしっかりと理解した上で、最適な設計と技術戦略を考えることで、高い品質と最適なシステムが生み出され、結果としてお客さまに最も良い体験を提供できるのだと考えています。
エンジニアがただ作るものの指示を受けて、その通り作るような環境では、上記のようなことは実現できないと考えており、エンジニアが意思決定の背景やそのコンテキストを十分に理解して、事業の成功に必要な要素を理解した上で自らの役割に取り組むことができる風土が重要だと考えています。
現在の取り組みとしては、透明性とコンテキストを正しく伝える文化によって、さまざまな箇所で行われる意思決定の背景の理解を促せるように、透明性とコンテキストの伝達に取り組んでいます。
エンジニアが事業の成功に責任を持つ文化
往々にして事業会社ではデリバリーの責任はエンジニアではない所にあることが多いです。それは、事業の成功や数字の責任を負っている部署や職種がエンジニアではないことが多いからだと考えています。
メルカリでは、エンジニアも事業の主体であり、成功に対して責任を持つ職種であるべきだと考えています。事業の成功においてスピードは非常に重要な概念ですが、短期的なスピードを上げることによって技術負債の堆積によりかえって中長期的なスピードの低下を招くことも必然です。エンジニアは事業の成功および中長期の視野を持って、いかにスピードを上げ事業を成功に導きつつ、システムを健全な状態に保っていくかのバランスを取らなければなりません。エンジニアが単にシステムの健全性だけでなく、事業に関わる中心となる一員として、事業とシステムの両方に責任を伴う意思決定ができる文化を目指しています。
現在の取り組みとしては、エンジニアが可能な限り事業の中心の議論に入り、同じ目的と視野を持った上で、開発という局面の検討ができるように巻き込みを促しています。
創造的な余力のある状態
エンジニアが、日々の業務だけで頭がフル回転している状況では、創造的なイノベーションを起こすことはとても難しいです。新しい技術を探求する時間、今までの経験を組み直す時間、頭をリフレッシュする時間、こういった時間をちょっとした余力によって生み出すだけで、創造的な思考が間違いなく促進されます。
会社がエンジニアを歯車と考えるのか、価値を生み出す源泉と考えるのかは、この創造のための余力を会社が捻出しようとしているかではないかと考えています。エンジニアが創造的になり、価値を生み出す源泉となることを目指すために、メルカリでは事業の許される限り余力がある状態を作れるよう目指しています。
現在の取り組みとしては、 Hackweek などに代表される組織的な取り組みを実践しつつ、エンジニアの人員計画にも、ある程度の余裕をもった構成があるべきだと考えて計画をしています。
テックカンパニーに向けて
CTOとして、メルカリは世の中で一番エンジニアを大事にする会社であるとともに、一番期待し、信頼している会社でありたいと考えています。同時に、一番事業成果を生み出す責任も伴うべきだとも考えています。エンジニアという技術職の能力と可能性を最大限引き出し、お客さまに価値のあるものを生み出していく、そんなことができている会社がテックカンパニーだろうと考え、日々様々な取り組みを行っています。
エンジニア募集中
というわけで、まだまだテックカンパニーへの道半ばな環境ではありますが、メルカリではエンジニアを大募集しています。上記のような環境はまだ実現できていませんが、これから一緒に作っていきたい、そんな環境を目指している会社で開発をしていきたい、と思われる方はぜひ興味あるポジションに応募いただければと思います!
- Software Engineer
- Software Engineer – Site Reliability
- Software Engineer – Tool and Infrastructure
- Software Engineer – Machine Learning
- Engineering Manager
上記以外のポジションもあるので、興味のある方は Engineering at Mercari をご覧ください。