🚀 Trustee Plus - картка європейського банку і криптогаманець. Встанови додаток 👉
Марія БровінськаРабота
20 сентября 2023, 10:00
2023-09-20
«Архитектура программного обеспечения — это всегда поиск компромиссов». Чем занимается архитектор ПО: обзор профессии от Александра Савченко, Ciklum
Сегодня о профессии архитектора программного обеспечения рассказывает Solutioning Director компании Ciklum Александр Савченко. Александр прошел путь от разработчика к архитектору и главе инженерных департаментов. В 2019 году стал победителем Ukrainian IT Awards в категории Software Engineering, а в 2020 году вошел в состав жюри. В текущей роли Solutioning Director Александр фокусируется на создании ИТ бизнес-стратегии, дизайне корпоративной архитектуры, управлении крупными проектами и ИТ консалтинге. Он активно занимается архитектурой разных уровней, является автором и тренером курса Software Architecture development, спикером на глобальных конференциях и драйвит развитие ИТ-сообщества.
Сегодня о профессии архитектора программного обеспечения рассказывает Solutioning Director компании Ciklum Александр Савченко. Александр прошел путь от разработчика к архитектору и главе инженерных департаментов. В 2019 году стал победителем Ukrainian IT Awards в категории Software Engineering, а в 2020 году вошел в состав жюри. В текущей роли Solutioning Director Александр фокусируется на создании ИТ бизнес-стратегии, дизайне корпоративной архитектуры, управлении крупными проектами и ИТ консалтинге. Он активно занимается архитектурой разных уровней, является автором и тренером курса Software Architecture development, спикером на глобальных конференциях и драйвит развитие ИТ-сообщества.
Роль и обязанности архитектора ПО
Архитектура ПО — это то, из каких компонентов состоит продукт и как они взаимодействуют и как система будет развиваться со временем.
Разработка архитектуры — это комплексный процесс, который начинается с взаимодействия с заинтересованными сторонами. Сначала архитектор должен собрать от стейкхолдеров всю необходимую информацию, чтобы понять, из каких компонентов будет состоять продукт и описать, как они связаны.
Далее собранную информацию следует проанализировать и определить требования к построению архитектуры — ASR (Architecturally Significant Requirements). Они включают в себя функциональные требования, проектные ограничения, атрибуты качества (такие как безопасность, доступность, производительность, удобство использования и т. п.), а также дополнительные требования от стейкхолдеров.
После этого архитектор создает дизайн, который подходит элементам продукта и удовлетворяет всем ASR, и создает архитектурную документацию. Разрабатывая дизайн, архитекторы пользуются уже известными дизайн-концептами, среди которых эталонные архитектуры, дизайн паттерны и стили, архитектурные тактики, девелопмент фреймворки. Среди этих концептов обычно для каждого решения есть альтернативные опции, поэтому архитектор анализирует альтернативы (trade-off analysis) и выбирает наилучшую. Именно поэтому иногда говорят, что «архитектура не создается, а выбирается».
Чтобы архитектура была правильно имплементирована, архитектор также приобщается к разным этапам разработки продукта. В частности, оргструктуры и деливеры метода, девелопмент практик, инфраструктуры, тестовой стратегии, релизов, последующей поддержки продукта и т. д.
В целом весь цикл разработки выглядит так:
Если подытожить, то главная задача архитектора — понять бизнес-потребности, выявить архитектурные драйверы, создать дизайн архитектуры, объяснить команде разработчиков, как ее реализовать, и наконец убедиться, что архитектура имплементирована правильно. И, конечно, это коммуникация со стейкхолдерами и передача информации от бизнеса разработчикам и наоборот. Грегор Хоп метафорически назвал этот процесс архитектурным элеватором, ведь архитектор ездит на элеваторе и распространяет информацию между этажами, то есть департаментами.
Что должен знать и уметь архитектор ПО
Учитывая, что типы архитектур и архитекторов бывают разные (Application/Solution/Enterprise/Data/Cloud Architect и т. п.), необходимые знания и навыки могут отличаться. Но вообще Архитектор должен быть:
ИТ-экспертом: иметь мощную экспертизу в инженерии и знания в разных направлениях — фронт-энде, бэк-энде, девопсе, данных и аналитике, тестировании, проджект менеджменте, бизнес анализе и т. д. Надо понимать, как работают все элементы и как архитектура будет имплементирована. А также иметь опыт с различными архитектурными и деливери методологиями и бизнес-доменами.
Аналитиком: анализировать значительные объемы данных и владеть методами получения информации от стейкхолдеров.
Коммуникационщик: получать и передавать информацию от бизнеса разработчикам и наоборот, уметь слушать, презентовать и объяснять свои решения.
Лидером и ментором: обучать других инженеров и драйвить процесс имплементации.
Кроме того, архитектор должен быстро учиться, поскольку технологии меняются, поэтому нужно разрабатывать архитектуру так, чтобы ее можно было обновлять и улучшать в будущем.
В общем, навыки архитекторов можно условно разделить на Core и Soft.
Среди Core навыков:
Фундаментальные понятия, методы и фреймворк — стандарты (такие как 42010), жизненный цикл разработки архитектуры, бизнес-домена, TOGAF, ADD, ATAM, CBAM, View and beyond (SEI V&B) и т. д.
Управление требованиями — методы выявления требований, методы оценки архитектуры, технологические тренды, архитектурные принципы, ASRы, фитнес функции.
Проектирование и анализ — эталонные архитектуры, деплоймент паттерны, архитектурные паттерны и стили, архитектурные тактики, внешние компоненты разработки (SaaS платформы, фреймворки, API, технологии и т. п.).
Документация — типы моделей и точки зрения архитектуры, языки описания архитектуры, шаблоны и стандарты.
Внедрение и интеграция — деливеры методологии и процессы, жизненный цикл разработки, релиз менеджмент, управление и конфигурирование инфраструктуры, стратегии тестирования и т. д.
Платформы и технологии — SaaS платформы, облачные решения, компоненты инфраструктуры (такие как средства мониторинга и логирования), базы данных, системы событий и т. д.
А к Soft навыкам относятся:
Управление знаниями, переменами, заинтересованными сторонами, бизнес-рисками.
Лидерство и менторинг.
Внедрение инноваций и стратегическое планирование.
Более обширный список можно найти в SFIA или TOGAF фреймворках.
Как стать архитектором и развиваться в архитектуре
Разные компании имеют собственную специфическую организационную структуру, а затем и разные пути развития талантов. Однако в целом я бы выделил два классических способа стать архитектором:
Первый предполагает развитие от девелопера до технического/тем лида, далее — к Application Architect, разрабатывающему архитектуру отдельной категории или аппликации/компонента, затем — Solution Architect, отвечающему за весь продукт, и в конце концов — к Enterprise Architect, работающему на уровне организации .
Второй отличается тем, что после девелопмента трека можно развиваться двумя путями:
По Application Architect треку — это более техническое развитие, где архитекторы подробнее работают с инженерией и развивают именно эти навыки.
Или по Solution Architect треку — это бизнес-трек, где помимо инженерных, понадобится развивать и бизнес-навыки.
Оба пути позволяют стать Enterprise Architect.
Сколько зарабатывает архитектор в Украине
Зарплаты архитекторов зависят от многих факторов: типа архитектора, продукта и технологии, необходимого опыта, требований позиции. Так как архитектура обычно является следующим шагом после девелопмента, зарплаты можно сравнивать с зарплатами разработчиков, ожидая потенциально более высокой компенсации.
Если рассматривать более подробно по типам архитекторов, то:
Для Application Architect уровень компенсации зависит от языка программирования, на котором написан продукт. Например, для языков Go/Scala/Rust зарплатные медианы выше, так что такие архитекторы будут зарабатывать больше. В среднем медиана зарплаты этого типа архитекторов выше Senior девелопера на 30-35% и от Team/Tech Lead на 15%. К примеру, если средняя зарплата Senior Java девелопера $5000, а Lead Java — $5800, то медиана Java Application Architect будет $6500. По Go стек: если медиана для Senior Go девелопера $6000, то Go Application Architect — $7800.
Обычно медиана для Solution Architect выше на 15-20% от Application Architect, так как этот тип архитектора имеет более широкий спектр опыта и обладает многими технологиями, но может быть такой же как у Application Architect роли, если это параллельные треки. Также есть случаи, когда компенсация меньше в зависимости от уникальности технологии для Application Architect роли.
Компенсация Enterprise Architect выше, чем у других типов архитекторов, поскольку эта роль еще более уникальна и их не так много на рынке (иногда эти специалисты выступают в роли Proxy-CTO). Зарплата может колебаться в зависимости от компании от $7000 до $9000, а может быть и выше.
Вакансии и спрос
Вакансий архитектора по сравнению с возможностями для разработчиков обычно меньше, поскольку требования к роли выше, а позиции более уникальны. К примеру, Solution Architect или Cloud Architect может один работать на проекте на 30+ инженеров; Application Architect может как работать в команде из 10 инженеров, так и отвечать за все технологическое направление (например, Back-End) в программе из 50 инженеров; Enterprise Architect может занимать эту роль в организации из 100-200 или более инженеров.
Учитывая спрос на архитекторов, то вакансии есть как в продуктовых компаниях, так и в аутсорсе. Продуктовые компании чаще ищут Application Architect со знанием технологий, на которых написан продукт. Аутсорс раньше искали Solution Architect, которые могут драйвить пресейлы, но сейчас все чаще есть запрос на Application архитекторов. Различные компании часто комбинируют роль архитектора с техническим лидом в отдельном техническом стеке, поэтому следует помнить об опыте и навыках в лидерстве и менеджменте.
Ощутимо возрос спрос на архитекторов для облачных решений, ведь многие продукты разворачиваются в облаке или компании мигрируют в облако. Также возросла тенденция поиска архитекторов в интеграции разных платформ и сервисов (таких как SAP, Netsuite, SalesForce), что вызвано увеличением использования SaaS платформ.
Вакансии достаточно разнообразны, поэтому нужно помнить: кто ищет, тот найдет.
Книги, курсы и другие материалы по архитектуре ПО
Архитектура — это отдельная ИТ отрасль, несмотря на тесную связь с девелопментом. Есть даже целые «архитектурные школы», которые описывают этапы и методы разработки архитектуры несколько по-разному. В общем, книг об архитектуре ПО немало. Я бы обратил внимание на следующие:
Профессии в IT. Кто такие тимлиды, что они должны знать и как их оценивать?
Большинство молодых айтишников с первых дней работы мечтают вырасти до сеньора и стать тимлидом, менторить джунов и помогать команде решать сложные задачи. Однако какими именно компетенциями должен обладать тимлид, что уметь и где учиться — вопрос для многих открыт. Чтобы прояснить эту ситуацию, мы пообщались с Solutions Architect в компании DataArt Дмитрием Куперманом, уже много лет занимающимся асесментом тимлидов в компании: проводит интервью и оценивает подготовку и опыт коллег и кандидатов.
«Менеджмент не заканчивается на словах Agile или Kanban"». Кто такой Project Manager и как им стать
Желающих войти в IT с каждым днем становится больше. Однако большинство потенциальных айтишников оказываются перед сложным выбором: кем стать, чтобы работать в сфере информационных технологий. dev.ua начинает новую рубрику, в которой будет рассказывать, какие специальности в украинском IT есть, что делают конкретные специалисты и где учиться, чтобы стать айтишником.
Сегодня о профессии Project Manager рассказывает опытный PM в EPAM Яна Стильчук,
Как войти в IT, если не умеешь кодить? Три истории неайтишных специалистов по Ciklum, TECHIIA и Intetics
Для того чтобы работать в IT, необязательно уметь писать код. Ведь в компаниях большое количество специалистов, которые не знают языка программирования и не ориентируются во фреймворках.
dev.ua рассказывает, как устроена работа в IT самых неутешительных специалистов и чем она их привлекает.
Хотите сообщить важную новость? Пишите в Telegram-бот
Главные события и полезные ссылки в нашем Telegram-канале