Upgrade to Pro — share decks privately, control downloads, hide ads and more …

0924_Bold Challenge_@osamingo

mercari
September 26, 2019

0924_Bold Challenge_@osamingo

「レッドオーシャンに突っ込むぞ、つかまれ!」
株式会社メルペイ Engineering Manager, Technical Program Manager 主森理(@osamingo)
2018年2月にメルペイ開発に着手し、開発体制の変遷や、マネジメントのリアル、リリースそして運用、現在新しく Challenge している取り組みである Technical Program Manager の役割について話します。

■イベント詳細
https://mercari.connpass.com/event/145803/

■採用サイト
https://careers.mercari.com/jp

mercari

September 26, 2019
Tweet

More Decks by mercari

Other Decks in Technology

Transcript

  1. #BoldChallenge 6 入社後の経歴 2016/08 入社 メルカリ アッテを担当 2016/11 メルカリ カウル担当になり、

    開発に着手 2017/05 メルカリ カウルを リリース 2018/02 メルペイへ異動、 開発に着手 2019/02 メルペイをリリース
  2. #BoldChallenge 9 どうやってエンジニアが集まったのか 1. 2017/11に株式会社メルペイが設立される。
 2. 2017/12に All-Hands で naoki

    & sowawa によるプレゼン開催。
 3. プレゼン後、社内公募が行われた。
  ・本気度や、どういったことをやりたいのかを記述する。 
  ・全員が異動できる訳ではなく、上記の内容を元に選抜される。
 4. (会社の忘年会で当時のソウゾウCEOから、どれぐらい本気なんだと
 ヒアリングされたので、酔っ払ったままプレゼンをする。)
 5. 年明けに異動者が発表され、約1ヶ月で引き継ぎを行い異動となる。
 2ヶ月ほどで初期の開発体制が構築された
  3. #BoldChallenge 10 メルペイの初期は、メルカリのスタイルを継承 見出し Merchant Group Cash-out Group • Product

    Owner (Mgr.) • Product Manager • Designer • Android Engineer • iOS Engineer • Frontend Engineer • Backend Engineer • etc. • Product Owner (Mgr.) • Product Manager • Designer • Android Engineer • iOS Engineer • Frontend Engineer • Backend Engineer • etc. • Product Owner (Mgr.) • Product Manager • Architect • Backend Engineer • etc. Platform Group
  4. #BoldChallenge 14 VPoE が来て変わったこと • CTO を Business と Technology

    に集中させた。 • Product Owner (Mgr.) から Engineer Management を剥がし、 Product 設計に集中する時間を確保させた。 • 新たに Engineer の Report Line を作り、組織構造を再設計した。 • それに伴い、PM-TL-EM 体制を構築した。
  5. #BoldChallenge 15 VPoE が来て変わったこと • CTO を Business と Technology

    に集中させた。 • Product Owner (Mgr.) から Engineer Management を剥がし、 Product 設計に集中する時間を確保させた。 • 新たに Engineer の Report Line を作り、組織構造を再設計した。 • それに伴い、PM-TL-EM 体制を構築した。
  6. #BoldChallenge 17 Product Manager (PM) • 主な役割 ◦ プロダクトの方針を定め、成功に責任を負う ◦

    プロジェクト全体の進行に責任を負う ◦ ユーザー体験を設計し製品要求仕様を定義する ◦ 開発、デザイン、セールス、品質保証、サポートなどと連携し、 仕様の実現に尽力する ◦ ローンチ後もプロダクト面から成長戦略を考え実行する ◦ 進捗管理、部門間調整、チームビルディングなど • 思考軸 ◦ Why (なぜ作るのか) ◦ What (Why を解決するために、なにをつくるのか) ◦ When (What をいつまでに完成させるのか)
  7. #BoldChallenge 18 Tech Lead (TL) • 主な役割 ◦ PMの良き相談相手となりプロダクトを成功に導く ◦

    プロジェクトの技術的進行の責任を負う (工数見積もりなど) ◦ 高い設計能力・実装能力によって開発をリードする ◦ 実装技術の選定、技術ディレクション ◦ コードレビューなどチーム開発におけるコードの品質を高め維持する ◦ メンター役としてチームメンバーをサポートする ◦ 設計、技術選定、品質管理、エンジニア育成、進捗管理など • 思考軸 ◦ What (なにを作るのか) ◦ How (What を作るにあたり、どのようにつくるのか) ◦ When (How を用いたとき、いつ出来上がるのか)
  8. #BoldChallenge 19 Engineering Manager (EM) • 主な役割 ◦ 強いエンジニアチームを作り育てる ◦

    イノベーションを起こすための環境構築や、 クリエイティブな発想を生む文化醸成 ◦ メンバーのモチベーションマネジメント、キャリア構築支援 ◦ 全社目線で複数のプロジェクトを俯瞰的に見ながらのアサイン ◦ 実装技術の選定、技術ディレクション ◦ 人事考課、チームビルディング、部門間調整、進捗管理など • 思考軸 ◦ Who (だれが働くのか) ◦ Where (Who がどのチームに所属するのか) ◦ How (Who を Where で、どのやってパフォームさせるか)
  9. #BoldChallenge 21 期日決まっているのに仕様が決まらない問題 • 新規開発あるあるのひとつ • 4つの Milestone を設定し、Waterfall 的な思考に意識を振った。

    それぞれの Milestone に明確な成果物を設定している。 ◦ Requirements Acceptance ◦ Spec Freeze ◦ Code Complete ◦ Release Candidate
  10. #BoldChallenge 22 Microservices 間の連携調整に忙殺される問題 • 同時多発的に開発を進めたため、Microservice でも依存関係が多発 • Developer MTG

    という全体進捗を中心にした会議体を設置 ◦ 現在も内容を変えながら、継続中 • 依存度の大きさによる開発ポリシーを設定 ◦ Quality と Agility の両立 ◦ 要件元、要件先の責任範囲整理 ◦ 工数がバッティングした場合のエスカレーションフロー整備
  11. #BoldChallenge 23 Project Management のボールが落ちがち問題 • PM-TL-EM 体制では Project Management

    の責任者が明確ではない。 • Project Owner (PJO) の役割を置き、明確化した。 ◦ PJO は、PM or TL が就くことが多い。 • Phase によってリードする人が、変わることがある。 ◦ Spec Freeze までは PM/Designerがリードし、 そこから先は Engineer がリードすることが多い。
  12. #BoldChallenge 24 体制運用にあたり不満や、問題の発生 • 期日決まっているのに仕様が決まらない問題 • Microservices 間の連携調整に忙殺される問題 • Project

    Management のボールが落ちがち問題 • etc... ひとつひとつ丁寧に解決して、いまがある。 そして、解決してもよりよい方法を探っている。
  13. #BoldChallenge 27 まずはメルペイで EM になった人の経路 Tech Lead から EM になった

    Product Owner から EM になった EM として採用 Software Engineer から EM になった Expert 職 から EM になった 元々メルカリの EM だった
  14. #BoldChallenge 28 まずはメルペイで EM になった人の経路 Tech Lead から EM になった

    Product Owner から EM になった EM として採用 Software Engineer から EM になった Expert 職 から EM になった 元々メルカリの EM だった
  15. #BoldChallenge 29 実際に普段行っている業務 • 自チームのマネジメント (Merpay Backend 3) ◦ 1on1、目標設定、評価、雑談/相談、etc.

    • Engineering 組織全体 ◦ 活性化施策の企画/実施/運用 ◦ インターン、新卒採用担当 ◦ イベント企画立案/登壇 • Backend Engineer 特化 ◦ チーム編成や、エンジニアの適材適所 ◦ チームを横断した人員計画 ◦ 採用に用いる技術課題の開発支援/運用
  16. #BoldChallenge 31 プログラミングできる、できない • EM のスタンスによるので、 Case by Case になる。

    ◦ TL を兼務している場合、コードを書いている場合が多い。 • 私の場合は、業務ではコードを書いていない。 ◦ マネジメントしているメンバー数が多い。 ◦ TPM 兼務の為、MTG 数が多くまとまった時間が取りにくい。 ◦ 自分自身が業務のブロッカーになる可能性を嫌った。 • ただし、勘を持ち続ける為に ◦ Software Design への寄稿など、表現する手段が変わった。 ◦ プライベートなどで、コードを書く時間が増やした。 ▪ とはいえ、コーディングスピードは 1/3 程度まで落ちた。
  17. #BoldChallenge 32 マネジメントをやろうと思ったきっかけ • マネジメントにも興味はあった。 ◦ 人に興味があり、若手エンジニアの育成が得意分野であった。 • もちろん ◦

    コード書くのは好き。 ◦ プロダクトを作るのも好き。 • とはいえ・・・ ◦ メルペイというプロダクトを成功させることに対して、 いままで同じような行動だけでいいのか、漠然と不安があった。
  18. #BoldChallenge 34 Engineering Manager の醍醐味 • マネジメントという新しい領域へのチャレンジの楽しさ。 • ひとりだけでは出せない成果をチームで達成する。 •

    経営層と近くなり扱う情報量が多くなる。 • 行動がいい意味でもわるい意味でも影響範囲が広がる。 結果的にだが All for One な精神が、 行動として表れた。
  19. #BoldChallenge 37 Technical Program Manager (TPM) ってなに? • 健全な事業推進が行えるよう、技術面からリードするのがミッション。 •

    メルペイでの定義では、職位ではなく役割という立ち位置である。 • 主な役割としては、 ◦ 事業部単位での事業計画策定 ◦ 事業部単位でのプロダクトロードマップの策定 ◦ 事業部単位でのプロジェクトの進捗管理 ◦ 事業部単位での人員計画策定
  20. #BoldChallenge 38 なぜ、TPM が生まれたのか • 事業部ごとに Business と Product の

    Owner が明確化されているが、 Engineering の Owner が明確化されていない。 ◦ 結果、VPoE が調整する必要があり Scale しない。 • Engineering の Feasibility が欠落したまま事業計画が設定されると、 実現性の低い計画になってしまう恐れがある。 ◦ 結果、開発の期日設定が Logical に行われていない。
  21. #BoldChallenge 39 TPM をやるにあたり、心がけていること • TPM は役割自体が定まっていないので、Give & Give の精神でやる。

    • すべての職能に対するリスペクトと壁を作らないコミュニケーション。 • キーマンから率先して巻き込んでいく。 • 本当にこの役割は必要なのかを定期的にネガティブチェックを行う。 • まずは、事例を作り再現性をつくる。 まだまだやれることが、盛り沢山な環境 実際 TPM が出来てから2ヶ月半しか経っていない