Про архитектуру (организаций) и закон Конвея

Стартует очередной проект, вы собираете команду из своих специалистов и внешних консультантов. Как ни странно, результат, который у вас получится будет отражать сложившуюся структуру коммуникации.

Закон Конвея — “Организации проектируют системы, которые копируют структуру коммуникаций в этой организации”.

Что из это следует? Простой вывод: если архитектура организации противоречит архитектуре (целевой) системы — то победит архитектура организации. Например, если в проекте собрались глубокие профильные спецы — они будут склонны выстраивать функциональные отделы, увеличивая очереди заявок между ними. И наоборот, если все общаются со всеми, то по каждому вопросу будут проводиться совещания, в итоге, занимая всё свободное время.

Немного отвлечёмся от проблематки, посмотрим, какие архитектуры в принципе бывают.

  1. Модульная архитектура
    Описание: Система разделена на независимые модули, каждый из которых выполняет определенную функцию.
    Преимущества: Упрощает разработку и тестирование, позволяет параллельную работу нескольких команд, облегчает масштабирование и модификацию системы.
  2. Монолитная архитектура
    Описание: Система представлена в виде единого, цельного блока, где все компоненты тесно связаны друг с другом.
    Преимущества: Простота разработки и развертывания, высокая производительность за счет отсутствия межмодульных взаимодействий.
  3. Микросервисная архитектура
    Описание: Система состоит из множества мелких сервисов, каждый из которых выполняет конкретную задачу и взаимодействует с другими сервисами через API.
    Преимущества: Гибкость, возможность независимого развертывания и масштабирования сервисов, улучшенная устойчивость к ошибкам.
  4. Слоистая (многоуровневая) архитектура
    Описание: Система разделена на несколько слоев, каждый из которых отвечает за определенный аспект функциональности (например, презентационный слой, бизнес-логика, слой данных).
    Преимущества: Четкое разделение ответственности, упрощение разработки и тестирования, возможность независимого изменения слоев.
  5. Архитектура на основе событий
    Описание: Компоненты системы взаимодействуют друг с другом через события, что позволяет асинхронное выполнение задач.
    Преимущества: Высокая масштабируемость, улучшенная отзывчивость системы, возможность обработки большого объема данных в реальном времени.

А вот и финальный вывод. Нужно провести «Обратный манёвр Конвея». Сначала стоит подумать, какую (целевую) систему вы хотите получить, исходя из означенных преимуществ. А затем спроектировать команду проекта именно с учётом нужной архитектуры. Хотите скорость работы — наймите всех нужных людей и посадите их в одном помещении. Хотите, чтобы части системы могли работать параллельно — добро пожаловать в модули. Много процессов завязаны друг на друга — тогда архитектура на основе событий (консультации по запросу с нужными экспертами в моменте).
Какая архитектура в вашей организации?

1 лайк