Архитектор программного обеспечения — это ключевая фигура в процессе разработки IT-проектов. Он занимается построением IT-систем для решения бизнес-задач. Такой специалист должен отлично разбираться во всех нюансах проектирования.
Как стать архитектором ПО? Зачем он нужен и какие задачи выполняет? Подробнее об этой профессии мы расспросили IT-эксперта, который занимается архитектурой ПО с 2015 года и работал техническим продакт-оунером в «Сбере», Александра Гавриленко.
Архитектор ПО: задачи и особенности профессии
Архитектор должен разбираться во всем. Он — связующее звено между бизнесом и технологиями. Именно архитектор ПО определяет, как будет построен проект, учитывая потребности бизнеса и особенности технической реализации. Такой специалист должен пройти путь от junior-программиста до техлида, чтобы учитывать все особенности разработки.
В разработке ПО архитектор — что-то между инженером, дизайнером и проектным менеджером, который много взаимодействует с командой и заказчиком и отвечает за успех всего проекта.
Задачи архитектора ПО:
- Определять потребности заказчика и управлять командой разработки.
- Разрабатывать архитектуру ПО, технические требования и документацию к каждому компоненту системы.
- Выбирать наиболее подходящие инструменты и технологии: языки программирования, площадки, фреймворки, базы данных и библиотеки.
- Проводить анализ и оценку используемой архитектуры, совершенствовать и масштабировать ее.
- Следить за реализацией проекта, анализировать технические метрики, выявлять и быстро устранять ошибки.
- Изучать новые технологии и инструменты для повышения качеств архитектуры ПО.
Как стать архитектором ПО
Таких специалистов не готовят в вузах, а в общероссийском классификаторе профессий и должностей архитектор ПО не значится.
Просто перейти из программистов в архитекторы не получится. Такой специалист должен обладать обширными знаниями в области программирования. Архитектор — высшая ступень разработчика.
Технические навыки и знания архитектора ПО:
- Программирование на разных языках: C, C++, Python, Go. Важно владеть хотя бы одним языком на высоком уровне и понимать принципы других, чтобы определять, на каком из них лучше реализовать различные компоненты проекта.
- Знание популярных систем управления базами данных: MySQL, PostgreSQL, Apache Cassandra и MongoDB. Необходимо понимать, как функционирует каждая из них, чтобы выбрать наиболее подходящую для конкретного проекта. Важно учитывать тип работы (OLAP/OLTP) и требования к сохранности данных.
- Понимание устройства компьютеров и операционных систем: iOS, Android, Microsoft Windows, Linux и MacOS. IT-архитектору важно знать, как функционируют ключевые компоненты оборудования, как программное обеспечение будет работать на разных платформах.
- Знание о принципах работы API. Необходимо хорошо разбираться в механизмах взаимодействия программ и обмена данными между ними.
Чтобы программа получилась такой, какой ее хочет видеть заказчик, архитектору ПО нужно взять понемногу от профессий бизнес-аналитика, исследователя, инженера и проектного менеджера. Это про умение определять потребности, правильно подбирать команду. Также важны способность разобраться в сложных вопросах и креативный подход к делу.
Знание исключительно «матчасти» перейти от разработчика к архитектору не поможет. Нужно обладать дипломатическими и аналитическими данными, которые появляются с опытом.
Можно назвать мой путь в IT классическим. Информатикой увлекся еще в школе, поступил в Бауманку по олимпиаде без экзаменов. На третьем курсе пошел работать системным администратором, а с шестого пробовал себя в разработке. Мне всегда нравилось программировать, в этом русле я и развивался. В начале пути я поставил себе цель — расти как профессионал.
Десять лет назад пришел работать в «Сбер» senior Java-разработчиком и рос внутри компании. Главное — не бояться ответственности. Так можно многого добиться.
Любой уважающий себя solution-архитектор рождается из разработчика. Ты должен отлично знать тот язык, на котором разрабатываешь, все его фреймворки, инструменты, подходы к разработке. Дальше ты растешь в ширину, максимально изучаешь архитектуру проектирования и шаблоны. Нужно уметь смоделировать, как один модуль будет работать и как 20 модулей будут взаимодействовать друг с другом.
Также важно понимание методологии Agile и практик DevOps. Agile-подход подразумевает частые релизы в связи с новыми или изменившимися требованиями. DevOps-практики же акцентируют внимание на автоматизации сборки релизов и выкатывании новых версий в промышленную эксплуатацию. Архитектура системы должна учитывать все это, быть гибкой и позволять безболезненно дорабатывать систему.
Конечно, важны и soft skills. Архитектор должен одновременно уметь отстаивать свое мнение и быть гибким. Не нужно быть категоричным, лучше выслушать все мнения, пропустить через себя и выбрать наилучшее. Важно быть авторитетом в команде, уметь договариваться и обсуждать.
Необходимо находить общий язык с бизнесом. Доказывать, что не нужно строить космический корабль там, где достаточно лодочки. При этом сохранять взаимное уважение с заказчиком.
Сколько зарабатывает архитектор ПО
Архитектор ПО — это самая высокооплачиваемая позиция среди разработчиков. Медианная зарплата специалистов этого профиля в 1,5 раза выше, чем у бэкенд- и мобильных разработчиков.
Зарплатная вилка очень широкая. В разных компаниях на этой позиции предлагают от 150 000 до 500 000 рублей. Уровень заработной платы зависит от масштаба компании, ее специфики и задач специалиста. Чем больше человек зарабатывает на позиции IT-архитектора, тем больше у него обязательств и тем сложнее уволиться.
Если архитектор ПО — это высшая ступень разработки, то как расти дальше?
Архитектор ПО: плюсы и минусы профессии
Архитектор ПО — это очень ответственная работа. Каждый в этом найдет как минусы, так и плюсы.
Преимущества:
- Интересные проекты и руководство на высоком уровне. Архитектор напрямую работает с заказчиками и первыми лицами компании, он определяет, каким будет будущее ПО.
- Востребованность. Этот пост могут занять только опытные и высококвалифицированные программисты. Рекрутеры по всему миру отмечают дефицит таких специалистов — тех, кто не только умеет писать код, но и способен разрабатывать архитектуру.
- Высокая заработная плата. Зарплата IT-архитектора зачастую лишь немного превышает оклад старшего разработчика. Основная часть дохода на этой позиции обычно приходится на премии, которые выплачиваются после успешного завершения проекта.
Недостатки:
- Высокий уровень ответственности. Архитектор программного обеспечения играет ключевую роль в проекте. От его работы зависит успех всей команды. Это может означать стресс и переработки. Также с должности архитектора сложно уйти до окончания проекта.
- Меньше работы руками непосредственно с проектом.
Коротко о том, кто такой архитектор ПО
Архитектор ПО — это специалист, который планирует структуру сервиса в соответствии с требованиями бизнеса и техническими возможностями команды разработки. Как правило, архитекторы ПО вырастают из сильных старших разработчиков. Такой сотрудник должен владеть минимум одним языком программирования и понимать, как работают другие, уметь обращаться с базами данных и API. Архитектор ПО определяет, как будет выглядеть и работать конечный продукт, мало работает руками и больше исследует и принимает решения.