Гид по профессии архитектор: чем они занимаются, где учатся и сколько зарабатывают

Профессия архитектора кажется одной из самых сложных в технологическом секторе. Практически не существует курсов, пройдя которые точно можно стать начинающим IT-архитектором, а технологические блоги редко публикуют чек-листы для желающих войти в эту сферу. Подробно разбираемся, как устроена профессия IT-архитектора, чем они занимаются и сколько зарабатывают.
- Обязанности архитектора
- Эксперты — о работе архитектора и необходимых навыках
- Александр Казаченко, руководитель разработки кредитных продуктов для бизнеса, «Тинькофф»: «Если программист делает чуть больше, чем от него требуется — он может постепенно расти в архитектора»
- Сколько зарабатывают IT-архитекторы
- Где учиться архитектуре
IT-архитектор — специалист, который отвечает за то, как будет выглядеть структура продукта с технической точки зрения. При этом архитекторы могут отвечать как за создание целостной информационной системы — всего сервиса или продукта, так и за небольшие фичи, которые необходимо реализовать. В маленьких командах может быть один архитектор, который одновременно выполняет роль, например, CTO — и он придумывает, как будет выглядеть весь проект с технической точки зрения, какие инструменты и язык программирования использовать. При этом в корпорациях свой архитектор может быть не только у разных направлений, таких как фронтенд или бэкенд, но и у разных вводимых функций и реализованных фич.
Существует несколько типов архитекторов — архитекторы решений, которые специализируются на оценке текущих технологических проблем и задач для планирования будущих изменений — они больше общаются с клиентами и исходят из бизнес-задач. Также существует ещё один тип архитекторов — технические архитекторы, которые внедряют различные инструменты в зависимости от потребности бизнеса и моделей, которые строят архитекторы решений. Этот тип архитекторов чаще работает напрямую с разработчиками, а не с клиентами или бизнесом.
Архитекторы, по сути, должны обеспечивать решение бизнес-задач при помощи того, как будет строиться продукт. При этом архитекторы не только придумывают структуру и берут на себя ответственность за создание системы ещё до её фактического появления, но и контролируют процесс разработки. Кроме того, архитекторы прорабатывают шаблоны взаимодействия компонентов внутри программы, прописывают сценарии взаимодействия, определяют, каким должен быть формат хранения и передачи данных.
Если клиенту нужно разработать приложение, то архитектор должен знать точно, каким образом это можно сделать, не наступив на все существующие грабли.
Обязанности архитектора
Одним из главных навыков в этой профессии считается умение проектирования и анализа предметной области: в самом начале разработки архитектору необходимо выяснить все требования от заказчика, который хочет получить собственный сервис. Им может быть как внешний клиент, которому необходимо разработать какой-то продукт, так и внутренний. Например, в компании, где работает архитектор, считают, что им нужен собственный мессенджер. Для этого архитектор составляет план и техническое задание для проектировки новой системы, анализирует все требования, после чего создает текстовые и графические материалы с описанием всей архитектуры решения, данных и информационных систем. По итогам должен появиться проектный документ, по которому в дальнейшем будут работать разработчики.
Гид по профессии тестировщик: чем занимается специалист в сфере QA, сколько зарабатывает, что надо знать и где учиться.
Мы проанализировали существующие вакансии в сфере IT-архитектуры и отдельно вынесли ключевые требования работодателей к кандидатам:
- Опыт работы Solution-архитектором;
- Опыт работы Senior-разработчиком не менее 3 лет;
- Опыт в WEB-разработке не менее 3 лет;
- Знание архитектурных паттернов: SOA, микросервисная архитектура, гексагональная архитектура, многослойная архитектура.
- Понимание устройства IT-системы: ключевые сервисы, их домен, принципы работы, связи между сервисами.
- Умение находить общий язык как с техническими специалистами, так и с заказчиками со стороны бизнеса. Навыки понимания сути бизнес-проблемы, аргументированного донесения своих предложений до участников команды, возможности защиты своих проектов.
Эксперты — о работе архитектора и необходимых навыках
Мы попросили архитекторов и разработчиков рассказать, чем они занимаются на работе, какие им нужны навыки и какие они используют инструменты.
Александр Казаченко, руководитель разработки кредитных продуктов для бизнеса, «Тинькофф»: «Если программист делает чуть больше, чем от него требуется — он может постепенно расти в архитектора»

