こんにちは。さまざまな制約が緩和された久しぶりのゴールデンウイーク、みなさんいかがお過ごしでしたでしょうか。
せっかくの休暇でリフレッシュした気分を、長く継続するためにもチーム間コミュニケーションというのはとても大切です。そうした様々なチーム・組織設計、チーム間コミュニケーションの手法をまとめたものがチームトポロジー(Team Topologies)です。本ブログでもこれまでに何度かTeam Topologiesを取り上げさせていただいているのも、そうした重要性を反映した結果でもあります。
このようなTeam TopologiesのツールのひとつにTeam APIがあります。
これは、たとえばあるチームが他のチームに対してなんらかのサービスを提供する場合に、自らのチームがどういったサービスをどういった形で提供するか、他のチームが連絡や支援を期待する場合にどのようにコンタクトすればいいいかを規定するものです。
Team APIの代表的な内容はTeam Topologies社のGitHubで公開されています。
チームAPIは以下のような内容を定義・記載します。
- チーム名や何にフォーカスしているか
- 他のチームにサービスを提供しているかどうか、提供している場合はその内容
- 他のチームにサービスを提供する際のサービスレベル期待値
- 自チームが所有し進化させているソフトウェアの内容
- バージョニングアプローチ(どのようなバージョニングを行っているか)
- コンタクトする際のチャットルームID
- コンタクトする際の、定期ミーティング予定(可能な時間帯)
- 直近で取り組んでいる内容やロードマップ
こうした内容をチーム内で定義するだけではなく、他のチームからも参照できるようにすることで、事前に知り得る情報が共有され、チーム間のコミュニケーションがより簡潔になると思います。
さて、APIといえばソフトウェア開発の方法論のひとつに「Design by Contract」というものがありますが、
Team APIはチーム間コミュニケーションにおける「Design by Contract」
と考えてもよいのではないでしょうか。チーム間コミュニケーションはソフトウェアのように画一的なものではないため、ソフトウェアのそれとはまったく同じというわけにはいきません。しかしTeam APIを定義しそれを共有することで、チーム間の「義務と利益」がクリアになり、両者が比較的心地よくコミュニケーションできるようになることが期待できます。
チームはつくられているけれど、チームのルールや約束事、チームが提供するもののロードマップなどを他チームと共有しているところはまだまだ少ないのでは無いでしょうか。今後チーム間連携が全体成長の鍵となってくると思いますので、Team APIを活用することをお勧めいたします。