はじめに
チームトポロジー本を読んで、チーム API について知ったので、チーム API でどんなことを書いた方が良いかなというのを考えてみたメモ。 また思いついたら追加削除を更新するかもしれない。
チーム API ?
そのチームが扱うさまざまなものを API という形で定義すること。 書籍では以下のようなものが挙げられていました。
- コード: チームが開発しているシステムのエンドポイントやライブラリ、UI など
- バージョン管理
- Wiki/ドキュメンテーション: チームがオーナーシップをもつソフトウェアのHowTo
- プラクティス: チームが好む働き方
- コミュニケーション: チームへのアプローチ方法。チャットツールやオンライン会議ツールなど。
- 仕事に関する情報: チームが取り組んでいること
- その他: このチームが他のチームとやりとりするために必要なものはなんでも
チームAPI (Platform)
「API」となるとなかなかプログラマブルなことを思い浮かべてしまい、Team Topologies の GitHub Organization を見るとこういったもの*1があり、yml とかでカッコよくコードとして管理して...とか思ってしまいつつ、難しく考えずにまずはテキストベースにした。
このチーム名: ex) platform team, infra team このチームがやっていること: ex) xxx サービスのインフラの管理 このチームが管理しているコード: ex) github.com/xxx/yyy このチームへのコミュニケーションパス: ex) slack: #xxx, #yyy, Zoom このチームの管理するドキュメントの場所: ex) wiki , github の README.md のリンク このチームのタスク管理: ex) GitHub Issue, その他BTSのリンク このチームとやりとりがあるチーム: ex) チームA, チームB... このチームの定例ミーティングの時間: ex) 10:30-10:45, 17:45-18:00
まとめ
同じ組織でもチームによって微妙にやり方や使っているツールなどが異なっていて、それが見えなかったりする部分も多いので、こういうのをドキュメント化するのは良いなと思った。 API というWikiなどでチーム内のドキュメントを作成しているチームは多いと思います。自分もあれこれ作ってみるものの慣れてくると頭の中で完結できることが多くなって更新が鈍化し、人の出入りがあった時に整理されることが多いけどなかなか管理が難しい。