Программирование • 19 сентября 2023 • 5 мин чтения

Кто такой архитектор ПО и как им стать

Расскажем, чем занимаются IT-архитекторы, почему им платят больше остальных разработчиков и как получить профессию, которой на самом деле нет.

Кто такой архитектор программного обеспечения

Архитектор ПО — это скорее должность или роль в компании, чем профессия в общепринятом понимании. Таких специалистов не готовят в вузах, в России нет ни одного человека с дипломом этого профиля, а в общероссийском классификаторе профессий и должностей (ОКПДТР) архитектор ПО не значится.

IT-архитектор — это роль в проекте, которую выполняет высокоуровневый программист, как правило,
бэкенд-разработчик

Архитектор ПО — это опытный программист, который может не только написать код, но и глубоко вникнуть в идею заказчика, придумать, как её лучше реализовать с технической точки зрения, и спроектировать будущую программу с нуля. В разработке ПО архитектор — что-то между инженером, дизайнером и проектным менеджером, который много взаимодействует с командой и заказчиком и отвечает за успех всего проекта.

Что именно делает архитектор ПО, проще объяснить на примере. Когда нужно написать небольшую программу, например калькулятор ипотеки, разработчик может справиться в одиночку: обсудить детали проекта напрямую с заказчиком и за несколько дней написать программу. Для разработки более масштабных проектов, например банковского приложения, понадобится от нескольких месяцев до года и команда специалистов — UI/UX дизайнеры, разработчики, тестировщики. Каждый отвечает за свою часть, поэтому кто-то должен управлять всем процессом — собирать пожелания заказчика и продумывать, как их реализовать, разбивать проект на подзадачи и раздавать их исполнителям. Такого человека называют архитектором ПО.

Дмитрий Орлов, технический менеджер проектов
Чтобы разработать информационную систему с множеством разных сервисов, например для банка, нужны топовые IT-архитекторы. Из-за того, что таких специалистов мало, появились «архитекторы решений» — Solution Architect. Это специалист высшего уровня, который способен разработать систему от А до Я, с опытом работы в крупных компаниях и уже реализованными проектами. Он легко разбирается в запросах бизнеса и проектирует систему — при этом за реализацию проекта могут отвечать другие специалисты.

Знания и навыки архитектора ПО

Чтобы спроектировать ПО с нуля, IT-архитектор должен знать, из каких компонентов оно будет состоять и что нужно для его проектирования. Специалисту нужно обладать разносторонними знаниями, которые помогут принимать решения:
  • Языки программирования — например, С, С++, Python, Go и других. Не обязательно уметь писать код на всех — достаточно хорошо владеть одним языком и понимать, как устроены остальные, чтобы определять, на каком проще и быстрее написать разные компоненты программы.
  • Популярные базы данных — такие, как MySQL, PostgreSQL, Apache Cassandra, MongoDB, — нужно иметь представление о том, как работает каждая база, чтобы выбрать оптимальный вариант под конкретный проект, профиль работы (OLAP/OLTP) и требования к сохранности данных. При выборе необходимо учитывать, что придётся нанимать специалистов для обслуживания базы.
  • Устройство компьютеров и операционных систем — например, iOS, Android, Microsoft Windows, Linux, MacOS. IT-архитектор должен понимать, как работает жёсткий диск, что такое сервер и чем программа для iOS будет отличаться от программы для Linux, — это база, которая помогает предсказать, как именно будет работать ПО.
  • Принципы работы API. Нужно хорошо разбираться в том, как вообще устроены программы и как они обмениваются данными, — это позволит спроектировать распределённые системы, в которых разные компоненты будут корректно и надёжно взаимодействовать с внешними системами и между собой.
Материал по теме:

Что такое API и что о нём нужно знать веб‑разработчику
Однако знать только «матчасть» недостаточно. Чтобы программа получилась такой, какой её хочет видеть заказчик, архитектору ПО нужно взять понемногу от профессий бизнес-аналитика, исследователя, инженера и проектного менеджера. Рассмотрим, какие навыки стоит позаимствовать у этих специалистов.