— Чем работа архитектора отличается от работы обычного программиста? Чем вообще занимается архитектор в IT-компании?
Чтобы ответить на этот вопрос, нужно понимать, какие вообще бывают архитекторы и разработчики. По разработчикам все понятно: junior, middle, senior.
Архитекторов я разделяю на solution architect и enterprise architect. Это очень глубокая тема и можно на её основе писать целые книги. Прокомментирую от себя так:
Enterprise architect — разрабатывает дизайн взаимодействия систем и их эксплуатацию на глобальном уровне. Вообще эта роль мало распространена, так как необходимость в ней появляется только в случае больших масштабов.
Solution architect — отвечает за координацию работы разработчиков, он выбирает фреймворки и другие инструменты, контролирует работу с техническим долгом. При этом, он является «играющим тренером» и какую-то часть времени пишет код.
Тут мы видим, что solution architect очень похож на senior-разработчика — и это правда. В нашей компании остро поднимался вопрос: а зачем вам архитекторы? Почему senior не могут выполнять эту работу? К единому мнению мы не пришли, но для себя я вынес следующее:
- Разработчики на 100% сфокусированы на разработке, и если они будут часто переключаться на другие вопросы — описание схем взаимодействия, принятие решений о выборе технологий и так далее, то это будет неэффективно.
- Роль solution architect подразумевает много коммуникаций, что обязывает иметь сильные soft-skills. Senior-developer не всегда в этом силен.
- Для принятия качественных решений нужно обладать некоторым опытом и знаниями систем. Опять таки, senior-developer не всегда может знать, что есть за пределами его приложения.
— Как долго нужно работать программистом, чтобы дойти до сферы архитектуры? Как становятся архитектором в команде?
Если программист делает чуть больше, чем от него требуется — это значит, что он может постепенно расти в архитектора. Если разработчик находит время на документирование, принимает решения о взаимодействии со смежными системами и имеет представление о системах вокруг его приложения, то это открывает для него путь на позицию архитектора.
Естественно, помимо этого он должен быть отличным программистом и иметь уверенные знания о паттернах и принципах проектирования.
Сколько на это нужно времени? Не знаю, все индивидуально.
— Есть ли жизнь после архитектуры? Куда расти архитектору?
Вариантов развития очень много.
Можно расти вширь: стать уверенным разработчиком фронтенда, бэкенда, мобилы. Или, например, развивать инженерные практики: автотестирование, SRE, администрирование. Кроме того, архитектор может расти в менеджмент, например, стать CTO.
Можно вообще уйти из IT и начать разрабатывать электронику — мне кажется, что навыки, приобретенные на позиции архитектора, будут полезны.
— Как архитекторы занимаются тайм-менеджментом и все успевают? Как происходит этот процесс?
Есть много инструментов:
- Календарь
- Заметки
- Reminder в Slack
- Делегирование
- Регулярные архком митинги
- PlantUML-диаграммы
- И многое другое
Можно взять любой курс по тайм-менеджменту — и он наверняка вам подойдет.
— Какие технологии должен знать архитектор?
Зависит от предметной области и стека, но, в среднем по больнице, архитектор должен хорошо понимать:
- Что такое компьютер и как он работает. К сожалению, я встречал разработчиков, которые годами программируют, но при этом плохо понимают, как работает оперативная память.
- Сетевые протоколы передачи данных.
- Паттерны и принципы проектирования — это очень обширная тема, которая включает в себя очень много информации.
- Документирование решений.
В общем — всё то, что универсально для любого стека, и является базой для архитектуры и проектирования в частности.
Александр Бындю, IT-архитектор, Byndyusoft: «IT-архитектура рождается исключительно из бизнеса, у неё нет других источников»

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

