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

実践チームトポロジー: プラットフォーム性とイネイブリング性の戦略 / Practical T...

実践チームトポロジー: プラットフォーム性とイネイブリング性の戦略 / Practical Team Topologies in Timee

タイミーでは顧客に素早く、継続的に価値を届けられるエンジニアリング組織であるためにチームトポロジーをベースにした組織設計と運営を行なっております。
いかにプロダクトチームが素早くかつ安定して価値提供できる状態を作るか、プラットフォーム性とイネイブリング性をどのように使い分けて組織を強化しているか、SREやQA、スクラム開発の推進、エンジニアの「進化」に特化したDevEnableチームの取り組みなども例に含めてお話しさせていただきます。本セッションがチームの強化と改善の一助になれば幸いです。

Go Akazawa

June 29, 2024
Tweet

Other Decks in Technology

Transcript

  1. 自己紹介
 赤澤 剛 @go0517go エンジニアリング本部 VP of Engineering 2 2009-2018 株式会社ワークアプリケーションズ(SWE,

    VP)  Works Applications Singapore Pte. Ltd.(SWE, VP) 2018-2020 LINE Financial株式会社(Technical PjM) 2020-2024 株式会社ユーザベース   株式会社アルファドライブ(執行役員CTO) 2024-  株式会社タイミー(VPoE) プロレス・ゲーム・アニメ・漫画・特撮ヒーローが好きです!
 「ええやん!」が仕事をする上でも口癖なので最近はVP of Eeyanといじられたりもしてます。
 2
  2. タイミーの実績 スキマ バイト No.1 ※1 ※2 [調査方法]インターネット調査 [調査期間]2024 年 2

    月 9 日~11 日 [調査概要]スキマバイトアプリサービスの実態調査 [調査 委託先]株式会社マクロミル 利用率 ・リピート率 ※1 ※2 導入事業者数 98,000企業 ワーカー数 700万人 7
  3. フロー実現の上でチームトポロジーが中心に据えたもの
 19 • コンウェイの法則
 • チームファースト
 • チームAPI
 • 4つのチームタイプ


    • 3つのインタラクションモード
 • 組織的センシング
 • トポロジー進化
 Ryuzee.com.「【資料公開】30分で分かった気になるチームトポロジー」 .https://www.ryuzee.com/contents/blog/14566,(参照2024-06-07) 19
  4. 本日特にフォーカスしてお話しする点
 20 • コンウェイの法則
 • チームファースト
 • チームAPI
 • 4つのチームタイプ


    • 3つのインタラクションモード
 • 組織的センシング
 • トポロジー進化
 Ryuzee.com.「【資料公開】30分で分かった気になるチームトポロジー」 .https://www.ryuzee.com/contents/blog/14566,(参照2024-06-07) 20
  5. 4つのチーム
 21 ストリームアラインドチーム 
 ビジネスの主な変更フロー=ストリームに沿って配置されるチーム 
 
 職能横断型であり、他のチームを待つことなく、要求探索から本番運用までのデリバリー一式を担 える。4タイプの中心となるチームで、他のチームタイプはストリームアラインドチームをいかに強化 するかを担う。


    プラットフォームチーム 
 インフラや共通的な基盤などを提供するチーム 
 
 ストリームアラインドチームが詳細を知らなくても安定的かつ高速にデリバリーを担えるようにサ ポートすることで負荷を下げる。 
 イネイブリングチーム 
 他のチームに対して新しいケイパビリティの獲得(新技術やスキルの導入)を支援する チーム
 
 特定領域のスペシャリストが主な構成メンバーで、組織においてCenter of Practiceとなる。 
 コンプリケイテッド・
 サブシステムチーム 
 複雑性が高い(高度な専門スキルやドメイン知識が必要など)サブシステムやコンポー ネントを提供するチーム
 4つのチームタイプに絞り、目的・役割・責任を明確にすることでチーム間の関係性 や組織全体の構造を認知しやすくする
 21
  6. 3つのインタラクションモード
 22 4つのチームタイプ間のコミュニケーションや連携方法を3つのインタラクションモード として定義し、チームのタイプやフェーズに応じて使い分ける
 コラボレーション
 共通の目的に対して他のチームと綿密に協力し合うモード 
 
 素早く探索や検証、そこからの学習を進める必要がある、領域の初期フェーズにおいて有効 性が高いが、責務境界面を一定に曖昧にすることで短期的生産性は落ちる。


    X-as-a-Service
 あるチームが他のチームの提供物をサービスとして利用するモード 
 
 ブラックボックスとして利用する関係性で、責任境界やオーナーシップも明確で最小限のチーム連携 になるが、相手の領域に踏み込まない力学が働くことで境界面でのイノベーションを起こりにくくする 可能性もある。
 ファシリテーション
 あるチームが他のチームに対して新技術の導入や習得をサポートするモード 
 
 組織においてCenter of Practiceを担える経験豊富なメンバーが中心となり、ティーチング・コーチン グなどを用いて学習支援や習得の支援となる障害を取り除くアクションを行う。 
 22
  7. チームトポロジーでの典型的なチーム連携
 24 ストリームアラインドチーム 
 イネイブリン グチーム
 
 
 ファシリテーショ ン


    コンプリケイテッド・サブシ ステムチーム
 X-as-a-Service
 X-as-a-Service
 プラットフォームチーム 
 24
  8. タイミーの開発組織をチームトポロジーで表すと...
   マッチングTribe
   (ストリームアラインドチームの集合)
   スポットワークシステムTribe
   (ストリームアラインドチームの集合)
 
 
 QA&
 Process Enabling

    チーム
 (イネイブリング 
 チーム)
 
 
 開発プラットフォームTribe
 (プラットフォームチーム)
 ファシリテー ション
 コラボレーション
 ファシリテー ション
 X-as-a-Service
 X-as-a-Service
 SAチーム間のインタラクション 
 
 ユーザージャーニーに基づくSAチームは機能 領域においてAPIを提供し、X-as-a-Serviceと して振る舞い、時に共通の顧客価値のために コラボレーションして開発する 
 開発プラットフォームTribe 
 
 組織の初期段階ではコラボレーション型で強く 連携し開発を進めていたが、組織の段階的な 成熟により、X-as-a-Servide型に徐々に移行 中
 イネイブリングチームの振る舞い 
 
 特定の専門領域においてCenter of Practiceと して主にファシリテーション型でSAチームと関 わるが、新しい技術や知見の導入時には意図 的にコラボレーション型を用いて深く関与し進 行する
 (SAチームへのEmbed) 
 26
  9. チームの実例 - マッチングTribe
 29 PO/PdM 
 SM
 EM
 Designer 


    Work Well Squad Engineer Members 
 PO/PdM 
 SM
 EM
 Designer 
 Working Relations Squad Engineer Members 
 Other Squad Other Squad Tribeの内部にバリューストリームによってさらに分割されたSquadが内包されている
 29
  10. SAチームでの新たなケイパビリティを獲得するための手段例
 33 • 採用
 • (一時的な)外部人材の知見
 • 組織内での人材アロケーション
 • チームメンバーの成長と挑戦(育成・自己学習・新領域への挑戦)


    • イネイブリングチームによる学習サポート
 • プラットフォームチームやコンプリケイテッド・サブシステムチームによる サービス提供
 33
  11. プロダクトエンジニアの定義 β版 in タイミー 34 お客様の課題解決のために専門領域や役割を広げる越境性を 持ってプロダクトの成長に取り組むエンジニア
 
 「越境性を持つ」の意図
 


    - チームの責務領域やAPIを明確にするからこそ、境界面での連携やイノベーションが鈍化した り、ボールが落ちることを防ぐために適切にオーバーラップして進行する 
 
 - 自身が越境する側だけでなく、越境して自チームと連携してくれるチームやメンバーを歓迎し、 適切なインタラクションで課題解決を加速できる 
 34
  12. プロダクトエンジニアは高い専門性の追求の否定では一切ない プロダクトエンジニア ≠ フルスタックエンジニア
 プロダクトエンジニア ≠ フルサイクルエンジニア
 
 
 プロダクトエンジニアとは、全員に個のエンジニアとしてフルスタック性やフルサイクル性を要求するも

    のではない(1つの形としてもちろんそれらも歓迎する) 
 フルサイクル性をもつべきはストリームアラインドチームであり、個の強みや尖りを重ねてチームを強 固にする
 
 特定領域への高い専門性や専任性も明確にプロダクトエンジニアのあり方であり、等しく大歓迎! (そもそも特定領域への専門性の高まりが隣接領域の知見を引き上げ、越境可能性を加速するとも 言える)
 35 35
  13. タイミーの開発組織をチームトポロジーで表すと...
   マッチングTribe
   (ストリームアラインドチームの集合)
   スポットワークシステムTribe
   (ストリームアラインドチームの集合)
 
 
 QA&
 Process Enabling

    チーム
 (イネイブリング 
 チーム)
 
 
 開発プラットフォームTribe
 (プラットフォームチーム)
 ファシリテー ション
 コラボレーション
 ファシリテー ション
 X-as-a-Service
 X-as-a-Service
 SAチーム間のインタラクション 
 
 ユーザージャーニーに基づくSAチームは機能 領域においてAPIを提供し、X-as-a-Serviceと して振る舞い、時に共通の顧客価値のために コラボレーションして開発する 
 開発プラットフォームTribe 
 
 組織の初期段階ではコラボレーション型で強く 連携し開発を進めていたが、組織の段階的な 成熟により、X-as-a-Servide型に移行している 
 イネイブリングチームの振る舞い 
 
 特定の専門領域においてCenter of Practiceと して主にファシリテーション型でSAチームと関 わるが、新しい技術や知見の導入時には意図 的にコラボレーション型を用いて深く関与し進 行する
 (SAチームへのEmbed) 
 39
  14. タイミーでの代表的なプラットフォーム及びイネイブリングチーム
 40 • Agile Practiceチーム
 ◦ Process Enabling = 適応型開発の推進

    
 
 • QA Enablingチーム
 
 • Dev Platformチーム
 ◦ Platform Engineering
 ◦ Enabling Site Reliability Engineering 
 
 • Dev Enableチーム
 ◦ 学習文化の推進
 ◦ エンジニアがエンジニアリングに集中するための環境と制度の提供 
 40
  15. チームタイプ別の主なインタラクションモード
 42 コラボレーション X-as-a-Service ファシリテーション ストリームアラインド チーム 典型的 典型的 偶発的

    イネイブリングチーム 偶発的 典型的 コンプリケイテッド・サブ システムチーム 偶発的 典型的 プラットフォームチーム 偶発的 典型的 42
  16. タイミーでの代表的なプラットフォーム及びイネイブリングチーム
 45 • Agile Practiceチーム
 ◦ Process Enabling = 適応型開発の推進

    
 
 • QA Enablingチーム
 
 • Dev Platformチーム
 ◦ Platform Engineering
 ◦ Enabling Site Reliability Engineering 
 
 • Dev Enableチーム
 ◦ 学習文化の推進
 ◦ エンジニアがエンジニアリングに集中するための環境と制度の提供 
 45
  17. Agile Practiceチームの例 タイミーのプロダクト開発組織には、適応型な開発を行える組織作りを推進するための専門チーム 「Agile Practiceチーム」を組成しています。 
 
 アジャイル開発のCenter of Practiceを担い、SAチームの成熟課程の初期では専任のスクラムマス

    ターとしてストリームアラインドチームにEmbedする形で内部からリードします。 
 PO/P dM
 SM
 EM
 Desig ner
 SAチーム Engineer Members 
 Agile Practiceチーム 専任スクラムマスター
 としてEmbed
 47
  18. Agile Practiceチームの例 組織全体の成長や成熟の過程で段階的にインタラクションモードを変化させている
 
 • SAチームによっては専任スクラムマスターとして関与しているチームに加え、SAチーム内のエンジニ アまたはEMがスクラムマスターを担い、ファシリテーションモードで連携するパターンにも遷移してい る。
 
 •

    SPACEフレームワークを用いて多角的に生産性を計測するためのダッシュボードを提供するなどプ ラットフォーム性も担い、X-as-a-Serviceとしての振る舞いの割合も増えている。(現在まさに取り組 みとしてトライアル進行中!)
 SAチーム
 Agile Practice チーム
 コラボレー ション
 SAチーム
 Agile Practice チーム
 SAチーム
 ファシリテー ション
 Agile Practice チーム
 48
  19. タイミーでの代表的なプラットフォーム及びイネイブリングチーム
 49 • Agile Practiceチーム
 ◦ Process Enabling = 適応型開発の推進

    
 
 • QA Enablingチーム
 
 • Dev Platformチーム
 ◦ Platform Engineering
 ◦ Enabling Site Reliability Engineering 
 
 • Dev Enableチーム
 ◦ 学習文化の推進
 ◦ エンジニアがエンジニアリングに集中するための環境と制度の提供 
 49
  20. QA Enablingチームのケース プラットフォーム性
 • 品質分析(観点カバレッジやDDPモニタリングなど)の実施障害分析
 • SET Infra の提供
 •

    SET ライブラリの開発など
 
 イネイブリング性
 • SET Infra やライブラリの利用浸透
 • インプロセスQA
 • QAコーチ
 50
  21. タイミーでの代表的なプラットフォーム及びイネイブリングチーム
 53 • Agile Practiceチーム
 ◦ Process Enabling = 適応型開発の推進

    
 
 • QA Enablingチーム
 
 • Dev Platformチーム
 ◦ Platform Engineering
 ◦ Enabling Site Reliability Engineering 
 
 • Dev Enableチーム
 ◦ 学習文化の推進
 ◦ エンジニアがエンジニアリングに集中するための環境と制度の提供 
 53
  22. Dev Platformチームでのプラットフォーム性の例 Release Engineering
 より素早く安全に機能をDeliveryでき、SAチームが自身で変更可能なCI/CD Pipelineを提供
 SLI/SLO Metrics
 SAチームがSLI/SLOを運用、メンテナンスできる仕組み(SLIの設定インターフェース、Dashboardなど)を提供 


    IaC
 SAチームがコード(with Terraform/)で宣言的に定義するだけでインフラの開発運用をソフトウェアエン ジニアリングできるIaC基盤を提供
 Monitoring/Log
 SAチームが自律的にObservability、アラート/モニタリングを向上できるようなPrimal Signal/Golden Signal収集基盤を提供
 プラットフォーム性(Platform Engineerning)
 54
  23. Dev Platformチームでのイネイブリング性の例 SLI/SLO
 信頼性指標を観測可能(定義・収集)にしSAチームが自らリライアビリティとアジリティに対して DataDrivenな判断や議論を行えるようにSLOの定義などをガイド
 Monitoring/Alert
 ユーザー体験を損なう原因となっている項目に対するモニタリングを、SAチームがAPMなどを含め追加できる (USE/REDなどのフレームワークを利用する)状態をリード 
 Incident

    Response
 SAチームがユーザー影響、データ欠損などの事象に対する緊急対応を自律的に行え、コマンダーとし ての役割も全うすることができる状態をリード
 Capacity Planning
 SAチームがメトリクスを元にシステム需要などを予測しコンピューティングリソースの追加を行うことがで きる状態をリード
 Eliminating Toil
 SAチームがトイルの定義に基づいてトイルを発見することができる状態をリード
 イネイブリング性(Enabling Site Reliability Engineering)
 55
  24. タイミーでの代表的なプラットフォーム及びイネイブリングチーム
 56 • Agile Practiceチーム
 ◦ Process Enabling = 適応型開発の推進

    
 
 • QA Enablingチーム
 
 • Dev Platformチーム
 ◦ Platform Engineering
 ◦ Enabling Site Reliability Engineering 
 
 • Dev Enableチーム
 ◦ 学習文化の推進
 ◦ エンジニアがエンジニアリングに集中するための環境と制度の提供 
 56
  25. タイミーでのチームトポロジー実践例のポイント 59 
 • ストリームアラインドチーム足りうるために不足ケイパビリティの自己診断や獲得をプロダクトエ ンジニア的な考え方やEMやSMの役割で継続強化している 
 
 • 唯一絶対の静的なチーム構造やインタラクションで固定せず、ビジネスの状況やチームの成熟

    状況に応じてインタラクションモードだけでなくチームタイプも変える(プラットフォーム性とイネイ ブリング性)
 
 • プラットフォームチームとイネイブリングチームでは初手からX-as-a-Serviceやファシリテーショ ン的な振る舞いを綺麗に行おうとせず、コラボレーションモードを意図的に用いてSAチームに深 く関与(Embed)し、課題の把握と解決を担う 
 ケイパビリティとリソースの話、他チームから見た時のSAチームのケイパビリティと課題の把握、今日深掘らなかったコンウェイや境界面の 話はまたどこかでお話しできれば...ご興味ある方は会場や懇親会、SNSなどで気軽に話しかけてください!
 59