Набор конкретных знаний, инструментов и навыков, которыми должен владеть архитектор ПО, зависит от компании и проекта. В крупных компаниях, например в Сбере или Яндексе, — масштабные проекты и сложные задачи, с которыми специалисты с небольшим опытом могут не справиться. Но в компаниях поменьше IT-архитекторы тоже нужны: например, чтобы интегрировать информационную систему сети ресторанов с Яндекс Едой или связать 1С небольшого производства с системой продаж Ozon. С подобными задачами вполне способны справиться даже новички в архитектуре. Достаточно понимать, как работают популярные базы данных, как разрабатывать и поддерживать системы заказчика, и иметь опыт разработки.

Обязанности архитектора ПО

Требования к кандидатам на эту должность и список обязанностей в разных компаниях могут отличаться. Вот усреднённый перечень того, чем должен заниматься архитектор ПО:
  • Выявлять потребности заказчика и взаимодействовать с командой разработчиков;
  • Исследовать рынок в поисках подходящих инструментов и технологий для решения бизнес-задачи;
  • Проектировать архитектуру ПО, разрабатывать к нему и каждому компоненту технические требования и документацию;
  • Подбирать оптимальные технологии, языки программирования, базы данных, библиотеки и фреймворки для технический реализации идеи заказчика;
  • Проводить оценку существующей архитектуры и предлагать решения для её улучшения и масштабирования;
  • Следить за реализацией проекта, анализировать технические метрики, выявлять и быстро устранять ошибки;
  • Изучать новые инструменты и технологии для улучшения архитектуры ПО.
Несмотря на то, что обычно в обязанности архитектора ПО управление проектами не входит, на практике приходится этим заниматься. В чистом виде рисунок архитектуры ПО заказчикам не интересен: большинство из них ждут, что IT-архитектор полностью возьмёт на себя управление проектом — разобьёт его на задачи, составит документацию к разным компонентам системы, напишет к каждому компоненту ТЗ, назначит исполнителей и сроки и будет отвечать на вопросы разработчиков и других членов команды. Чем больше и сложнее система, тем больше придётся брать на себя ответственности и делегировать задач.

Плюсы и минусы профессии архитектор ПО

Архитектор программного обеспечения отвечает за проект целиком — от идеи до результата. Отсюда и плюсы, и минусы его работы.
Преимущества

Недостатки

Престижная должность. Архитектор ПО выше по статусу, чем старший разработчик и даже тимлид. Он напрямую общается с заказчиками и первыми лицами компании, и именно он определяет, каким будет создаваемое ПО.

Высокие зарплаты. Сам оклад IT-архитектора может быть ненамного выше, чем у старшего разработчика. Большую часть дохода на этой должности обычно составляет премиальная часть. Как правило, она привязана к успешному завершению проекта. Некоторые компании, особенно западные, в качестве премий предлагают опционы.

Востребованность. Справиться с ролью архитектора ПО могут только высококвалифицированные программисты с большим опытом. Во всем мире рекрутеры жалуются на нехватку таких специалистов — тех, кто способен не только написать код, но и спроектировать архитектуру ПО, ещё меньше.

Нечёткие границы обязанностей. Большинство работодателей и HR не до конца понимают суть работы IT-архитектора, поэтому включают в список требований и обязанностей всё, что кажется им подходящим. В итоге границы «профессии» размываются и каждый раз приходится придумывать новые термины для обозначения должности.

Большая ответственность. Архитектор ПО — ключевая фигура. От него зависят другие сотрудники и успех всего проекта. Он не может уволиться, не закончив работу, без последствий для профессиональной репутации. Обычно компании даже прописывают условия увольнения в контракте. Нередко после ухода IT-архитектора из проекта приходится начинать всё заново.

Мало возможностей для профессионального роста. В работе архитектора ПО много однотипных задач: проекты разные, но конструктор всё тот же — базы данных, инструменты, фреймворки. И кроме того, IT-архитекторы — уже высококлассные разработчики, на которых все равняются. Расти они могут только за счет изучения новых технологий.