Большая часть вакансий в этой сфере открыта в Москве, еще есть немного в Петербурге, в регионах вакансий архитектора сейчас почти нет. При этом из 100 вакансий удаленную работу подразумевает только одна вакансия — вероятно это связано с большим количеством коммуникации, которые должен совершать IT-архитектор в команде.
Где учиться архитектуре
На Хекслете сейчас нет профессии архитектор, однако у нас есть несколько курсов, которые помогут будущим архитекторам получить хотя бы часть необходимых знаний.
- Основы программирования.
- Введение в программирование.
- Основы командной строки.
- Системы контроля версий.
- Основы Ansible.
- Операционные системы.
- Основы реляционных баз данных.
- Протокол HTTP.
- Автоматическое тестирование.
- Продвинутое тестирование.
Кроме того, мы советуем прочитать книгу «Код. Тайный язык информатики», посмотреть вебинар «Архитектура и дизайн ПО, паттерны в ФП» с Александром Граниным на нашем YouTube-канале, интервью с Александром Казаченко, архитектором Tinkoff.ru, лекцию «Организация бизнес-логики: вебинар для разработчиков» с главой Хекслета Кириллом Мокевниным.
Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях
Кто такой архитектор в ИТ и как им стать
Если нужно построить здание, компания нанимает архитектора. Он придумает, как здание будет выглядеть, из чего состоять и как им будут пользоваться. В разработке тоже есть архитекторы, и делают они примерно то же самое: решают, как в целом будет работать программа и какие технологии будут использоваться.
Что делает архитектор
Задача архитектора в ИТ — продумать и принять ключевые решения по проекту:
- из каких модулей будет состоять программа;
- как они будут связаны;
- будет ли это монолит или микросервисы;
- какие языки для этого нужны;
- ООП, функциональное программирование или что-то ещё;
- как дальше масштабировать проект;
- какие технологии и решения применяются в проекте.
Архитектор не лезет в код, а работает с проектом на верхнем уровне — идей, смыслов и стратегических решений. Например, одна из задач архитектора — выбрать такой набор языков и библиотек, чтобы он не устарел, пока пилится продукт, и эти языки поддерживались ещё несколько лет после выпуска проекта.
С этой точки зрения будет глупо выбрать основным языком Python 2.x, потому что официальная поддержка уже прекращена. Даже если в компании есть команда гениальных программистов именно на Python 2.x, то проект всё равно лучше делать на третьей версии.

Архитектор и программисты
Хоть сам архитектор не пишет код (или делает это в исключительных случаях), но его работа влияет на всех остальных членов команды:
- джуниоры, мидлы и сеньоры пишут код на том языке и с теми технологиями, которые выбрал архитектор;
- тимлид управляет командами в соответствии планами развития проекта, которые установил архитектор;
- тестировщики проверяют, что все заявленные возможности работают без ошибок;
- девопсы и системные администраторы настраивают рабочее окружение и сервисы, чтобы всем остальным было удобно работать над проектом.
Какие бывают архитекторы ПО
Среди архитекторов в ИТ тоже есть свои специализаци и направления.
Например, если компании нужно выбрать язык, технологии и фреймворки, чтобы написать самую быструю программу, то зовут software-архитектора. Ещё он нужен, когда в программе планируется много разных модулей и их нужно грамотно соединить друг с другом.
Если задача — интегрировать программу в другую большую систему или развивать уже готовый продукт, то здесь будет больше полезен solution-архитектор. Он прикинет все возможные варианты, просчитает их плюсы и минусы и найдёт оптимальное решение.
Отдельное направление — архитектор баз данных. Он требуется, когда в проекте планируется сложная база с кучей связей, и от того, как она будет спроектирована, зависит быстродействие и надёжность. Такие архитекторы изучают требования к данным, к их обработке и исходя из этого строят идеальную схему базы под этот конкретный проект.
Зарплата архитектора
По данным Хабр Карьеры, средняя зарплата архитектора ПО —
275 000 рублей в месяц.Интересно, что джуниоров среди архитекторов нет — вакансии начинаются от мидла, но в основном требуются сеньоры.

