Роль архитектора
Тема дорожной карты · Software Architecture
Архитектор играет ключевую роль в проектах, где требуется глубокое понимание архитектуры системы, а также умение руководить и координировать работу нескольких команд. Архитектор не только разрабатывает техническую концепцию системы, но и обеспечивает её реализацию, учитывая как технические, так и управленческие аспекты. Эта роль включает принятие и документирование технических решений, обучение и наставничество команд, а также работу со стейкхолдерами для выявления требований к качеству и оценки рисков.
Эффективный архитектор должен быть способен объяснить и защищать свои решения даже годы спустя. Однако, соло-архитекторы не могут масштабироваться дальше одной команды. В крупных компаниях эта роль выполняется через трек staff+engineer/architect, который отвечает за согласованность между командами.
Как это работает
Эффективные архитекторы тратят около 30% времени на письмо, включая создание архитектурных решений (ADR), технических документаций и анализа компромиссов. Еще 30% времени уходит на общение с инженерами, стейкхолдерами и другими архитекторами. Около 20% времени архитекторы тратят на наблюдение за процессом, включая чтение кода, просмотр дашбордов и участие в командных стендапах. Оставшиеся 20% времени архитекторы проводят на написании кода, что помогает им поддерживать актуальность с реальной реализацией системы.
Архитекторы, которые пропускают написание кода, теряют связь с реальной практикой и могут не понимать всех аспектов реализации. С другой стороны, архитекторы, которые пропускают написание технических документов, теряют возможность документировать и обосновать свои решения.
Когда применять
Роль архитектора имеет смысл, когда система обслуживает несколько команд, которым нужна общая структура. Также это важно, когда требования к атрибутам качества требуют специализированной экспертизы, например, высокая пропускная способность, регуляторное соответствие или гарантии реального времени. Кроме того, когда организация выросла за пределы того, где любой отдельный инженер может держать всю систему в голове, становится очевидно, что требуется архитектор. Для маленьких команд архитектурная работа может быть распределена между старшими инженерами, вместо назначения одного архитектора.
Типичные ошибки
(1) Architect-as-decider — архитектор принимает все решения, команда исполняет; команда теряет вовлечённость, и решения не информированы реальностью реализации. Архитекторы должны фасилитировать принятие решений, не владеть им. (2) Architect-as-coder-on-the-side — архитектор кодит, но не имеет времени для роли; обе работы сделаны плохо. (3) Title без authority — архитектор может рекомендовать, но не может заставить решения работать; политическая конфигурация ломает роль.