Источник
Закон Конвея и почему он имеет значение
Фрагмент обзора Team Topologies: как коммуникации формируют архитектуру.
Источник
Закон Конвея и почему он имеет значение
Фрагмент обзора Team Topologies: как коммуникации формируют архитектуру.
Закон Конвея напоминает простую, но неприятную вещь: архитектура системы повторяет структуру коммуникаций внутри организации. Если коммуникации устроены неудачно, в коде это проявится как высокий coupling, общие «бутылочные горлышки» и зависимость команд друг от друга.
Суть закона Конвея
Организация «проектирует» системы, копируя собственные каналы общения. Это работает как в плюс, так и в минус: удачная структура помогает ускорить поток, а неудачная закрепляет архитектурные проблемы.
Главная мысль
Чтобы менять архитектуру, почти всегда приходится менять структуру команд и правила взаимодействия между ними.
Пример: централизованный DBA
В обзоре приводится пример: четыре продуктовые команды имеют своих фронтендеров и бэкендеров, но все базы данных обслуживает единый DBA.
Числа Донбара
Такая схема естественно ведёт к слоенной архитектуре.
- Отдельные UI‑слои для каждой команды.
- Отдельные прикладные сервисы, «собранные» по командам.
- Общая база данных как единая точка координации.
Результат — высокий coupling, сложная эволюция и постоянные зависимости между командами.
Inverse Conway Maneuver
Обратный манёвр Конвея предлагает начать с желаемой архитектуры и уже под неё перестроить команды. Если цель — независимые сервисы без общей базы, то и структура команд должна отражать эту автономность. В примере выше мы могли бы применить это следующим образом. У нас была бы целевая архитектура с независимыми сервисами с подходом "shared nothing"
И для такой архитектуры нам нужна следующая структура команд
Что это даёт
Архитектура начинает поддерживать end‑to‑end доставку ценности без высокочастотных согласований между командами.
Практики, поддерживающие поток
- Loose coupling — минимальные зависимости между компонентами.
- High cohesion — чёткие границы ответственности внутри компонентов.
- Прозрачная совместимость версий и ожиданий между командами.
- Кросс‑командное тестирование, чтобы не ломать интеграции.
Практические правила коммуникаций
- Интенсивное взаимодействие внутри команды.
- Редкое и точечное взаимодействие между командами.
- Средняя интенсивность между «сдвоенными» командами в рамках общих инициатив.
Итог
Закон Конвея — это инструмент диагностики: если архитектура «ломается», стоит начать с анализа коммуникаций и структуры команд, а не только с рефакторинга.