Как им стать
Обычно архитекторами становятся сеньоры, которые давно и хорошо знают свою область, технологический стек и различные стандарты сборки для разных проектов. Им уже неинтересно просто программировать — у них достаточно знаний, чтобы заранее предвидеть возможные проблемы в разработке всех частей программы и сразу их учесть в решении.
Поэтому ответ на вопрос «Как стать архитектором» будет такой: изучайте свою и соседние специальности настолько хорошо, насколько это возможно, участвуйте во многих проектах и нарабатывайте опыт.
Архитектор = сеньор + опыт + умение видеть картину в целом.
Программный архитектор. Кто этот человек?
Для кого эта статья? Конечно, для людей, работающих в сфере ИТ. Для разработчиков, тестировщиков, менеджеров разного уровня, аналитиков и т.д.. Уверен, что и для общего развития всем другим людям, так или иначе, причастным к ИТ было бы все же интересно это прочитать. Просто для расширения своего кругозора, для понимания того как создаются Информационные системы
Что меня сподвигло написать эту статью? Определенный опыт взаимодействия с разного уровня руководителями. Рассмотрим такую ситуацию. У нас есть вакансия, звучит она как Архитектор. И, вроде бы, понимание есть, что должен делать этот человек, но по факту оказывается, ждут “эникейщика”.
Что еще? Думаю, что надо договорится о подаче материала. Что, если это будет реальная история из моей практики, на мой взгляд, максимально демонстрирует работу Программного архитектора, а также некоторые выводы, которые можно сделать из нее. Постараюсь ответить здесь на следующие вопросы: Кто такой программный архитектор, какими навыками и знаниями должен обладать этот человек? Годиться?
И последнее, думаю надо представится. Меня зовут Владимир Воловиков. Работаю в ИТ сфере я уже почти 20-ть лет. В должности Системного архитектора и Программного архитектора, в общей сложности, более пяти лет. Имею четыре международных сертификата. Текущее место моей работы Системный архитектор, Банк ВТБ.
Три года в одном репозитории
Моя должность Архитектор веб-решений. Старт нового проекта. По сути новый проект — реинкарнация старого. Новый дизайн. Немного новых функций. И что в нем делать архитектору? Пока не понятно. Давайте заглянем внутрь!
“Фронт” — это JavaScript-фреймворк Vue. Элементная база — некий распространенный фреймворк. В целом выглядит вполне современно. А что насчет данных? Как делаются запросы? Как данными манипулируют? Vuex? — Отлично! А на модули разбили? Да. Замечательно. А есть документация? Нет. А может быть комментарии к коду? Тоже нет! А почему у нас страница с расписание движения транспортных средств формируется почти 20 секунд? 20-секунд, Карл! Нагрузка смешная. Один запрос в секунду, ни пять, ни десять, а один. Один запрос в секунду на сервер и 20 секунд ответа!
“Бэк” — это PHP и Laravel. Всё предпоследних версий. Отличный фреймворк. Современный PHP. Но почему так плохо и долго работает? А как это работает? Есть описание API? Нет! Может быть есть описание структуры базы данных или диаграмма классов? Нет. Ну хотя бы описание какое-то бизнес процессов, какие-то бизнес правила, почему так или иначе делалось? Тоже нет!
Невозможно ответить на вопрос — почему так плохо работает, пока у нас не будет перед глазами всех необходимых артефактов. Пока мы не будет представлять, как это сделано, и почему именно так. Давайте заглянем в программный код и составим список маршрутов. Заглянем в базу данных. Попробуем составить ее структуру. Запишем результаты нашего анализа
- Количество “ендпоинтов”, которые использует наше приложение и то, что есть по факту — это две разные вещи. “Фронт” вызывает порядка десяти разных “ендпоинтов”, а в коде их больше пятидесяти
- Программный код “сервера” содержит две категории классов: Контроллеры и Модели. Содержимое методов контроллера это десятки, а порой и сотни строк кода. Модели, по большей части, просто набор методов, внутри которых происходит вызов хранимых процедур базы данных
- База данных, порядка десятка таблиц. Сложности составить схему нет. Но все эти таблицы не отражают реального бизнес процесса, так как основные данные получаем из процедур. Процедуры, в свою очередь, содержат огромное количество логики, условий, операций. Никакой документации нет, почему так и почему отсюда. Ну, и работает это очень медленно .
Чтобы делать какие-то выводы, всегда нужно разобраться с причинами: почему было сделано так? Если никакого протокола принятия решений нет, то, данную информацию можно получить только из уст участников этого процесса. Проще говоря, просто расспросить ключевых сотрудников и записать с их слов. В итоге имеем:
- “Бекенд” содержит избыточное количество “ендпоинтов”, потому что он один для нескольких проектов, а сделано это было так, потому что:одни и теже модели (классы с методами вызывающие процедуры БД) используются в разных проектах. И как использовать их в разных проектах, при этом, иметь возможность их редактировать в одном месте, разработчики не знали
- “Бекенд” содержит только две категории классов, потому что такой путь предлагает “фреймворк” из коробки. Как зарегистрировать другие классы и что в них поместить, в соответствии с какими критериями, программисты не знали. Со временем программисты менялись и делали также как и было сделано до них. В итоге — три года в одном репозитории, со всеми вытекающими последствиями.
Итак. Суммируем. Мы знаем проблемы, мы знаем почему так было сделано. Самое время поискать методы решений.
- Наведем порядок в коде. Опишем правила, по которым мы будем код разносить по разным частям. Введем такие понятия как: HelpersLayer, ServiceLayer, ControllerLayer. Создадим документ, в котором дадим определением этим слоям. Сформируем несколько примеров наглядно демонстрирующих то, как должен выглядеть наш будущий программный код. Очень желательно этот документ завизировать у руководства.

