LoginSignup
8
0

チームトポロジーを簡単にまとめてみた

Last updated at Posted at 2023-06-02

はじめに

マネージメント経験のないエンジニアが
社内勉強会用にチームトポロジーを読んで簡単にまとめたものです

かみ砕いてまとめているため、主観が入っている可能性があります
正しい情報は以下の書籍をご確認ください

チームトポロジーとは?

近年、システムは複雑化して、大規模になっている
そんな世の中においても
ユーザに対して「素早く」「頻繁に」「安定的に」価値を届けたい点は妥協したくない
この

ユーザに対して「素早く」「頻繁に」「安定的に」価値を届けたい

に焦点を当てた組織を作るためのテンプレート・パターンのことをチームトポロジーと呼ぶ
具体的にはチームの種類とチーム間コミュニケーションの種類があり、その組み合わせで表現する
また、最適解はなく、サービスの規模やフェーズ、
様々な要因によって最適を模索して、各組織の状態によって変化させていく必要がある

コンウェイの法則と逆コンウェイ戦略

チームトポロジーが生まれる要因となったものが、コンウェイの法則みたい

コンウェイの法則

チームをスキルによって分断すると、
ユーザに価値を届けるまでに登場するチームが多くなって、
コミュニケーションが増加、ユーザに価値を届けるのが遅くなるよねってことらしい

逆コンウェイ戦略

コンウェイの法則から、コミュニケーションを小さく、チーム内に閉じさせれば、
ユーザに価値を早く届けれるよねっていう戦略
つまり、マイクロサービス化することになる
この戦略のチームがチームトポロジーの核となるチームになっている

チームファースト思考

そのままの意味、重要そうなものを抜粋

  • チームは信頼関係のある5人程度で作成する
    (信頼関係を築くために時間がかかるため、解散はしない、変化はゆっくり)
  • 1チーム・1ドメイン
    (チームの認知負荷、ソフトウェアの境界)
  • チーム間コミュニケーションはチームAPIを定義する
    https://github.com/TeamTopologies/Team-API-template

チームの種類

4種類あり、1つの主人公的チームとその他のサポートチーム(なのでいなくても良い)で構成される

図示できることが重要なのですが、今回は書いていません
参考文献の30分で分かった気になるチームトポロジー 31p を参照してください

ストリームアラインドチーム

1チームでユーザに価値を届ける
中心となるチームで、他チームはこのチームのためにある
逆コンウェイ戦略のチーム

プラットフォームチーム

ストリームアラインドチームの負荷を下げるために内部サービスを提供する
(個人的なイメージ : インフラ、モバイル)

イネイブリングチーム

他のチームが新しい技術を取り入れるのを支援する
(個人的なイメージ : SRE)

コンプリケイテッド・サブシステムチーム

特殊なスキルを必要とするサブシステムを提供する
(個人的なイメージ : アルゴリズム、データ)

チーム間コミュニケーションの種類

3種類で構成される

図示できることが重要なのですが、今回は書いていません
参考文献の30分で分かった気になるチームトポロジー 36p を参照してください

コラボレーション

他チームと協力して作業する

  • チーム間の境界が曖昧
  • コラボレーション先のチームについても知らないといけないため、認知負荷があがる
  • コミュニケーションは増えるため、生産性は下がるかも
  • イノベーションがおきるかも

X-as-a-Service

他チームのサービスを利用する

  • チーム間の境界が明確
  • X-as-a-Serviceとして利用できているということはマイクロサービス化されているため、組織がチームトポロジーとして成熟するほど多くなるはず

ファシリテーション

他チームを先導する

  • ストリームアラインドチームへの技術導入、障害解決支援、etc..
  • スペシャリストが必要

感想

  • 可視化できるメリットは相当大きい
    チームトポロジーとして組織を構成していなくても、当てはめて可視化してみるのは良いと思った
    • 共通認識ができる
    • 現在の組織状態が見える
    • 現在の組織構成と移行したい組織構成差分が見える
  • 大規模組織向けかなと感じた
    ユーザに対して「素早く」「頻繁に」「安定的に」価値が届けられなくなった、なりそうな段階で導入を考えるのが良さそう、最初から導入すると人的リソースが足りなくて、チームファースト思考が疎かになる
  • モバイルはどうすべきか難しいと感じた
    組織の大きさ、人的リソースによって、ストリームアラインドチームに入れるか、プラットフォームとして独立させるか、両方か、どう構成するか組織の色が色濃く出そう(最適解はないので、チームトポロジーを当てはめない選択肢もある)
  • エンジニアは何となく知っているだけで、視野が広くなりそう、ただし、チームトポロジー自体が認知負荷とも言えそうなので知らなくてもOK

参考文献

8
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
0