19 апреля 2026
Закон Конвея работает в обе стороны: структура команд отражается в архитектуре, и наоборот. Если команды не выровнены с бизнес-доменами, дальнейшая оптимизация процессов и архитектуры бессмысленна - команды не могут отвечать за результат end-to-end, ответственность размывается, архитектурный долг накапливается. Team Topologies даёт язык для описания этого выравнивания через четыре типа команд и три паттерна взаимодействия. Статья разбирает цепочку «бизнес-стратегия → DDD → топология команд → архитектура» и показывает её на примере трансформации инженерной организации B2B SaaS на ~150 инженеров.
Закон Конвея работает в обе стороны
Мелвин Конвей в 1968 году сформулировал: любая организация, проектирующая систему, воспроизведёт в системе свою коммуникационную структуру. Если в компании три команды, система получится из трёх компонентов. Если команды общаются редко - между компонентами будут жёсткие интерфейсы с малым количеством обменов. Если команды слиты - компоненты получатся связанными.
Много лет Конвея цитировали как описание ограничения: мы не можем спроектировать систему, сильно отличную от структуры команд. Но в обе стороны это работает как инструмент. Если хотим получить модульную архитектуру - собираем модульно независимые команды. Если хотим распределённую систему - нужны команды с чёткими API между собой. Эта практика получила название Reverse Conway Maneuver: сначала меняем структуру команд, потом система перестраивается под неё.
Следствие для инженерной трансформации. Попытка изменить архитектуру без изменения структуры команд упирается в организационное сопротивление: новая архитектура требует новых точек ответственности, которых в старой структуре нет. Либо команды оказываются перегружены, либо изменения откатываются обратно в старую модель.
Почему команды первичнее архитектуры и процессов
Частый сценарий: инженерные лидеры видят архитектурные проблемы (дублирование, связанность, медленный deploy) и начинают чинить их на уровне кода. Пишут ADR, добавляют boundaries, запускают рефакторинг. Через полгода картина не меняется: границы размываются обратно, ADR игнорируются, дублирование возрождается в новых местах.
Причина не в квалификации инженеров. Причина структурная. Если бизнес воспринимает разработку как универсальный контейнер, в который можно закинуть любую задачу, границы не выживают. Команды декомпозируют прилетающие задачи и укладывают в backlog, но взаимного выравнивания «эта задача в эту команду, потому что эта команда отвечает за этот бизнес-сценарий и этот участок архитектуры» не происходит. Ownership размывается и бизнесово (никто не отвечает за сценарий целиком), и архитектурно (никто не отвечает за модуль целиком).
Следствие: любой архитектурный фикс живёт до первого кросс-командного проекта, где границы нужно нарушить чтобы доставить. А кросс-командных проектов в SaaS-организации постоянный поток.
Цепочка выравнивания: Бизнес → DDD → Команды → Архитектура
Центральная мысль. Выравнивание инженерной организации под бизнес - последовательность из четырёх шагов.
Шаг 1. Бизнес-стратегия. Определяются зоны value: где компания зарабатывает, какие сценарии используют клиенты, где происходит рост. Это не про «что нам кажется важным», это про карту value-streams - потоков создания ценности от события в мире клиента до денег в P&L.
Шаг 2. Domain-Driven Design. Каждый value-stream разбивается на bounded contexts - ограниченные контексты с явными моделями, термины которых имеют смысл только внутри своего контекста. Биллинг, лидогенерация, аналитика - разные контексты. Они могут использовать слово «клиент», но это разные клиенты с разными атрибутами и жизненными циклами. DDD даёт словарь и границы.
Шаг 3. Team Topologies. Каждый bounded context получает команду-владельца. Это не бумажная ответственность, а право принимать решения внутри границы и обязанность отвечать за метрики этого контекста. Team Topologies формализует какие бывают типы команд и как они взаимодействуют, чтобы структура была устойчива.
Шаг 4. Архитектура. Архитектура становится отражением предыдущих трёх шагов. Границы в коде повторяют границы доменов. Сервисы или модули монолита - implementation detail; важнее, что команда владеет своим участком end-to-end, включая код, тесты, deploy, мониторинг и SLA.
Порядок принципиален. Если начать с архитектуры (шаг 4) без первых трёх, получится красивая диаграмма, которая не совпадает с реальной структурой команд и не выживет под продуктовым давлением. Если пропустить шаг 2 и пытаться разбить команды по «фичам» без доменного мышления, команды начнут конкурировать за одни и те же сущности.
Четыре фундаментальных типа команд
Team Topologies выделяет четыре типа. Каждая команда должна быть одним из них; смешение - антипаттерн.
Stream-aligned team - команда, выровненная по потоку ценности. Владеет одним bounded context целиком: продуктовая зона, пользовательский сценарий, бизнес-функция. Это «основная» команда организации; остальные три типа существуют чтобы Stream-aligned могли работать эффективно. Состав: все компетенции для end-to-end доставки (фронт, бэк, QA, часто и DevOps). Размер 5-9 человек.
Platform team - команда, предоставляющая внутренний продукт (платформу) для Stream-aligned команд. Снимает с них cognitive load по инфраструктуре, observability, CI/CD, общим сервисам. Ключевое отличие от классической infra-команды: Platform team относится к своему результату как к продукту. Есть внутренние клиенты (Stream-aligned), документация, SLA, roadmap. Если Stream-aligned не хотят пользоваться платформой - это сигнал, что платформа плохая, а не что пользователи неправы.
Enabling team - команда, временно подключающаяся к Stream-aligned чтобы передать экспертизу и уйти. Примеры: внедрение нового стека (например, ML-компонентов в продукт), освоение новой практики (performance-инженерия, security-testing). Enabling team не становится постоянной частью delivery: её успех - когда Stream-aligned стала самодостаточной в этой области. Характерный срок работы 2-6 месяцев с одной командой.
Complicated-subsystem team - команда, владеющая технически сложной подсистемой, требующей специализированных знаний (сложные алгоритмы, кодеки, научные модели, криптография). Существует потому что включение этой подсистемы в Stream-aligned команду превышает её cognitive load. Это редкий тип; применяется когда действительно нужна глубокая экспертиза.
Три паттерна взаимодействия
Команды взаимодействуют между собой. Team Topologies описывает три паттерна.
Collaboration - тесная совместная работа на общий результат. Две команды работают как одна: общие митинги, общий код, общая ответственность. Оправдан в периодах неопределённости (новый продукт, непонятная архитектура) и на стыках. Недостаток - высокая cognitive load на обе команды, медленная доставка, размытие границ. Долго держать Collaboration нельзя.
X-as-a-Service - одна команда потребляет сервис другой команды через чёткий контракт. Stream-aligned использует сервисы Platform team как клиент использует SaaS: по документации, без звонков разработчикам. Это целевое состояние зрелой организации: минимум координации, максимум независимости. Требует развитого Platform team и хорошей документации.
Facilitating - одна команда помогает другой преодолеть препятствие. Enabling team - типичный facilitator: подключается, передаёт знания, уходит. В отличие от Collaboration здесь одна сторона явно ведёт, другая учится; отношения временные.
| Тип команды | Типичные паттерны взаимодействия |
|---|---|
| Stream-aligned | X-as-a-Service с Platform. Facilitating с Enabling (редко). Collaboration с соседними Stream-aligned на стыках. |
| Platform | X-as-a-Service со всеми пользователями. Иногда Collaboration с ключевыми Stream-aligned при проектировании новых сервисов. |
| Enabling | Facilitating по определению. |
| Complicated-subsystem | X-as-a-Service с пользователями подсистемы. |
Диагностический вопрос: если команды A и B находятся в Collaboration дольше квартала - это baseline, или мы не отстроили интерфейс между ними? Устойчивое состояние для большинства пар команд - X-as-a-Service.
Когнитивная нагрузка как ограничение
Команда из 5-9 человек может удерживать определённый объём сложности. Превышение приводит к снижению качества, росту багов, потере скорости. Team Topologies вводит эвристики мепинга нагрузки:
- Одна команда = один сложный домен. Сложный - требующий специализированного знания: биллинг, риск-скоринг, workflow-движок.
- Одна команда может вести 2-3 простых домена (без специализированных требований).
- Команда не может одновременно вести два сложных домена.
Размер команды обычно 5-9 (число Данбара для плотных коммуникаций). Больше - информация не циркулирует, появляются под-группы. Меньше - не хватает компетенций для end-to-end.
Если бизнес требует больше доменов, чем есть команд - это не приглашение «перегрузить каждую команду ещё одним доменом». Это сигнал либо нанять команду, либо сократить скоп, либо вывести домен в Platform. Попытка обойти ограничение через «команда теперь владеет четырьмя зонами» даёт фейковую команду, которая формально везде, фактически нигде.
Границы и Team API
Одна из частых ошибок - переставить людей, но не зафиксировать границы и контракты. Тогда структура существует в оргчарте, но не в работе: все по-прежнему обращаются ко всем, ownership размыт.
Team API - набор документов, фиксирующих границы команды:
- Owned areas - какими bounded contexts команда владеет; какой код, какие сервисы, какие данные.
- Inputs - что команда принимает от бизнеса и других команд (типы задач, каналы, SLA на ответ).
- Outputs - что команда производит для бизнеса и других команд (фичи, сервисы, данные).
- Interaction mode - в каком режиме работает с каждой соседней командой (Collaboration / X-as-a-Service / Facilitating).
- Ways of working - как команда принимает задачи, как планирует, как релизит.
Team API - публичный артефакт. Любая команда в организации может прочитать Team API соседней и понять, как с ней взаимодействовать. Это контракт по сути: нарушение Team API - повод для разговора между командами или tech-lead-ами.
Триггеры реорганизации
Топология команд не статична. Есть маркеры, когда пора менять структуру.
- Рост cognitive load: команды жалуются на переключение контекста, на непонимание своего скоупа, на невозможность держать в голове всю систему. Сигнал - домен дорос и делится.
- Блокирующие зависимости: задачи Stream-aligned команды регулярно стоят в ожидании другой команды. Сигнал - нужна Platform или X-as-a-Service контракт вместо адхок-обращений.
- Delivery time растёт: фичи стали проходить дольше при той же сложности. Обычно причина - накопленные cross-team handoffs.
- Рост количества cross-team ритуалов: всё больше митингов для координации, появляются «комитеты», плодятся OKR-ревью. Симптом - границы не работают, координация компенсируется через ритуалы.
- Архитектурный долг блокирует roadmap: модернизация обещается каждый квартал, не движется, бизнес перестаёт планировать долгосрочно. Обычно причина - нет команды с правом и ответственностью её вести.
Любой из маркеров - повод провести аудит через Team API и оценить, нужна ли реструктуризация. Если два и более - реструктуризация нужна почти наверняка.
Применимость по стадиям роста и AI
Стартап 5-15 инженеров. Полное разделение типов команд не имеет смысла - людей не хватит. Одна команда закрывает все роли: строит продукт, поддерживает инфраструктуру, общается с клиентами. Попытка создать Platform team из двух человек даст bottleneck, а не пользу.
Но это не значит, что Team Topologies не применим. Два действия работают даже на этой стадии:
- Отслеживать DDD-эволюцию. Фиксировать bounded contexts по мере роста продукта, даже если все владеют всем кодом. Это не про формальный документ DDD, а про понимание «вот эта часть про биллинг, эта про onboarding, эта про отчётность». Границы в голове появляются раньше границ в оргструктуре и снижают стоимость будущего разделения на команды.
- Двигаться в сторону бизнес-ожиданий. Даже без формальных Stream-aligned команд, инженеры должны видеть, какую часть value-stream они закрывают и где происходит блок. Без этого через 3-5 лет стартап получает 150 инженеров, которые по-прежнему «делают задачи из backlog», а не владеют бизнес-сценариями. Перестраиваться в этой точке дороже и болезненнее.
Рост до 30-50 инженеров. Появляется первая реальная необходимость в формальной топологии. Обычно первые два Stream-aligned команды по ключевым value-streams, и начало Platform team (1-2 человека, которые сначала совмещают с Stream-aligned ролями, потом выделяются).
AI и микрокоманды - смещение точки перехода на ранний этап. AI-агенты меняют экономику команды: 2-3 инженера с хорошей инфраструктурой контекста и агентами покрывают объём работы, для которого раньше требовалось 5-7 человек. Это позволяет формировать специализированные команды раньше - Platform team из двух человек, усиленных агентами, может давать сервис, сопоставимый с классической командой из пяти. Момент перехода от «одна команда = весь продукт» к первому разделению на Stream-aligned и Platform сдвигается от ~30 инженеров к более ранней фазе: компания на 15-20 инженерах уже может содержать два специализированных микротима по логике Team Topologies.
Но это не отменяет Team Topologies, только сдвигает сроки. Ключевой антипаттерн новой эпохи - вера, что AI делает ownership ненужным. Логика «AI помогает каждой команде понимать всё, значит можно не разделять зоны ответственности» опасна. AI эффективно работает с формализованным контекстом (код, документация, артефакты), но не компенсирует недостаток понимания реального мира: что хочет клиент, почему этот сценарий важнее того, когда компромисс допустим, а когда нет. Эти решения опираются на человеческий контекст, который не переносится в токены.
Кейс: перестройка инженерной организации B2B SaaS
Организация: около 150 инженеров, B2B SaaS. Product-engineering-tension: роста выручки требуют новых сценариев и скорости, параллельно накапливается архитектурный и платформенный долг.
Диагноз. Бизнес воспринимает разработку как универсальный контейнер, в который можно закинуть любую задачу. Границы между командами не соблюдаются: задачи распределяются по free capacity, а не по зонам ответственности. Команды честно декомпозируют прилетающее в backlog, но взаимного выравнивания бизнес ↔ инженерия не происходит. Ownership размыт и бизнесово (никто не отвечает за сценарий end-to-end), и архитектурно (никто не отвечает за модуль end-to-end). Из-за этого любые архитектурные инициативы идут волнами: стартуют с энтузиазмом, стопорятся на границе чужой команды, тихо умирают.
Решение. Выравнивание топологии по цепочке из раздела «Цепочка выравнивания».
Stream-aligned teams по продуктовым кластерам. Каждая команда - владелец одной бизнес-зоны (кластер сценариев). Формально зафиксировано, кто отвечает за какие пользовательские потоки, метрики этих потоков, технические артефакты (код, сервисы, данные). Команды получили право отказаться от задач вне своей зоны и обязанность отвечать за свою end-to-end.
Platform team с явной ответственностью за платформенный слой: CI/CD, наблюдаемость, developer experience, SLA-доступность, безопасность. До перестройки платформенные вопросы размывались между Stream-aligned командами, никто целенаправленно их не вёл. Теперь Platform - внутренний продукт с внутренними клиентами.
Governance team для формализованного процесса Technical Design Review. Цель - убрать стихийные архитектурные решения, создающие взаимные конфликты между Stream-aligned командами. TDR фиксирует: изменения, затрагивающие API, данные, производительность, безопасность или границы между кластерами, проходят через publicly-documented процесс с критериями, ролями (author, challenger, owner), форматом документа и SLA. Решения публикуются и становятся стандартом.
Enabling team для временных инициатив с передачей знаний. Запуск ML-компонентов в продукт прошёл через Enabling-формат: небольшая команда с ML-экспертизой подключалась к Stream-aligned, встраивала ML в их флоу, уходила когда Stream-aligned могла развивать эту часть самостоятельно. Без Enabling-формата пришлось бы держать постоянную ML-команду, которая быстро стала бы bottleneck для всех ML-запросов.
Результаты. Платформа получила владельца и зафиксированные SLA. Архитектурные границы начали отражать деление на бизнес-домены - без остановки продуктового трека. Архитектурный долг стал запланированным, не экстренным. Стабильность и инцидентность улучшились.
На этапе перестройки главный эффект не в цифрах, а в изменении модели работы - цифры подтягиваются позже, как результат полноценного внедрения новой структуры. Ownership перестал быть размытым понятием, которое каждый трактует по-своему. Архитектурные решения перестали возникать стихийно. Platform-обязательства перестали зависать между командами. Бизнес получил предсказуемую скорость доставки в обмен на согласование скоупа с командами-владельцами, а не на прямую отправку задач в backlog.
Частые ошибки внедрения
- Переставить людей без контрактов и границ. Новая структура в оргчарте, работа осталась старой. Люди по-прежнему обращаются ко всем, задачи распределяются по free capacity, границы декларативны. Нужен Team API и публичная фиксация контрактов.
- Объявить stream-aligned команды без Platform-обвязки. Команда, которой нужно самой заниматься CI/CD, мониторингом, миграциями данных, observability - это не Stream-aligned, это всё-в-одном команда с когнитивной перегрузкой. До запуска Stream-aligned модели нужен Platform team.
- Смешивать типы в одной команде. «Мы и платформу, и enabling, и стрим» не работает. Либо разделить, либо выбрать основной тип и вывести остальные функции наружу.
- Не синхронизировать топологию с DDD. Границы команд не совпадают с bounded contexts. Команды начинают конкурировать за одни и те же сущности, дублируют логику, блокируют друг друга. Сначала домены, потом команды.
- Внедрять сразу target-state без переходных топологий. Реорганизация - не one-shot. Между «текущая структура» и «целевая» обычно 2-4 промежуточных этапа. Попытка прыгнуть в target за квартал приводит к хаосу и откату.
- Давать Platform team продуктовые метрики. Platform не делает продукт для конечных пользователей. Мерить её выручкой или DAU бессмысленно. Метрики: adoption внутренними командами, SLA доступности, time-to-provision, NPS от Stream-aligned.
- Считать Enabling team постоянной. Если Enabling команда всё помогает и помогает, она превращается в bottleneck. Enabling по определению временна: передала - ушла.
Источники и смежные статьи
Первоисточники
- teamtopologies.com - сайт авторов, training, community, инфографика.
- Matthew Skelton, Manuel Pais. Team Topologies (2nd edition, 2025) - основная книга, все концепции.
- Team API template - стандартный формат документа границ команды.
- Melvin Conway. How Do Committees Invent? (1968) - исходная статья закона Конвея.
Связанные темы
- Domain-Driven Design (Eric Evans, 2003) - словарь и границы доменов, шаг 2 цепочки.
- Reverse Conway Maneuver (Jonny LeRoy, 2010) - применение закона Конвея в обе стороны.
Смежные статьи блога
- Инженерная стратегия - диагностика, принципы, действия как основа организационных решений.
- Монолит vs Микросервисы - архитектура как implementation detail.
- C4 Model - способ визуализировать архитектуру, отражающую топологию команд.
- SDLC для AI-агентов - процессная сторона трансформации.
- Можно ли измерять продуктивность - DORA и SPACE как метрики для Stream-aligned команд.
- Стратегия внедрения Claude в команде - AI-adoption как компонент организационной трансформации.