- Введем понятия “Критерии приемки кода”. В отдельном документе опишем их. Настроим систему CI/CD так, чтобы сборка начиналась только после подтверждения ключевыми сотрудниками, а также, чтобы запускались тесты, в том числе и на соответствие критериям. Благо такие сервисы сейчас достаточно хорошо развиты

- Введем правила обязательного документирования кода Добавим автоматическую генерацию REST API (Swagger).
- Из всего списка полученных Моделей и Сервисов выделим те, что могут использоваться в других проектах. Полученный код вынесем в отдельный Git репозиторий и подключим его к основному репозиторию посредством submodule
Взглянем еще раз на то, что мы сделали. Если простыми словами описать проделанную работу, то, просто, навели порядок. Таким образом, удалось решить две из трех основных проблем, выявленных в начале нашей работы. Но что делать с процедурой, которая выполняется 20 секунд? Ответа все еще нет. И сейчас самое время вплотную подойти к этой задаче.
Было двадцать, стало — две
Итак, как понять, зачем делается вот этот вот запрос, а потом вот этот? Из названий, особенно, если их сочиняли те же программисты, что программный код всего проекта, крайне сложно это выявить. Что если просто, взять и словами, обычными словами написать алгоритм. Ну вот просто подойти к специалистам и спросить, как по вашему должно это работать. Запишем. В итоге получим примерно вот такую картину
- Получить полный список всех Воздушных судов
- По каждому из Воздушных Судов получить
- Получить список Бортов
- Получить список Рейсов
- Получить список Резервов, если это доступно Пользователю
- Получить список Технических операций, если это также доступно Пользователю
Возможно, внутри Oracle Database, такие манипуляции норма, но у нас ни Oracle. Очевидно, что такие манипуляции излишне сложны. Ну, и очевидное решение, почему бы не разбить все это на отдельные, небольшие процедуры, а сведением, обработкой полученных данных, уже заниматься на уровне приложения? И вот уже у нас уже не двадцать секунд запрос исполняется, а десять. И все равно, это долго. Что можно сделать еще?
А что, если мы часть запросов будем исполнять параллельно? Получить список Бортов, получить список рейсов, все это не блокирующий действия. Давайте, попробуем. Итог — 2 секунды.

Было двадцать, стало — две. Прогресс очень существенный. Но совершенству нет границ. А давайте, попробуем добавить кэширование? В самом деле, если входные параметры одинаковые, то зачем запускать заново всю процедуру расчета?

