Профессия архитектора кажется одной из самых сложных в технологическом секторе. Практически не существует курсов, пройдя которые точно можно стать начинающим IT-архитектором, а технологические блоги редко публикуют чек-листы для желающих войти в эту сферу. Подробно разбираемся, как устроена профессия IT-архитектора, чем они занимаются и сколько зарабатывают.
IT-архитектор — специалист, который отвечает за то, как будет выглядеть структура продукта с технической точки зрения. При этом архитекторы могут отвечать как за создание целостной информационной системы — всего сервиса или продукта, так и за небольшие фичи, которые необходимо реализовать. В маленьких командах может быть один архитектор, который одновременно выполняет роль, например, CTO — и он придумывает, как будет выглядеть весь проект с технической точки зрения, какие инструменты и язык программирования использовать. При этом в корпорациях свой архитектор может быть не только у разных направлений, таких как фронтенд или бэкенд, но и у разных вводимых функций и реализованных фич.
Существует несколько типов архитекторов — архитекторы решений, которые специализируются на оценке текущих технологических проблем и задач для планирования будущих изменений — они больше общаются с клиентами и исходят из бизнес-задач. Также существует ещё один тип архитекторов — технические архитекторы, которые внедряют различные инструменты в зависимости от потребности бизнеса и моделей, которые строят архитекторы решений. Этот тип архитекторов чаще работает напрямую с разработчиками, а не с клиентами или бизнесом.
Архитекторы, по сути, должны обеспечивать решение бизнес-задач при помощи того, как будет строиться продукт. При этом архитекторы не только придумывают структуру и берут на себя ответственность за создание системы ещё до её фактического появления, но и контролируют процесс разработки. Кроме того, архитекторы прорабатывают шаблоны взаимодействия компонентов внутри программы, прописывают сценарии взаимодействия, определяют, каким должен быть формат хранения и передачи данных.
Если клиенту нужно разработать приложение, то архитектор должен знать точно, каким образом это можно сделать, не наступив на все существующие грабли.
Одним из главных навыков в этой профессии считается умение проектирования и анализа предметной области: в самом начале разработки архитектору необходимо выяснить все требования от заказчика, который хочет получить собственный сервис. Им может быть как внешний клиент, которому необходимо разработать какой-то продукт, так и внутренний. Например, в компании, где работает архитектор, считают, что им нужен собственный мессенджер. Для этого архитектор составляет план и техническое задание для проектировки новой системы, анализирует все требования, после чего создает текстовые и графические материалы с описанием всей архитектуры решения, данных и информационных систем. По итогам должен появиться проектный документ, по которому в дальнейшем будут работать разработчики.
Гид по профессии тестировщик: чем занимается специалист в сфере QA, сколько зарабатывает, что надо знать и где учиться.
Мы проанализировали существующие вакансии в сфере IT-архитектуры и отдельно вынесли ключевые требования работодателей к кандидатам:
Мы попросили архитекторов и разработчиков рассказать, чем они занимаются на работе, какие им нужны навыки и какие они используют инструменты.
— Чем работа архитектора отличается от работы обычного программиста? Чем вообще занимается архитектор в IT-компании?
Чтобы ответить на этот вопрос, нужно понимать, какие вообще бывают архитекторы и разработчики. По разработчикам все понятно: junior, middle, senior.
Архитекторов я разделяю на solution architect и enterprise architect. Это очень глубокая тема и можно на её основе писать целые книги. Прокомментирую от себя так:
Enterprise architect — разрабатывает дизайн взаимодействия систем и их эксплуатацию на глобальном уровне. Вообще эта роль мало распространена, так как необходимость в ней появляется только в случае больших масштабов.
Solution architect — отвечает за координацию работы разработчиков, он выбирает фреймворки и другие инструменты, контролирует работу с техническим долгом. При этом, он является «играющим тренером» и какую-то часть времени пишет код.
Тут мы видим, что solution architect очень похож на senior-разработчика — и это правда. В нашей компании остро поднимался вопрос: а зачем вам архитекторы? Почему senior не могут выполнять эту работу? К единому мнению мы не пришли, но для себя я вынес следующее:
— Как долго нужно работать программистом, чтобы дойти до сферы архитектуры? Как становятся архитектором в команде?
Если программист делает чуть больше, чем от него требуется — это значит, что он может постепенно расти в архитектора. Если разработчик находит время на документирование, принимает решения о взаимодействии со смежными системами и имеет представление о системах вокруг его приложения, то это открывает для него путь на позицию архитектора.
Естественно, помимо этого он должен быть отличным программистом и иметь уверенные знания о паттернах и принципах проектирования.
Сколько на это нужно времени? Не знаю, все индивидуально.
— Есть ли жизнь после архитектуры? Куда расти архитектору?
Вариантов развития очень много.
Можно расти вширь: стать уверенным разработчиком фронтенда, бэкенда, мобилы. Или, например, развивать инженерные практики: автотестирование, SRE, администрирование. Кроме того, архитектор может расти в менеджмент, например, стать CTO.
Можно вообще уйти из IT и начать разрабатывать электронику — мне кажется, что навыки, приобретенные на позиции архитектора, будут полезны.
— Как архитекторы занимаются тайм-менеджментом и все успевают? Как происходит этот процесс?
Есть много инструментов:
Можно взять любой курс по тайм-менеджменту — и он наверняка вам подойдет.
— Какие технологии должен знать архитектор?
Зависит от предметной области и стека, но, в среднем по больнице, архитектор должен хорошо понимать:
В общем — всё то, что универсально для любого стека, и является базой для архитектуры и проектирования в частности.
— Чем работа архитектора отличается от работы обычного программиста? Чем вообще занимается архитектор в IT-компании?
Профессию IT-архитектора можно разделить на три основных: enterprise architect, solution architect, technical architect. У каждого есть свои задачи:
В небольших компания все роли «схлапываются» в одного человека, но чем больше компания, тем больше разделение.
Чем занимается IT-архитектор? Я вижу у него две задачи:
— Как долго нужно работать программистом, чтобы дойти до сферы архитектуры? Как становятся архитектором в команде?
Конкретного срока нет и, к сожалению, невозможно пройти обучение сразу на IT-архитектора. Те архитекторы, которые мне встречались, обычно приходили из айтишников: программистов, безопасников, бизнес-аналитиков. По мере работы, сравнивая себя с другими, они видят, что могут мыслить шире, брать на себя больше ответственности, поэтому они начинают участвовать в принятии решений по архитектуре ПО. Дальше идут в архитекторы и только этим и занимаются.
Наверное, ключевой фактор — способности, плюс возможность принятия ответственности в условиях неопределенности. Если со способностями всё более или менее понятно, то борьба с неопределенностью не всем дается легко. Ведь надо ещё до создания системы решить, какой она станет, чтобы достигнуть бизнес-целей. Не у всех выдерживают нервы, не всем хватает воли.
— Есть ли жизнь после архитектуры? Куда расти архитектору?
IT-архитектор — не татуировка. Можно идти, куда душа пожелает. Можно пойти управлять продуктом, можно вернуться в разработчики, можно пойти в бизнес-анализ или в консультанты. Ограничений нет.
— Как архитекторы занимаются тайм-менеджментом и все успевают? Как происходит этот процесс?
Так же, как и все остальные: техники пустого инбокса и всё, чему учат Архангельский и Дорофеев. В крупной компании архитектор ведет 5-6 проектов одновременно, но нагрузка по мере развития проекта неравномерная. Обычно загрузка большая вначале и уменьшается к концу, поэтому можно удержать в голове сразу несколько проектов.
— Какие технологии должен знать архитектор?
Чем больше он знает, тем больше нюансов может учесть. Желательно, неплохо разбираться в программировании, железе, безопасности, базах данных, ML и разных архитектурах, конечно. Из навыков управления — надо хорошо понимать, как строится управление командами, продуктами и рисками.
— Какие инструменты используют архитекторы?
В основном мы рисуем и пишем тексты. Поэтому инструменты самые простые, типа текстовых редакторов, маркерной доски, векторной графики. Есть специализированные инструменты для оценки качества кода, типа SonarQube, но это уже нюансы, которые не так часто нужны. Основной инструмент, определяющий успех в профессии: быть открытым новому, не бояться принимать вызовы и держать нос по ветру, понимая, куда движется IT и рынок в целом.
По данным сервиса HH, осенью 2020 года на рынке есть около 100 вакансий IT-архитекторов в разных регионах России. Среди компаний, которые ищут к себе в команду архитекторов — Skyeng, МТС, «Газпромбанк», Hoff, Иннополис, Банк «Открытие», «Райффайзен», «УралСибТрейд» и другие. На HH зарплаты архитекторов начинаются с 90 000 рублей, при этом некоторые компании предлагают зарплаты от 300 000 рублей в месяц.
Большая часть вакансий в этой сфере открыта в Москве, еще есть немного в Петербурге, в регионах вакансий архитектора сейчас почти нет. При этом из 100 вакансий удаленную работу подразумевает только одна вакансия — вероятно это связано с большим количеством коммуникации, которые должен совершать IT-архитектор в команде.
На Хекслете сейчас нет профессии архитектор, однако у нас есть несколько курсов, которые помогут будущим архитекторам получить хотя бы часть необходимых знаний.
Кроме того, мы советуем прочитать книгу «Код. Тайный язык информатики», посмотреть вебинар «Архитектура и дизайн ПО, паттерны в ФП» с Александром Граниным на нашем YouTube-канале, интервью с Александром Казаченко, архитектором Tinkoff.ru, лекцию «Организация бизнес-логики: вебинар для разработчиков» с главой Хекслета Кириллом Мокевниным.
Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях