Software Architect и его роль в проекте

Software Architect и его роль в проекте

  • 17 января
  • читать 15 мин
Юрий Гриценко
Юрий Гриценко Principal Solutions Architect в GlobalLogic

О СЕБЕ

Я работаю в 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.

Рекомендуем публикации по теме