Нещодавно мене запитали, у яку сторону я б хотіла рухатись та в чому розвиватись і подумати над вибором між Software Architect та Solution Architect. Обидві ролі беруть участь у дизайні, розробці та впровадженні технічного рішення, що відповідає вимогам бізнесу. Тим не менш, між ними є і ключові відмінності, чи не так? Я вирішила розібратись, яка ж різниця між ними та що спільного, заодно і перевірити своє розуміння зон відповідальності кожної з ролей.
Software Architect
Або ж Application Architect чи Technical Architect, як інколи вказують на іноземних ресурсах. У той же час інші ресурси ці ролі розділяють. Межа тут досить розмита.
Software Architect відповідає за цілу систему — її дизайн та розробку.
Якщо говорити про конкретні обов’язки чи активності, то у Software Architect це, зокрема:
- Опис та створення архітектури певної системи.
- Дизайн цілісної системи згідно з бізнесовими та функціональними вимогами та її розробка.
- Перегляд аналізу витрат та графіку розробки й слідкування, що вони відповідають бюджету та часовим рамкам проекту.
- Створення презентацій по роботі системи.
- Планування інтеграцій з певними технологіями та процесу розробки.
- Надання технічної допомоги й підтримки розробникам та іншим зацікавленим особам.
- Перевірка якості ПЗ та його відповідності вимогам якості, безпеки, масштабованості та можливостям модифікації.
- Нагляд за процесом розробки.
- Співпраця з QA командою та фінальні перевірки якості ПЗ перед розгортанням системи.
- Спілкування з командою розробників протягом усього циклу розробки проекту.
Якщо підсумувати, Software Architect відповідає за те, щоб система покривала потреби бізнесу та була технічно найкраще реалізована. Software Architect має мати розуміння принципів та практик розробки, а також вміти мислити стратегічно та вирішувати складні проблеми. У багатьох компаніях ця роль визначена як 50% інженерна, 50% керівницька. Тому глибокі знання мов програмування (Java, Python, C# тощо), використаних на проекті, є обов’язковими.
Навички хорошого Software Architect
Що ж повинен мати Software Architect для досягнення успіху?
- Ступінь бакалавра в галузі комп’ютерних наук, інформаційних технологій або будь-якої пов’язаної технічної сфери.
- Додаткові сертифікації у фреймворках та програмній архітектурі є великим плюсом.
- Широкий досвід та експертиза в стилях архітектури програмного забезпечення та шаблонах дизайну.
- Глибокі знання відповідних мов програмування, які вимагає проект (наприклад, Java, Python, Ruby, C++).
- Відмінні навички управління проектами.
- Чудові міжособистісні та письмові комунікативні навички.
- Сильні навички управління командою.
- Знання методологій розробки.
- Відмінні аналітичні та проблемно-орієнтовані навички.
Ці загальні вимоги можуть стати відправною точкою для успішного зайняття позиції Software Architect.
Solution Architect
Основна відповідальність Solution Architect — допомога клієнтам з використанням уже побудованої системи та співпраця з ними, щоб допомогти вирішити бізнесові проблеми через ПЗ.
Ця роль сфокусована на дизайні системи та її впровадженні.
Основні завдання Solution Architect:
- Оцінка поточних бізнес-технологій та пошук інноваційних рішень для їх покращення.
- Створення документації з вимогами до рішень, необхідних для запропонованих технічних покращень.
- Співпраця з технічними командами для забезпечення функціонування всіх частин (наприклад, апаратне забезпечення, програмне забезпечення, робота в мережі).
- Моніторинг запропонованих рішень та проблем, які виникають (наприклад, ризики, часові обмеження, ресурси).
- Бути містком між клієнтом та технічною командою для розробки рішень та досягнення бажаних результатів.
Solution Architect — це професіонал, який розробляє та впроваджує рішення, що відповідають потребам бізнесу, при цьому є технічно можливими та економічно ефективними. Solution Architect зазвичай має глибоке розуміння як бізнесу, так і технологічного ландшафту. Він здатний об’єднувати бізнес-вимоги з технічними специфікаціями, управляти ризиками та ідентифікувати потенційні проблеми.
Навички хорошого Solution Architect
Solution Architect відповідає за оновлення технологій та систем компанії. Тому професіонал повинен мати такі необхідні вміння:
- Ступінь магістра в галузі бізнес-адміністрування, особливо з курсами, пов’язаними з інформаційними системами.
- Глибоке розуміння технологічних систем, інноваційних процесів та систем безпеки.
- Знання бізнес-аналізу та найкращих практик.
- Розширені знання про операційні системи, а також розвиток хмарної інфраструктури та ІТ-систем.
- Креативність.
- Високі аналітичні та проблемно-орієнтовані навички.
- Організованість та увага до деталей.
Підсумки
Спільні риси
Незважаючи на їхні відмінності, Software Architect та Solution Architect мають деякі схожості. Обидві ролі вимагають сильних навичок вирішення проблем, здатності стратегічно мислити та ефективно спілкуватися як з технічними, так і з нетехнічними зацікавленими сторонами. Обидві ролі також вимагають глибокого розуміння бізнесу та технологічного ландшафту.
Відмінності
Основна відмінність між Software Architect та Solution Architect — це їх фокус. Software Architect зосереджений на дизайні та розробці програмних систем, тоді як Solution Architect — на дизайні та впровадженні рішень, що відповідають потребам бізнесу.
Як обрати роль?
Якщо більше цікавлять технічні аспекти розробки програмного забезпечення, то роль Software Architect може бути підходящою. Якщо більше цікавлять бізнесові аспекти технологій — то роль Solution Architect.
Корисні ресурси
Вивчаючи цю тему, я перечитала багато статей. Досить цікавими та корисними, на мою думку, виявились ось ці:
- Software Architect vs. Solutions Architect — тут непогано у деталях розписане порівняння цих двох ролей.
- Solution Architect — опис ролі Solution Architect.
- Technical Architect — опис ролі Software (Technical) Architect.
- Enterprise Architect vs. Solution Architect vs. Technical Architect: What’s the difference? — порівняння ролей та постер із описом обов’язків та напряму роботи.