Сколько получают архитекторы программного обеспечения

Архитекторы ПО — самые высокооплачиваемые среди разработчиков, поскольку и работают за пятерых. Медианная зарплата специалистов этого профиля в полтора раза выше, чем у мобильных и бэкенд-разработчиков.

Динамика зарплат разработчиков по данным «Хабр.Карьеры» за первое полугодие 2023 года

Вилка зарплат огромная: на одной и той же должности в разных компаниях можно зарабатывать от 140 000 ₽ в месяц до полумиллиона. Зарплата архитектора программного обеспечения сильно зависит от компании, компетенций специалиста и необходимого уровня ответственности. Чем больше человек зарабатывает на позиции IT-архитектора, тем больше у него обязательств и тем сложнее уволиться.

В США специалисты на этой должности получают ещё больше, чем в России. По данным Glassdoor, архитекторы ПО в среднем зарабатывают 254 тыс. долларов в год.

Как стать архитектором программного обеспечения

Ворваться в профессию «с нуля» не получится. Чтобы проектировать ПО, нужен большой опыт в разработке — фронтенд, бэкенд или фулстек, а также высокая квалификация и широкий кругозор. Человек, который задумывается о профессии архитектора ПО, должен прекрасно знать минимум один, а лучше несколько языков программирования, уметь писать и читать код, а также на базовом уровне знать, как работают компьютеры и распределённые системы.

Архитектор программного обеспечения — один из вариантов карьерного пути бэкенд- или фулстек-разработчика

В сторону проектирования архитектуры ПО можно двигаться только с определённым багажом. Для этого стоит изучить:
  • средства и способы построения отказоустойчивых решений;
  • подходы к масштабированию ПО;
  • средства визуального проектирования ПО и распространённые нотации;
  • принципы проектирования и построения облачной архитектуры;
  • стандарты и методы обеспечения информационной безопасности;
  • шаблоны проектирования и интеграции приложений;
  • методы сравнения архитектурных решений.
Это далеко не полный список того, что пригодится архитектору ПО в работе. Существует два варианта, как можно добрать необходимые знания и превратиться из разработчика в архитектора:
  1. Самообразование. Можно читать профильную литературу, смотреть ролики на YouTube, учиться у старших коллег и много практиковаться. Разработчики в принципе постоянно чему-то учатся, поэтому разобраться в вопросе самостоятельно или призвать на помощь коллег будет несложно.
  2. Курсы. Это возможность получить готовый набор инструментов IT-архитектора, код-ревью и задать вопросы наставникам-практикам. Готовая программа поможет сэкономить время, систематизировать знания и получить необходимую базу для старта карьеры IT-архитектора.
На любом собеседовании в крупной компании разработчики проходят так называемую «архитектурную секцию» — HR-специалисты выясняют, способен ли кандидат решать задачи архитектора ПО. Если секция успешно пройдена, значит, у специалиста высокий профессиональный уровень и в будущем ему могут предложить должность архитектора ПО. Если ждать повышения не хочется, можно получить недостающие знания — самостоятельно или на курсах — и начать откликаться на вакансии по профилю.

Совет эксперта

Дмитрий Орлов
Чтобы стать архитектором ПО, нужны хорошая техническая база, опыт в разработке, системное мышление и творческий подход. Но главное — нужно уметь общаться с представителями бизнеса, задавать правильные вопросы, улавливать суть. Это умение для архитектора ПО первично. Одна из главных целей любого бизнеса — заработать денег: IT-архитектор тоже должен быть в этом заинтересован и знать «цену» технологиям.
Статью подготовили:
Дмитрий Орлов
Яндекс Практикум
Технический менеджер
проектов, автор курса «Архитектура программного обеспечения»
Яндекс Практикум
Редактор
Полина Овчинникова
Яндекс Практикум
Иллюстратор

Дайджест блога: ежемесячная подборка лучших статей от редакции

Поделиться

Успейте начать учебу в Практикуме до конца ноября со скидкой 20%

Thu Oct 03 2024 20:50:01 GMT+0300 (Moscow Standard Time)