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.

Рекомендуємо публікації по темі