Подведем итоги
Кто такой Программный архитектор?
Это человек занимающийся архитектурой программного кода, в больших и сложных проектах, тот кто формирует четкие правила и критерии работы.
Чем отличается Программный архитектор от Технического лидера команды (TeamLead)?
Технический лидер команды может выполнять роль Программного архитектора. Вполне может быть так, что, в начале работы над проектом, Технический лидер проекта выполняет роль Архитектора, занимается, именно разработкой архитектуры. И после того, как весь каркас будет сделан, уже, специалист переключается на другие части. Может писать код. Может заниматься организацией работы. Может просто контролировать уже сделанное, внедрять результат своего труда.
Идеологически, Технический лидер команды, это, в первую очередь, об организации работы, о жизненном цикле разработки ПО, о современных подходах, о ролях в командах. Программный архитектор, это именно архитектор, тот, кто отвечает на вопросы: как должно быть, по каким правилам мы этот код помещаем сюда, а этот туда. И если Технический лидер команды может не писать ничего, то Программный архитектор, это как раз об этом. Продукт его труда это документы, это текст, схемы и т.д И да, в целом, на практике, могут быть такие сценарий, когда Программный архитектор не разбирается в организации процессов разработки ПО и ролях, это не обязательные для него навыки и знания. Но мне такое никогда не встречалось. Все же ступень Программный архитектор, это, на мой взгляд, ступень, которая следует после ступени Технический лидер команды.
Должен ли уметь программировать Программный архитектор?
Скорее да, чем нет. Если эта роль, и ее совмещает Технический лидер команды, то да. В случае, если этот человек выделенный, например, в случае, если команд уже много, то времени на кодирование уже у этого человека не останется. В этом случае, только функции проверки и скорее всего функции наставничества.
Какими компетенциями должен обладать Программный архитектор?
Как разработчику баз данных, ему нужно разбираться в
- работе различных баз данных, знать их особенности, плюсы, минусы
- естественно, уметь составлять запросы, оптимизировать их и возможно, уметь писать исполняемые процедуры и триггеры
Как бэкенд разработчику, ему надо
- владеть одним, двумя, а лучше тремя разным языкам разработки, возможно с различным уровнем владения
- понимать в целом, сильные и слабые их стороны
- владеть несколькими паттернами проектирования
Как разработчику фронтенда, пригодятся знания
- Javascript. Тут без него никак
- Один, два фреймворка.
- несколько паттернов организаций работы с данными
Как архитектору, аналитику
- уметь внятно и точно выразить свои мысли
- переложить их на бумагу
- владеть одной, двумя UML нотациями, например Диаграмма классов (Class Diagram) и Диаграмма деятельности Activity Diagram. Как-то же вам нужно будет общаться коллегами, с руководством. Не покажешь же им программный код верно?
Как Технический лидер команды
- Понимать жизненный цикл разработки программного обеспечения
- Какие роли есть, кто что делает, в какой последовательности
- Какие зоны ответственности у коллег, какие задачи должен решать Сеньор, а какие Джуниор, каков должен быть результат работы Дизайнера, так, чтобы его можно было взять в работу на следующем этапе и т.д.
- Опыт работы с Git репозиторием, его настройки, решение конфликтов и т.д.
Как Девопс инженер
- Опыт настройки CI/CD
- Коммуникационные навыки
А еще есть профстандарт. Официальный документ. Смотреть тут
Сколько лет должно быть практики, чтобы быть Программным архитектором?
Из того списка навыков, которыми должен владеть архитектор, в целом, опыта работы в области ИТ у него должно быть не меньше десяти лет. С большой вероятность. этим людям приблизительно 35-37 лет.
Стоит ли расти до Программного Архитектора? Стоит ли так строить карьеру?
Если вами движет финансовый интерес, и вы считаете что это ступень, это однозначно повышение финансового состояние, то мой ответ — нет. Не стоит. Действительно, хороший, глубокий разработчик, может получать больше. Архитектор, это практически всегда рост вширь. Это масса “софт” скилов, которые нужно будет развить, причем как это делать, совсем не очевидно. Нельзя открыть книжку или закончить курсы, и вот вы уже прекрасно ладите с людьми, а начальство вас боготворит. У вас просто может не быть таких человеческих характеристик.
Заключение
Вырасти с Джуниор разработчика, до Мидла — пару лет. С Мидла разработчика до Сеньора — три-пять лет. Для следующего шага, вам уже понадобится гораздо больше времени, уже нужны лидерские качества и организационные навыки. Еще сложней сделать шаг на следующую ступеньку — Программный архитектор. Добавьте на свою полку знаний навыки аналитики, софт скилы, презентации и умение грамотно выражать свои мысли: и устно и письменно. Вот такой вот маршрут. Ни убрать, ни добавить.

За помощь в подготовке данной статьи автор благодарит Балахчи Анну Георгиевну, Иркутский Государственный Университет, Факультет Бизнес-коммуникаций и информатики, зав.кафедры, кандидат физико-математических наук
- Совершенный код
- IT-инфраструктура
- UML Design
- Управление разработкой
- Распределённые системы
Кто такой ИТ-архитектор и насколько перспективна эта профессия

