Обзор State of Software Architecture Report 2024

В конце 2024 года вышел отчет State of Software Architecture Report 2024 от компании IcePanel, посвященный текущему состоянию архитектурных практик и тому, как архитекторы и другие специалисты работают с проектированием и развитием сложных программных систем. IcePanel разрабатывает инструменты для описания, моделирования и визуализации архитектуры программного обеспечения, позволяющие командам документировать архитектурные решения и взаимосвязи между компонентами систем.

В опросе приняли участие 96 респондентов, более половины из которых — архитекторы (55%), при этом наиболее распространенной ролью стали Solution architects (29%), а инженеры и разработчики составили 26%. Подавляющее большинство участников работают на полной занятости (96%), при этом 38% имеют опыт от 1 до 5 лет, а 41% — более 10 лет. В опросе были представлены компании различного размера, чаще всего с численностью 100–499 сотрудников (25%) и 5 000 и более (24%), при этом в большинстве организаций работают небольшие выделенные команды архитекторов численностью от 1 до 9 человек (58%).

Что интересного мы отметили в отчете:
  1. Инструменты, используемые для документирования архитектуры. Большинство респондентов (96%) используют инструменты для построения диаграмм (Draw.io, Visio, LucidChart, Miro, IcePanel) и совместные вики-системы (Confluence, Google Docs, Notion), при этом 64% также указали использование инструментов моделирования (Structurizr, IcePanel, Ardoq). Несмотря на меньшую распространенность, 40% участников продолжают применять физические маркерные доски для ведения архитектурной документации;
  2. Единый источник истины (Single-source of truth) для программной архитектуры распределен между различными инструментами: 37% команд используют поддерживаемые вручную диаграммы (LucidChart, Miro, IcePanel), 30% — совместные вики-инструменты (Confluence, Google Docs, Notion), у 16% отсутствует единый источник, а 7% отслеживают его с помощью кода или неформально (Verbal communication, Institutional knowledge). При этом команды продолжают искать оптимальное решение, обеспечивающее баланс между затрачиваемыми усилиями и доступностью;
  3. Архитектурные процессы. Не было выявлено единого паттерна в том, как часто участники обновляют архитектурную документацию. Наблюдалось почти равномерное распределение между ежемесячным обновлением (28%), ежеквартальным (23%) и еженедельным (23%). При этом формальные архитектурные ревью с участием команды проводятся заметно реже: наиболее распространенным ответом стала периодичность раз в год или реже — 41%. Использование записей архитектурных решений (Architecture Decision Records, ADRs) также разделилось почти поровну: 47% респондентов указали, что используют их, тогда как 53% — не используют;
  4. Используемые архитектурные паттерны. Наиболее часто используемыми архитектурными паттернами оказались микросервисы (Microservice) и событийно-ориентированная архитектура (Event-driven). Затем следуют Domain-driven design (DDD), слоистая архитектура (Layered architecture, N-tier), модульный монолит (Modular monolithic) и сервис-ориентированная архитектура (Service-oriented architecture, SOA);
  5. Уровень использования модели C4 (C4 model). Большинство респондентов отметили умеренный (41%) или высокий (39%) уровень использования модели C4. Авторы попросили респондентов, которые указали отсутствие или низкий уровень использования, подробнее объяснить причины. Среди наиболее распространенных ответов были: никогда не слышали о модели или не имели времени, чтобы поработать с ней или изучить ее;
  6. Наиболее используемые типы диаграмм в модели C4. Диаграммы контейнеров и приложений (Container / App diagrams) оказались наиболее часто используемым типом диаграмм в модели C4 — 85%, далее следуют контекстные диаграммы (Context) — 67% и диаграммы компонентов (Component diagrams) — 51%. Среди дополнительных диаграмм C4 наиболее часто использовались диаграммы ландшафта системы (System landscape diagrams) — 26% и динамические диаграммы / IcePanel Flows — 27%;
  7. Основные сложности при использовании модели C4. Среди наиболее распространенных сложностей были отмечены: создание общего представления, обеспечивающего корректный баланс между уровнем детализации и ясностью; понимание того, как сопоставлять элементы архитектуры с абстракциями модели C4 (например, что должно относиться к какому уровню, что считать системой, а что — компонентом); выбор наилучшего способа моделирования событийно-ориентированных архитектур; поддержание модели в актуальном состоянии по отношению к реальному состоянию системы и отслеживание изменений во времени;
  8. Эволюция документирования программной архитектуры и роли архитекторов: наибольшее влияние в ближайшие 5 лет, по мнению респондентов, окажут AI-assisted генерация и поддержка документации (60%), автоматическое обновление документации на основе кода (48%) и интеграция с CI/CD-конвейерами (41%). При этом ожидается, что архитекторы будут сильнее вовлечены в бизнес и стратегию (63%), коучинг и менторинг команд по архитектурному проектированию (62%), а также вопросы безопасности и соответствия требованиям (50%). Отдельно подчеркивается важность междисциплинарного и внутрикомандного взаимодействия и роль архитектуры в задании ограничений и развитии систем на фоне роста роли AI.

Основные инсайты из отчета State of Software Architecture Report 2024 приведены ниже:
Если вам интересно исследование и развитие практик Software Architecture в вашей компании или командах, включая документирование архитектуры, архитектурные процессы и взаимодействие архитекторов с инженерными командами, обращайтесь к нам за помощью. Мы помогаем выявлять текущие подходы и ограничения в работе с архитектурой, оценивать зрелость архитектурных практик и находить точки для их системного развития.

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

Не забывайте подписываться на наш канал Enabling.team Insights, чтобы быть следить за состоянием в индустрии.