はじめに
最近日本でもPlatform Engineeringの注目度が上がっています(本ブログでもPlatform Engineeringについて何度か取り上げさせていただいています)。 それにともない「Platform Teamとは?」「その役割は?」といったことも注目されています。
Platform TeamについてはTeam Topologies でもその位置付けを定義しています(Team Topologiesに関しても本ブログで何度かとりあげさせていただいています)。この両者はチームがどうあるべきかという点で非常に親和性が高いものとなっています。
今回はあらためてTeam Topologiesを通じてPlatform Teamの役割等について確認してみたいと思います。
Team TopologiesにおけるTeamの種類
4つのチームタイプ
Team Topologiesでは組織内のTeamの役割について以下の4つに分類しています。
種別 | 内容 |
---|---|
Stream aligned team | なるべくそのチームだけですばやく安全に顧客やユーザーに価値を届けられるように、価値のある単一の仕事のストリームに沿って働く、組織の根幹となるチームタイプ。モダンなソフトウェア組織ではほとんどのチームがStream aligned teamとなる。 |
Enabling team | 特定のテクニカルドメインのスペシャリストから構成され、主にStream aligned teamがその時点で持っていない必要な能力を獲得するのを助ける。 |
Platform Team | 内部サービスを提供することで、Stream aligned teamが下位のサービスを開発する必要性をなくし、自律的に仕事を届けられるようにすることでStream aligned teamの認知負荷を軽減する。 |
Complicated subsystem team | システムの中で(一般的に習得や育成の難しいスキルや専門知識をもつ)スペシャリストにより、複雑なパーツを開発、保守する責任をもつ。これによりStream aligned teamの認知負荷を軽減する。ミニPlatform teamともいえる。 |
Enabling team、Complicated subsystem team、Platform teamは、提供する内容によって名称が異なっていますが、すべてに共通することは組織内の他のチームに価値を届けるということです。つまりこれらのチームの顧客は組織内の他のチーム(主にStream aligned team)です。
Platform EngineeringにおけるPlatform Teamとは概ねTeam TopologiesのPlatform Teamの定義と同じものになると考えています。
Stream aligned teamと違うものなのか?
顧客やユーザーに価値を届けることがStream aligned teamの目的であると考えるならば、Enabling team、Complicated subsystem team、Platform teamという3つのチームタイプも、実は組織内の他のチームを顧客にしているStream aligned teamとも言えると思います。
外部顧客同様に提供側の論理でそれぞれのサービス利用を強制すれば当然顧客である開発者などから用意したPlatformが利用されなくなります。すべえてのチームがそれぞれの顧客/ユーザーが必要とするものを必要なタイミングで届けなければなりません。(この点がPlatform teamが「Platform as a Product」を実践しなければならないということにつながります)。
そう考えるとSteam aligned teamとそれ以外の3つのチームタイプでは実はそれほどやるべきとは変わらないともいうことができると思います。
Platform teamは1つだけ?
Platform teamはその領域が非常に広範囲になるなと感じられることもあると思います。 Stream aligned teamでDevOpsすべての領域を実践できなかったように、こうした広範囲の価値を少数のPlatform teamのメンバーで提供することはできません。図に示したように、例えばCICDやSecurityといったように特定分野の価値を提供するチームが複数あってもよいのです。こうしたことからTeam TopologiesでもPlatformを取り扱う役割に関してはPlatform Groupと表現するようになってきています。
まとめ
Team TopologiesのPlatform teamの定義をあらためて見直してみました。 これまではPlatform team(や他のチームタイプ)はなにか特別なもののように感じていたかもしれませんが、実はなんら特別なものではないということが見えてきたのではないでしょうか。 今「Platform team」に所属している方はぜひ自分たちの顧客はだれなのか、その顧客は何をもとめているのかを考え直してみてはいかがでしょうか。
さいごに
私達ACS事業部はAzure・AKSなどのクラウドネイティブ技術を活用した内製化のご支援をしております。 Team Topologiesもこうした内製化支援の一部です。ご興味持っていただけましたらぜひお声がけください。