Потребность в ИТ-архитекторах продолжает расти, особенно с переходом бизнеса в онлайн. Рассказываем, чем занимаются такие специалисты, как получить эту востребованную профессию и добиться в ней успеха
Об авторе: Антон Мартынов — руководитель архитектурного комитета глобальной ИТ-компании SimbirSoft, кандидат технических наук. Стаж в ИТ-сфере 21 год, из них 15 лет — в проектировании ИТ-архитектуры.
Кто такой ИТ-архитектор и чем он занимается
- требования заказчика сложно выполнить с помощью стандартных решений;
- решение должно быть универсальным, гибким и масштабируемым;
- проект большой и может потребоваться микросервисная архитектура;
- необходимо хранить и обрабатывать большие объемы данных;
- проект с высокими требованиями по Highload.
Пример 1. Если речь идет о внутренней системе, с которой работают не более 500 пользователей, а их основная задача — выполнение типовых операций, например, оформление и подтверждение заказа, для разработки чаще всего будет достаточно типовых решений. Специалисты смогут реализовать их на основе технического задания и стандартных практик.
Пример 2. Когда нужна сложная распределенная система со множеством противоречивых требований и большим объемом обрабатываемых данных, то есть требуется параллельно загружать и обрабатывать документы большого объема, подключают ИТ-архитектора. Разработка архитектурной концепции на этапе проектирования в этом случае позволит решить большую часть архитектурных и технологических вопросов.
В задачи ИТ-архитектора входит:
- проработка концепции ИТ-системы с целью обеспечить ее гибкость, масштабируемость, нагрузку и безопасность;
- анализ рисков с учетом долгосрочной перспективы развития;
- разработка архитектурной концепции;
- контроль реализации проекта — архитектурный надзор за ходом разработки в определенных точках;
- аудит кода.
Насколько популярна профессия ИТ-архитектора
В последние несколько лет популярность профессии ИТ-архитектора растет. Это связано, прежде всего, с увеличением требований бизнеса к ИТ-решениям и запросом на сложные информационные и интеллектуальные системы. С переходом компаний в онлайн эта специальность становится еще более востребованной как в бизнесе, так и в крупных госкорпорациях.
Если лет десять назад большинство бизнес-потребностей можно было достаточно легко покрыть набором типовых решений, то сегодня эти требования становятся все более специфическими. Это и большое количество интеграций с внешними системами, использование облачных решений, необходимость использования noSQL-решений, Big Data, применение искусственного интеллекта и т.п.
В начале октября на обсуждение вынесли проект профстандарта «Архитектор программного обеспечения». Это говорит о том, что необходимость в развитии этой профессии подтверждена и на государственном уровне.

Как стать ИТ-архитектором
В нашей стране вузы сегодня не готовят специалистов этого профиля. Чтобы стать ИТ-архитектором, нужно получить базовое техническое образование и дальше строить карьеру в ИТ-сфере с нуля. Молодым сотрудникам важно быть инициативными и искать для себя новые вызовы, которые помогут им вырасти.
Получить хороший опыт и многому научиться можно непосредственно в ИТ-компании на коммерческих проектах длительностью не менее одного года. Решая задачи на таких проектах под присмотром старших коллег, молодые сотрудники получают опыт, который «усваивается» быстрее.
Пример. В практике нашей компании было достаточно примеров, когда сотрудники архитектурного комитета приходили на помощь коллегам в вопросах оптимизации запросов к базе данных, разделения приложения на микросервисы, настройке взаимодействия между компонентами распределенной системы и т.п. Как правило, к этому моменту команда проекта уже была достаточно погружена в тему, разбирала различные варианты решения задачи, однако они по тем или иным причинам не подошли. В результате, когда архитектор предлагал решение, происходило глубокое и осознанное понимание, почему нужно делать так, а не иначе. Книги и статьи, к сожалению, такую практику не дадут.
Очень часто ИТ-архитекторы вырастают в таком сотрудничестве и взаимодействии на проектах. Как правило, в эту профессию приходят опытные backend-, frontend-, web-разработчики и системные администраторы. Хорошо, если на старте карьеры есть возможность поучаствовать в сложных проектах помощником ИТ-архитектора. Это помогает гораздо быстрее войти в профессию и понять, как именно то, о чем пишут в книгах, реализуется на практике.

