チームトポロジー
ソフトウェア開発組織のチーム構造を 4 つの基本型と 3 つのインタラクションモードで設計するフレームワーク
組織DevOps
チームトポロジーとは
チームトポロジーは、Matthew Skelton と Manuel Pais が 2019 年に提唱したフレームワークで、ソフトウェア開発組織のチーム構造を 4 つの基本型と 3 つのインタラクションモードで設計する。コンウェイの法則を意図的に活用する。
4 つのチーム型
| チーム型 | 説明 | 例 |
|---|---|---|
| Stream-aligned | ビジネス価値を継続的に届ける | 注文チーム、決済チーム |
| Enabling | 他チームの能力向上を支援 | SRE、セキュリティ |
| Complicated Subsystem | 専門知識が必要な領域を担当 | ML、暗号化 |
| Platform | 内部プラットフォームを提供 | CI/CD、インフラ |
3 つのインタラクションモード
| モード | 説明 |
|---|---|
| Collaboration | 2 チームが密に協力 (一時的) |
| X-as-a-Service | プラットフォームをサービスとして提供 |
| Facilitating | Enabling チームが支援・指導 |
コンウェイの法則
「組織の構造がシステムの構造を決定する」
❌ 意図しないコンウェイの法則:
フロントチーム + バックエンドチーム + DB チーム
→ 3 層アーキテクチャが固定化
✅ 逆コンウェイ戦略:
望ましいアーキテクチャに合わせてチームを設計
注文チーム (フルスタック) → 注文マイクロサービス
決済チーム (フルスタック) → 決済マイクロサービス
認知負荷とチームサイズ
チームが担当するサービスの数と複雑さは、チームの認知負荷の上限内に収める必要がある。認知負荷にはタスク自体の複雑さ (内在的)、ツールやプロセスの複雑さ (外在的)、ドメインの複雑さ (本質的) の 3 種類がある。外在的な認知負荷を Platform チームが吸収し、Stream-aligned チームがドメインの本質的な複雑さに集中できる構造が理想だ。チームサイズは 5〜9 人 (ダンバー数の下位グループ) が目安。
Platform チームの役割
Platform チームは CI/CD パイプライン、IaC テンプレート、監視基盤、セキュリティ基盤などを内部サービスとして提供する。Stream-aligned チームはこれらを X-as-a-Service モードで利用し、ビジネスロジックに集中する。Platform チームの成果物は「使いやすい内部プロダクト」であり、Stream-aligned チームが顧客だ。
チームトポロジーの進化
チーム構造は固定ではなく、組織の成長に合わせて進化させる。初期は 1 チームで全てを担当し、成長に応じて Stream-aligned チームを分割する。
チームトポロジーの関連書籍も参考になる。