О СЕБЕ
Я работаю в IT уже более 20 лет. В настоящее время я исполняю роли Application, Solution и Enterprise Architect на различных проектах (одна из особенностей аутсорса — необходимость выполнять разные роли на проекте в соответствии с потребностями заказчика). Мой путь начался с позиции Trainee .NET Developer, и за это время я прошёл через разные роли, в частности Tech Lead и Team Lead.
В своей карьере я занимался не только техническими задачами, но и бизнес-активностями, например presales, планирование проектов и команд. Мне приходилось работать onsite в США, что позволило увидеть изнутри и лучше понять способ мышления людей, заказывающих разработку программных продуктов.
КТО ТАКОЙ АРХИТЕКТОР В IT В СОВРЕМЕННОМ ПОНИМАНИИ?
Software Architect — это специалист, отвечающий за высокоуровневое проектирование программного обеспечения. Его главная цель — найти баланс между бизнес-требованиями, техническими возможностями команды и качеством конечного продукта. Архитектор не только создаёт техническое решение, но и координирует его реализацию, часто выступая связующим звеном между заказчиком, командой разработчиков и другими стейкхолдерами.
ТРИ УРОВНЯ АРХИТЕКТУРЫ И АРХИТЕКТОРОВ
В современном IT есть три основных уровня архитектуры, и каждая из них может быть в зоне ответственности отдельного архитектора:
- Application Architecture — отвечает за проектирование отдельных приложений и их компонентов, сосредотачивая внимание на локальных технических задачах. Она позволяет достичь высокого качества интегрируемого в большую экосистему продукта.
- Solution Architecture — объединяет несколько приложений и сервисов в единое решение, ориентированное на выполнение бизнес-целей. Её основная цель — обеспечить функциональность, эффективность и согласованность всех компонентов системы.
- Enterprise Architecture — фокусируется на стратегическом уровне, помогая компании определять и воплощать долгосрочные бизнес-стратегии путём построения и развития всей IT-инфраструктуры. Она обеспечивает согласование всех проектов и ресурсов с глобальными бизнес-целями.
Конечно, в реальных организациях роли часто совмещаются и смешиваются или вообще всё делает один человек. На практике наиболее популярна следующая ситуация:
- Enterprise Level — зона ответственности CTO или Steering Committee из наиболее опытных специалистов компании. В крупных организациях эта роль отдается отдельному человеку и делится согласно организационной структуре так, чтобы архитектор вёл отдельное направление в развитии продукта компании.
- Solution Level — чаще всего закрывается одним человеком независимо от сложности и структуры продукта или компании. Этот человек может даже совмещать роль Enterprise Architect или CTO для небольших организаций.
- Application Level — эту роль чаще всего берут на себя Tech Lead соответствующих команд, или совмещает Solution Architect, если имеет достаточные знаний в соответствующем стеке (ну или считает, что имеет). Часто бывает ситуация, что архитекторы делятся по стеку: .NET, Java, Angular, React, iOS, Android и т. д.
Далее рассмотрим более подробно каждый отдельный тип архитектора в контексте роли на проекте.
APPLICATION ARCHITECT
Это специалист, фокусирующийся на отдельных модулях системы. Его задача — обеспечить стабильность, производительность и масштабируемость конкретного приложения или группы сервисов.
Application Architect отвечает за:
- выбор инструментария и фреймворка реализации;
- создание подробно архитектуры модуля;
- обеспечение интеграции с другими компонентами системы в контексте общего плана интеграции;
- определение инструментов и стандартов кодирования;
- участие в формировании продуктового беклога и планирование его имплементации.
Основные артефакты, которые создает Application Architect:
- детализированные архитектурные диаграммы (Component Diagram, Class Diagram);
- техническая документация для разработчиков (API specifications, coding standards);
- план интеграции с другими системами (Integration Plan);
- прототипы или proof-of-concept решений.
SOLUTION ARCHITECT
Solution Architect работает на уровне системы, объединяющей несколько приложений и сервисов. Основной фокус — создание целостного решения для выполнения бизнес-задач клиента.
Его основные обязанности:
- анализ требований бизнеса и их трансляция в технические решения и дизайн;
- участие в определении структуры команды и дизайна системы;
- участие в создании проектного SDLC;
- интеграция разных компонентов в единую систему;
- выбор инфраструктуры и облачных сервисов;
- работа со стейкхолдерами по согласованию технического решения.
Основные артефакты, которые создаёт Solution Architect:
- дизайн-спецификация для системы в целом, определение NFR и Quality Attributes;
- архитектурные диаграммы для интеграции (System Context Diagram, Sequence Diagram, Module Diagram);
- планы миграции (Migration Plan);
- описание применяемых архитектурных паттернов (например, Microservices, Event-Driven Architecture);
- спецификации взаимодействия между сервисами (Interface Contracts, API Documentation).
ENTERPRISE ARCHITECT
Enterprise Architect занимается стратегическим планированием и проектированием архитектуры всей организации. Его задача — обеспечить, чтобы все IT решения отвечали долгосрочной стратегии бизнеса. Основные зоны ответственности:
- создание и поддержка дорожной карты развития IT-инфраструктуры компании;
- координация между разными департаментами и командами;
- управление зависимостями между проектами;
- оптимизация расходов и ресурсов.
Основные артефакты, которые создаёт Enterprise Architect:
- Enterprise Architecture Blueprint (высокоуровневая схема всей IT-инфраструктуры);
- roadmap развития IT-систем;
- анализ соответствия архитектуры бизнес-целям (Business Capability Model, Gap Analysis);
- политики и стандарты всей организации;
- каталог IT-активов и взаимосвязей между ними (Application Portfolio, Data Flow Diagrams).
А КУДА РАСТИ ПОСЛЕ ENTERPRISE ARCHITECT?
После достижения уровня Enterprise Architect многие специалисты направляют свои усилия в сторону бизнеса или стратегического управления. Вот несколько возможных направлений:
- Chief Technology Officer (CTO): отвечает за всю техническую стратегию компании;
- Chief Information Officer (CIO): управляет информационными системами организации;
- Консалтинг: работа с другими компаниями по созданию стратегических IT-решений;
- Стартапи: использование знаний для создания собственного продукта или бизнеса.
Каждый из этих путей позволяет использовать опыт и навыки архитектора в новых масштабах, влияя на развитие индустрии или даже создавая новые тренды в IT.