Hard skills, без которых не обойтись в работе ИТ-архитектора
Базового образования, как правило, бывает недостаточно. Чтобы ИТ-архитектору успешно выполнять поставленные перед ним задачи, он должен обладать хорошим кругозором и знанием современных технологий, а также иметь опыт работы на сложных коммерческих проектах от пяти лет.
ИТ-архитектор должен знать стандарты и методики разработки, модификации программных продуктов и уметь:
- проектировать архитектуру нагруженных систем;
- создавать горизонтально масштабируемые приложения;
- обеспечивать баланс между стоимостью разработки и гибкостью решения для быстрого внедрения будущих требований;
- выбирать и обосновывать выбор технологий, оптимального технического решения в соответствии с планами развития продукта и бизнеса;
- контролировать реализацию: закладывая каркас системы и осуществляя архитектурный надзор;
- прорабатывать и принимать решение по адаптации продукта к новым требованиям бизнеса, даже если в начале процесса проектирования они не были известны в полном объеме;
- разрабатывать структуру хранения данных.
Что касается этих требований, для начала достаточно изучить теоретические вопросы по книгам (например, Software Architecture in Practice и Designing Software Architectures: A Practical Approach), статьям, видеороликам и другим открытым источникам. А уже потом начать применять эти методы на практике. Далее для расширения кругозора и профессиональных знаний нужно будет изучать документацию, следить за информационными источниками (прежде всего, англоязычными), на которых появляются данные о самых передовых технологиях.
Soft skills, необходимые для успеха в этой профессии
Помимо теоретических знаний и опыта, специалист должен уметь правильно излагать свои мысли, общаться с клиентом на языке бизнеса, презентовать результаты работы и обосновывать предлагаемые решения.
В целом, ИТ-архитектору необходимо развивать следующие soft skills:
- коммуникабельность,
- умение работать в команде,
- критическое и системное мышление,
- абстрактное и инновационное мышление, способность выходить за рамки и шаблоны;
- самомотивацию, стремление к постоянному развитию, готовность самостоятельно осваивать необходимые навыки и обучать других;
- целеустремленность,
- навыки тайм-менеджмента,
- ответственность,
- принятие решений,
- стрессоустойчивость.

Какие перспективы перед специалистами открывает эта профессия
Некоторые считают, что ИТ-архитектор — это последняя ступень горизонтального роста специалиста, дальше ему двигаться некуда и пора остановится. Но это не так. Начиная осваивать определенную область более детально и профессионально, постепенно приходишь к пониманию новых задач и вопросов. Это влечет за собой потребность изучать эту сферу еще глубже, и процесс становится бесконечным.
Опыт и полученные в этой профессии навыки позволят специалистам впоследствии вырасти до технического директора (CTO) или директора по цифровой трансформации (CDTO). Поскольку работа ИТ-архитектора подразумевает сочетание технических и управленческих компетенций, а также комплекс hard и soft skills, которые могут помочь построить карьеру и стать в перспективе CTO или CDTO.
Как понять, хотите ли вы быть ИТ-архитектором
Перепрофилироваться в ИТ-архитектора стоит, если:
- вам стало «тесно» в том направлении разработки, где вы сейчас работаете, и вы хотите развиваться дальше;
- вы хотите расширить кругозор, нагрузить свой мозг технически сложными, но интересными задачами;
- вы хотите принимать решения и брать за них ответственность, участвовать в обсуждении жизненного цикла проекта.
Кроме этого, у вас должно быть непреодолимое желание трудиться в ИТ-сфере, способность быстро обучаться и усваивать огромные массивы информации.
А предложенный нами чек-лист поможет определить, соответствуете ли вы на данном этапе требованиям, которые компании предъявляют к ИТ-архитекторам, и понять, что нужно подтянуть для перехода в эту профессию.
Требования к ИТ-архитекторам коммерческих проектов: чек-лист
К кандидатам на должность архитектора в ИТ-компаниях обычно предъявляются следующие требования:
- Опыт работы в ИТ сфере — не менее пяти лет.
- Опыт проектирования и разработки архитектуры коммерческого проекта.
- Опыт написания технической документации, составления презентации и их защиты перед заказчиком.
- Наличие сертификата архитектора и по соответствующему направлению/стеку (желательно).
- Понимание основ сетевых и web-технологий (RESTful, HTTP, TCP/IP).
- Знание базовых принципов тестирования (различные виды тестирования, опыт практического применения).
- Знание стандартов и методик разработки и модификации программных продуктов
- Опыт проектирования архитектуры нагруженных систем.
- Знание и опыт применения базовых паттернов проектирования.
- Знание основ контейнеризации (Docker, Kubernetes и так далее).
- Понимание общего процесса разработки программного обеспечения.
- Умение обеспечивать баланс между стоимостью разработки и гибкостью решения для быстрого внедрения будущих требований.
- Умение выбирать и обосновывать выбор технологий.
- Умение контролировать реализацию: заложить каркас системы и вести архитектурный надзор.
- Умение прорабатывать и принимать решение по адаптации продукта к новым требованиям бизнеса, даже если в начале процесса проектирования они не были известны в полном объеме.
Этот список может незначительно меняться в зависимости от специфики проектов, но в целом он показывает общий уровень требований к специалисту.