Team Topologies - это фреймворк, предложенный Мэтью Скелтоном и Мануэлем Пайс в одноимённой книге. Он отвечает на простой, но серьёзный вопрос: как правильно организовать команды, чтобы они быстро, слаженно и эффективно создавали цифровые продукты.
В основе лежит идея: команды - это не просто «группы людей с Jira», а модули в системе разработки, такие же важные, как микросервисы в архитектуре. У каждой команды есть своя роль, область ответственности и тип взаимодействия с другими.
Модель описывает четыре базовых типа команд, которые нужны для здоровой и масштабируемой разработки:
1. Stream-aligned team - команда, заточенная под поток ценности. Она работает на конкретную пользовательскую задачу или продуктовый поток: например, «регистрация пользователя» или «личный кабинет».
2. Enabling team - помогает другим командам становиться лучше. Это эксперты, которые приходят, учат, налаживают практики и уходят, не становясь бутылочным горлышком.
3. Complicated subsystem team - берёт на себя сложные и специализированные области, которые требуют глубоких знаний, например, работа с машинным обучением или аудио-кодеками.
4. Platform team - создаёт внутренние платформы, которые упрощают работу другим командам. Это как продукт, только для разработчиков внутри компании. Инфраструктура, CI/CD, логирование - всё сюда.
Важно: одна команда = один тип. Не надо пытаться совмещать платформу, продукт и обучение в одном юните - это приведёт к хаосу.
Кроме ролей, Team Topologies чётко описывает, как команды должны взаимодействовать друг с другом. И тут есть всего три допустимых типа:
Collaboration - временная совместная работа над задачей. Например, платформа и продукт вместе делают SDK. Это нормальная история, но не на постоянку - иначе начинаются конфликты и двойное управление.
X-as-a-Service - одна команда предоставляет сервис, другая - потребляет. Платформа предоставляет логирование, продуктовая команда просто использует.
Facilitating - одна команда (обычно enabling) помогает другой развить скиллы, процессы или внедрить практику, например, перейти на автоматизированное тестирование.
Все остальные способы общения - «мы переписываемся в чатике без понятного SLA» - считаются вредными и подлежащими пересмотру.
Team Topologies - это ответ на рост. Когда вы - стартап на 5 человек, всё и так понятно. Но как только команд становится больше двух, а продукт растёт - начинается расползание ответственности, дублирование функций и зависания задач «на согласовании».
Эта модель особенно полезна для:
Первое, что стоит сделать - выписать все команды и честно описать:
Затем - определить тип каждой команды. Если команда одновременно делает UI, пишет инфраструктуру и консультирует других - скорее всего, вы перегрузили её задачами.
После этого можно пересобрать взаимодействие: ограничить кросс-функциональные общения, ввести понятные SLA и переформатировать «хаотичные» взаимодействия в один из трёх допустимых форматов.
Полезно также отрисовать карты взаимодействий: как именно одна команда зависит от другой, где возникают узкие места. Это визуально покажет, почему один релиз зависает на 2 недели, хотя «все всё делают».
По сути, Team Topologies - это как хорошая микросервисная архитектура, только для людей. У каждого сервиса (команды) есть зона ответственности, интерфейс и способ коммуникации. Нет чёткости - появляется хаос.