ПРО СЕБЕ
Я працюю в 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.