Чем занимается архитектор программного обеспечения
Архитектор ПО: зачем он нужен и в чём его проклятие
Гость нового выпуска подкаста «Сушите вёсла» — архитектор программного обеспечения Егор Тафланиди. Обсуждаем, что это за метафизическая роль такая, какие сложности есть в работе и при чём тут тёмные силы.
Артём Кулаков и Рома Чорыев — разработчики Redmadrobot. Они записывают ламповые подкасты, где вместе с гостями обсуждают разные стороны создания ИТ-продуктов. Ниже ссылка на новый выпуск и ответы на несколько насущных вопросов.
Тайминг
01:40 Егор рассказывает, как стал архитектором
12:40 Популярные мифы: архитектор — высшая ступень развития разработчика; архитектор знает всё лучше всех и больше всех; архитектор не пишет код (потому что забыл как это делать); архитектор сидит и рисует какие-то схемы
31:20 Рассуждения о современных языках программирования
39:10 System/Solution/etc Architect. Что это вообще всё значит?
47:50 Обсуждение того самого «проклятия»
50:24 Как стать архитектором (warning: немного шуток)
55:16 Time management: один рабочий день архитектора — что он делает?
01:03:39 Какие есть сложность в работе и как их преодолеть
01:13:49 А что дальше: какие есть векторы развития
01:26:59 Ответ на вопрос: какой же true way для архитектора?
Кто такой архитектор ПО?
Архитектор — специалист, который занимается построением ИТ-систем для решения бизнес-задач. Он хорошо разбирается во всех нюансах проектирования систем.
Если нужно разработать, например, приложение, то архитектор расскажет, как это сделать, не наступив на грабли. Объяснит, какие технологии использовать, с какими проблемами можно столкнуться, и заложит фундамент для развития проекта. Авиационный конструктор решает, из чего построить самолёт, а архитектор — с помощью каких технологий разработать IT-систему, которая решит задачу.
Архитектор должен разбираться во всём?
В разговоре выяснилось, что это выходит само собой. Архитектор задействован в разных ситуациях: он общается с заказчиком, решает инженерные проблемы и даже участвует в планировании проекта. Хочешь не хочешь — а в бизнес углубляешься и менеджерский навык качаешь. Егор объясняет:
— Вся сущность сводится к двум вещам: архитектор должен решать задачи бизнеса и он должен уводить систему от ограничений. Если ты знаешь, что в системе нет физической возможности реализовать те или иные вещи, но есть бизнес-потребность, то твоя задача — придумать как и состыковать всё воедино. Можно сказать: сделать так, чтобы и овцы были целы, и волки сыты.
За день через архитектора проходит огромное количество информации от менеджеров, разработчиков, заказчиков. Поэтому под конец дня получается, что он знаком с ситуацией с разных сторон. Артём резюмировал:
— Архитектор — это больше про ширину, чем про глубину. Например, тебе необязательно уметь в Android работать с рефлексией и с какими-то низкоуровневыми вещами, но важно понимать, как всё это работает в целом.
Пишет ли архитектор код?
Если коротко, то некоторые архитекторы кодят. Подробнее об этом — в пятиминутном рассуждении в подкасте, начиная с 22:25. Спойлер: там про идеальный код, проблемы перфекциониста и бизнес-требования.
Как стать архитектором?
Опираясь на свой опыт, ребята рассказали, что просто перейти из разработчиков в архитекторы не получится. Сначала должна появиться необходимость в этой позиции. Только потом на неё подбирают человека из команды или зовут специалиста со стороны.
— У нас было так: компания развивалась, росло количество людей и проектов. Качество нужно было поддерживать, поэтому настал момент, когда появилась свободная «ниша ответственности».
Архитектор — высшая ступень разработчика?
В студии согласились с тем, что это определённо веха в развитии разработчика. Но не стоит воспринимать архитектора, как улучшенную версию «сеньора». Егор пояснил, что архитектор — это не финал и не потолок. У такого специалиста есть сильный навык решать инженерные задачи, поэтому вариантов для развития много. Например, можно перейти в IoT, заняться проектированием языков программирования или уйти в смежную область.
А что за «проклятие»?
Так объясняет этот феномен Егор:
— «Проклятие» заключается в том что, когда появляется необходимость в архитекторе, и человек занимает эту должность, то в этой компании больше никто не может стать архитектором.
Он рассказал, что специалист, занявший должность, вряд ли сможет заняться чем-то другим в дальнейшем (в рамках компании). Это связано с тем, что тяжело «воспитать» себе заместителя. Так получается по разным причинам: задачи архитектора сложно делегировать, не всегда есть человек, желающий встать на замену и просто не хватает времени для обучения.
Слушайте подкаст на удобной платформе — SoundCloud, Apple, Google Podcasts.
Полезные ссылки
Важные статьи, видео и книги для тех, кто хочет трансформироваться в архитектора:
Программный архитектор. Кто этот человек?
Для кого эта статья? Конечно, для людей, работающих в сфере ИТ. Для разработчиков, тестировщиков, менеджеров разного уровня, аналитиков и т.д.. Уверен, что и для общего развития всем другим людям, так или иначе, причастным к ИТ было бы все же интересно это прочитать. Просто для расширения своего кругозора, для понимания того как создаются Информационные системы
Что меня сподвигло написать эту статью? Определенный опыт взаимодействия с разного уровня руководителями. Рассмотрим такую ситуацию. У нас есть вакансия, звучит она как Архитектор. И, вроде бы, понимание есть, что должен делать этот человек, но по факту оказывается, ждут “эникейщика”.
Что еще? Думаю, что надо договорится о подаче материала. Что, если это будет реальная история из моей практики, на мой взгляд, максимально демонстрирует работу Программного архитектора, а также некоторые выводы, которые можно сделать из нее. Постараюсь ответить здесь на следующие вопросы: Кто такой программный архитектор, какими навыками и знаниями должен обладать этот человек? Годиться?
И последнее, думаю надо представится. Меня зовут Владимир Воловиков. Работаю в ИТ сфере я уже почти 20-ть лет. В должности Системного архитектора и Программного архитектора, в общей сложности, более пяти лет. Имею четыре международных сертификата. Текущее место моей работы Системный архитектор, Банк ВТБ.
Три года в одном репозитории
Программный код “сервера” содержит две категории классов: Контроллеры и Модели. Содержимое методов контроллера это десятки, а порой и сотни строк кода. Модели, по большей части, просто набор методов, внутри которых происходит вызов хранимых процедур базы данных
Чтобы делать какие-то выводы, всегда нужно разобраться с причинами: почему было сделано так? Если никакого протокола принятия решений нет, то, данную информацию можно получить только из уст участников этого процесса. Проще говоря, просто расспросить ключевых сотрудников и записать с их слов. В итоге имеем:
“Бекенд” содержит избыточное количество “ендпоинтов”, потому что он один для нескольких проектов, а сделано это было так, потому что:одни и теже модели (классы с методами вызывающие процедуры БД) используются в разных проектах. И как использовать их в разных проектах, при этом, иметь возможность их редактировать в одном месте, разработчики не знали
Итак. Суммируем. Мы знаем проблемы, мы знаем почему так было сделано. Самое время поискать методы решений.
Наведем порядок в коде. Опишем правила, по которым мы будем код разносить по разным частям. Введем такие понятия как: HelpersLayer, ServiceLayer, ControllerLayer. Создадим документ, в котором дадим определением этим слоям. Сформируем несколько примеров наглядно демонстрирующих то, как должен выглядеть наш будущий программный код. Очень желательно этот документ завизировать у руководства.
Введем понятия “Критерии приемки кода”. В отдельном документе опишем их. Настроим систему CI/CD так, чтобы сборка начиналась только после подтверждения ключевыми сотрудниками, а также, чтобы запускались тесты, в том числе и на соответствие критериям. Благо такие сервисы сейчас достаточно хорошо развиты
Введем правила обязательного документирования кода Добавим автоматическую генерацию REST API (Swagger).
Из всего списка полученных Моделей и Сервисов выделим те, что могут использоваться в других проектах. Полученный код вынесем в отдельный Git репозиторий и подключим его к основному репозиторию посредством submodule
Взглянем еще раз на то, что мы сделали. Если простыми словами описать проделанную работу, то, просто, навели порядок. Таким образом, удалось решить две из трех основных проблем, выявленных в начале нашей работы. Но что делать с процедурой, которая выполняется 20 секунд? Ответа все еще нет. И сейчас самое время вплотную подойти к этой задаче.
Итак, как понять, зачем делается вот этот вот запрос, а потом вот этот? Из названий, особенно, если их сочиняли те же программисты, что программный код всего проекта, крайне сложно это выявить. Что если просто, взять и словами, обычными словами написать алгоритм. Ну вот просто подойти к специалистам и спросить, как по вашему должно это работать. Запишем. В итоге получим примерно вот такую картину
Получить полный список всех Воздушных судов
По каждому из Воздушных Судов получить
Получить список Бортов
Получить список Рейсов
Получить список Резервов, если это доступно Пользователю
Получить список Технических операций, если это также доступно Пользователю
Получить дополнительную информацию об Аэропортах
Обработать все записи.Перевести все время из UTC
Возможно, внутри Oracle Database, такие манипуляции норма, но у нас ни Oracle. Очевидно, что такие манипуляции излишне сложны. Ну, и очевидное решение, почему бы не разбить все это на отдельные, небольшие процедуры, а сведением, обработкой полученных данных, уже заниматься на уровне приложения? И вот уже у нас уже не двадцать секунд запрос исполняется, а десять. И все равно, это долго. Что можно сделать еще?
Диаграмма позволяет быстро и наглядно отобразить алгоритм работы
Подведем итоги
Кто такой Программный архитектор?
Это человек занимающийся архитектурой программного кода, в больших и сложных проектах, тот кто формирует четкие правила и критерии работы.
Чем отличается Программный архитектор от Технического лидера команды (TeamLead)?
Технический лидер команды может выполнять роль Программного архитектора. Вполне может быть так, что, в начале работы над проектом, Технический лидер проекта выполняет роль Архитектора, занимается, именно разработкой архитектуры. И после того, как весь каркас будет сделан, уже, специалист переключается на другие части. Может писать код. Может заниматься организацией работы. Может просто контролировать уже сделанное, внедрять результат своего труда.
Идеологически, Технический лидер команды, это, в первую очередь, об организации работы, о жизненном цикле разработки ПО, о современных подходах, о ролях в командах. Программный архитектор, это именно архитектор, тот, кто отвечает на вопросы: как должно быть, по каким правилам мы этот код помещаем сюда, а этот туда. И если Технический лидер команды может не писать ничего, то Программный архитектор, это как раз об этом. Продукт его труда это документы, это текст, схемы и т.д И да, в целом, на практике, могут быть такие сценарий, когда Программный архитектор не разбирается в организации процессов разработки ПО и ролях, это не обязательные для него навыки и знания. Но мне такое никогда не встречалось. Все же ступень Программный архитектор, это, на мой взгляд, ступень, которая следует после ступени Технический лидер команды.
Должен ли уметь программировать Программный архитектор?
Скорее да, чем нет. Если эта роль, и ее совмещает Технический лидер команды, то да. В случае, если этот человек выделенный, например, в случае, если команд уже много, то времени на кодирование уже у этого человека не останется. В этом случае, только функции проверки и скорее всего функции наставничества.
Какими компетенциями должен обладать Программный архитектор?
Как разработчику баз данных, ему нужно разбираться в
работе различных баз данных, знать их особенности, плюсы, минусы
естественно, уметь составлять запросы, оптимизировать их и возможно, уметь писать исполняемые процедуры и триггеры
Как бэкенд разработчику, ему надо
владеть одним, двумя, а лучше тремя разным языкам разработки, возможно с различным уровнем владения
понимать в целом, сильные и слабые их стороны
владеть несколькими паттернами проектирования
Как разработчику фронтенда, пригодятся знания
Javascript. Тут без него никак
Один, два фреймворка.
несколько паттернов организаций работы с данными
Как архитектору, аналитику
уметь внятно и точно выразить свои мысли
переложить их на бумагу
владеть одной, двумя UML нотациями, например Диаграмма классов (Class Diagram) и Диаграмма деятельности Activity Diagram. Как-то же вам нужно будет общаться коллегами, с руководством. Не покажешь же им программный код верно?
Как Технический лидер команды
Понимать жизненный цикл разработки программного обеспечения
Какие роли есть, кто что делает, в какой последовательности
Какие зоны ответственности у коллег, какие задачи должен решать Сеньор, а какие Джуниор, каков должен быть результат работы Дизайнера, так, чтобы его можно было взять в работу на следующем этапе и т.д.
Опыт работы с Git репозиторием, его настройки, решение конфликтов и т.д.
Как Девопс инженер
Опыт настройки CI/CD
А еще есть профстандарт. Официальный документ. Смотреть тут
Сколько лет должно быть практики, чтобы быть Программным архитектором?
Из того списка навыков, которыми должен владеть архитектор, в целом, опыта работы в области ИТ у него должно быть не меньше десяти лет. С большой вероятность. этим людям приблизительно 35-37 лет.
Стоит ли расти до Программного Архитектора? Стоит ли так строить карьеру?
Заключение
За помощь в подготовке данной статьи автор благодарит Балахчи Анну Георгиевну, Иркутский Государственный Университет, Факультет Бизнес-коммуникаций и информатики, зав.кафедры, кандидат физико-математических наук
Профессия: Архитектор программного обеспечения
Чем занимается архитектор программного обеспечения? Какова его роль в создании информационных систем? Сколько он зарабатывает? Как стать системным архитектором?
Когда сфера IT была молода, а компьютерных программ было всего ничего, достаточно было одного программиста, который разработает, протестирует и выпустит программу. Сегодня штаты компаний Microsoft, Apple, IBM насчитывают более 100 тыс. человек сотрудников, потому что за последние полвека IT-продукты усложнились в сотни раз.
Кто такой архитектор программного обеспечения
Архитектор программного обеспечения (системный архитектор, архитектор ПО, IT-архитектор, ИТ-архитектор, архитектор IT инфраструктуры) – специалист, который занимается построением сложных IT-систем для решения бизнес-задач. Он помогает компаниям применить информационные технологии, чтобы автоматизировать и упростить бизнес-процессы, сэкономить деньги или выйти на новый уровень услуг.
Системный архитектор хорошо разбирается в бизнес-процессах, умеет понять заказчика и видит, как можно решить бизнес-задачу с помощью доступных технологий. Проектирование ПО может включать применение и интеграцию широкого спектра продуктов, технологий и услуг, различных систем, приложений, оборудования и программного обеспечения. Как главный конструктор принимает решение, из каких деталей будет «собран» автомобиль, так архитектор программного обеспечения должен из разнообразных информационных технологий сконструировать действующую IT-систему.
Приведем пример. К сложным системам относится интернет-банкинг. Если банк хочет предоставлять свои услуги не только в офисе, но и онлайн, то именно системный архитектор (а чаще и несколько архитекторов) продумывает, как разработать действующий онлайн-сервис для банка: настроить взаимодействие пользователей с банком через web-интерфейс, мобильные приложения, банкоматы, предусмотреть возможность не только снять и положить деньги на счет, но и сделать выписки, открыть вклад или взять кредит, не выходя из дома. В процессе проектирования сервиса системный архитектор должен предусмотреть удобство пользователя, простоту разработки, быстродействие, возможности масштабирования сервиса и безопасность финансовой информации. Данными вопросами будут заниматься уже разные специалисты – программисты, тестировщики, специалисты по информационной безопасности, UX-дизайнеры – но в проект, созданный архитектором, должны быть заложены будущие возможности для изменений и развития.
Чем занимается архитектор программного обеспечения
Системный архитектор участвует во всех этапах разработки системы – от встречи с заказчиками до финального внедрения:
- ✔ Изучает предметную область для внедрения и разработки прикладных информационных систем
✔ Участвует в интервьюировании заказчиков, бизнес-экспертов и пользователей информационных систем на предмет изучения текущих принципов организации хода процессов
✔ Изучает и систематизирует документацию по проекту
✔ Готовит технические документы по описанию сущностей, взаимосвязей и процессов предметной области с использованием специальных нотаций
✔ Участвует в постановке задач и разработке технического задания
✔ Собирает, анализирует и документирует функциональные требования к программному обеспечению
✔ Контролирует разработку
✔ Участвует в подготовке схем тестирования функционала для выявления отклонений от сформулированных бизнес-требований и функциональных требований
✔ Участвует в тестировании прототипа разрабатываемой системы
✔ Участвует в обучении пользователей системы
✔ Анализирует риски и причины возникновения ошибок при разработке системы
Какие универсальные компетенции нужны архитектору IT-систем в работе
Работа системного архитектора требует богатого опыта проектирования и внедрения систем, знания технологий и инструментов, а также творческого подхода в каждом новом проекте. Из необходимых для системного архитектора компетенций можно выделить:
- ✎ Системное (масштабное) мышление
✎ Ориентированность на результат
✎ Аналитический склад ума
✎ Умение принимать решения
✎ Умение видеть и решать проблему
✎ Разносторонние знания
✎ Креативность
✎ Обучаемость
✎ Коммуникабельность
✎ Ответственность
✎ Умение анализировать большие объемы информации
✎ Организованность
Средняя заработная плата и востребованность
Системные архитекторы относятся к одним из самых востребованных и высокооплачиваемых IT-специалистов, наряду с руководителями IT-разработки и директорам по IT в корпорациях. Диапазон зарплат:
✔ 100 000 – 300 000 рублей
Где учиться
Сегодня в каждом вузе, где развито IT-направление, обучают специальности системного архитектора. Для обучения можно выбрать одно из распространенных IT-направлений: прикладная математика и информатика, математика и компьютерные науки, информатика и вычислительная техника, информационные системы и технологии, прикладная информатика, программная инженерия, бизнес-информатика. Все эти направления подготовки помогут вам получить необходимые профессиональные навыки и прийти в профессию, но стать успешным системным архитектором поможет только опыт программирования и проектирования.
Где работать
• Компании-разработчики (сервисы Booking.com, Mail.ru, Yandex, Unisender)
• IT-отделы и отделы digital-маркетинга организаций (Сбербанк России, Газпром, Тинькофф банк)
• Системные интеграторы (Крок, Softline, Техносерв, Ланит, Ай-Теко)
Что делать уже сейчас
✔ Углубленно изучать математику, информатику, русский и английский язык в школе
✔ Освоить основы программирования и создания веб-сайтов, создавать небольшие редакторы и полезные утилиты
✔ Читать новости из сферы IT: на порталах cnews.ru, habrahabr.ru, computerworld.ru, hightech.fm и github.com
✔ Посетить iСмену программы «Профессионалы будущего», чтобы пообщаться с настоящими IT-специалистами и узнать больше о современных технологиях
Для того, чтобы стать системным архитектором в компании, вам, вероятно, придется пройти длинную карьерную лестницу от стажера, программиста, затем руководителя разработки и менеджера интернет-проектов до архитектора. Но наградой за плодотворную работу станут интереснейшие IT-проекты и свобода самовыражения.
Автор: Ольга Биккулова, ЦТР «Гуманитарные технологии»
Пройдите тест на профессию, чтобы узнать, к какой сфере деятельности вы наиболее склонны.
Если вы хотите получать свежие статьи о профессиях, подпишитесь на нашу рассылку.
Кто такой архитектор программного обеспечения, какие у него обязанности и как им стать
Когда IT-сфера только появилась и начала развиваться, компьютерных программ было не так много. Один-единственный программист мог сам ее разработать, разобраться, как она функционирует, провести тестирование и т. д. В наши дни все стало значительно сложнее. Информационные технологии набрали темп развития, и ежегодно новых профессий появляется все больше.
И вот когда понадобился специалист, который будет нести ответственность за IT-системы, помогать компаниям решать бизнес-задачи посредством информационных технологий, проектировать ПО и создавать его архитектуру, появился архитектор программного обеспечения.
В нашей стране вакансии для этого работника появились более 15 лет назад и были единичными. Сейчас же это востребованная и высокооплачиваемая профессия. О ней мы сегодня и поговорим. Подробнее узнаем, кто такой этот специалист, чем он занимается, что должен знать и уметь, плюсы и минусы работы, как им стать.
Особенности профессии
Для начала разберемся, что же такое программное обеспечение. Если кратко, то это комплекс программ, которым вы пользуетесь на своем ПК. Провести расчеты, написать текст в электронном документе, послушать музыку, создать презентацию – это все ваши задачи. А решают их для вас Excel, Word, KMPlayer, PowerPoint и другие составные части программного обеспечения.
ПО может быть системным, прикладным и инструментальным.
Системное ПО – это группа программ, благодаря которым компьютер может правильно работать, позволяя владельцу использовать весь свой функционал, а также устанавливать на ПК новые программы. К этому виду программного обеспечения относятся операционные системы, драйверы, антивирусные программы и архиваторы.
Прикладное – это комплекс инструментов, которые решают конкретные задачи пользователя. Например, создавать электронные документы, смотреть фильмы, делать перевод текстов.
Инструментальное – это системы программирования и моделирования, инструментальные среды. Они нужны разработчикам для проектирования и создания программ.
И если разработкой программного обеспечения занимаются программисты, то проектирование структуры ПО и составление технического задания для разработчиков ложится на плечи архитекторам программного обеспечения.
Архитекторы строят сложные IT-системы, помогают работодателям решать их бизнес-задачи, применяя информационные технологии, автоматизируют рутинные процессы, тем самым экономят время и деньги, создают архитектуру ПО.
Специалисты подсказывают разработчикам, как создать IT-продукт и избежать ошибок, какие технологии лучше использовать, принимают решения по поводу внутреннего устройства IT-системы и ее интерфейса.
Например, производители одежды хотят предоставлять свои услуги не только в магазине, но и онлайн. Для этого нужно создать мобильное приложение. Тогда за дело берется архитектор. Он продумывает все детали по разработке функционального онлайн-сервиса для магазина.
Специалисту нужно решить, как посетители будут взаимодействовать с магазином через веб-интерфейс, как они будут делать онлайн-покупки, как создать все условия для комфорта и удобства покупателя во время пользования приложением, как добиться простоты разработки и быстродействия, как обеспечить финансовую безопасность денежных операций и т. д.
За архитектором остается последнее слово о внешнем виде IT-продукта и о его внутреннем наполнении. И уже исходя из задания и рекомендаций IT-архитектора, за разработку и дизайн принимаются программисты, UX-дизайнеры, тестировщики, специалисты по информационной безопасности и другие.
Архитектор ПО – это всегда работник с большим опытом работы и увесистым багажом знаний. Он должен иметь широкий кругозор, брать ответственность за принятие сложных технических решений. Вчерашние студенты не могут начать свою карьеру с этой должности. Чаще всего в IT-архитектора перерастают бывшие программисты, инженеры, системные администраторы, тимлиды или backend-разработчики.
Кроме технической у работы архитектора ПО есть и другая сторона. Он должен не только общаться с айтишниками и продумывать устройство системы, но и вести переговоры с работодателем, чтобы выяснить, что именно он хочет видеть в результате. Поэтому “разговоры с бизнесом” являются немаловажной частью деятельности специалиста.
В небольших компаниях не всегда есть надобность в IT-архитекторах. Разработчики простых IT-продуктов могут самостоятельно решать, что и как должно быть устроено в их товаре. Поэтому архитекторы ПО – это сотрудники крупных компаний со сложной информационной системой.
Обязанности работника
Архитектор ПО вносит свой вклад на каждом этапе разработки IT-системы. Он берет проект с нуля, начиная от переговоров с заказчиками, и доводит его до логического конца, т. е. до финального внедрения продукта.
Его ключевая обязанность – это поиск решения по устранению проблем бизнеса посредством использования информационных технологий. А главная задача – проектирование архитектуры программного обеспечения, т. е. определение внутреннего устройства системы и ее технических интерфейсов.
Кроме того, специалист проводит анализ всех деталей и мелочей, следит за тем, правильно ли его решения реализуются, и при необходимости вносит коррективы.
Основные обязанности архитектора можно разделить на несколько категорий:
Кроме этого, специалист выполняет следующие задачи:
Если говорить проще, то архитектор ПО отвечает практически за все в IT-проекте.
У многих людей, интересующихся этой профессией, возникает вопрос о том, а пишет ли архитектор код? Да, они должны это уметь делать, но вот в прямые обязанности написание кода не входит. Но некоторым специалистам приходится кодить.
Большую же часть дня архитекторы получают, обрабатывают и делятся различного рода информацией. Менеджеры, разработчики, заказчики – все обращаются к этому специалисту. Поэтому он видит ситуацию с разных сторон и знает, как ему дальше действовать.
Также IT-архитектору приходится работать с огромным объемом документов. Надо их сформировать и продумать, а также предоставить и сдать в отведенные сроки.
Требования к сотруднику
Для архитектора ПО важно понимать не только аспекты и особенности веб-разработки и IT-системы, но и разбираться в бизнес-процессах.
Специалисты должны соответствовать следующим требованиям:
От архитектора требуется богатый опыт проектирования систем, широкий и глубокий уровень знаний технологий и инструментов. Но еще важны и личные качества специалиста:
Архитекторы ПО постоянно расширяют свой кругозор. Это должен быть “гибкий” специалист, который всегда ищет компромисс. Ему недопустимо быть узконаправленным работником, он должен уметь находить причины появления любой технической проблемы и знать, как ее устранить. Специалисту нужно принимать взвешенные решения и уметь приводить аргументы в пользу своего мнения.
Зарплата и карьера
Архитекторы программного обеспечения могут работать в:
Конечно же, важным пунктом при анализе какой-либо профессии является зарплата специалиста. В среднем по России уровень оплаты труда держится на отметках от 80 000 до 300 000 руб.
В регионах заработная плата может упасть до 60 000 руб., что тоже является доходом выше среднего. А максимум в таких городах, как Нижний Новгород, Воронеж, Екатеринбург, Казань, Новосибирск, Краснодар, Владивосток, предлагают 200 000 руб. Реже, но все же иногда встречаются предложения с доходом 250–300 тыс. руб.
В Москве же зарплата начинается от 100 000 руб. и может доходить до 350 тыс. руб. и выше.
Эта профессия является одной из самых высокооплачиваемых в IT-сфере.
Начинающие архитекторы уже получают от 60 000 руб. У специалистов со стажем от года зарплаты находятся на уровне 100–150 тыс. руб. А зарабатывать еще больше могут работники, которые трудились на своей должности более трех лет.
В нашей стране наблюдается дефицит кадров, поэтому профессия уже давно является крайне востребованной. Порой даже на весьма привлекательные предложения не откликаются претенденты по нескольку месяцев.
Но дело не только в нехватке кадров, но еще и в обязательных требованиях от работодателей крупных компаний:
Плюсы и минусы
После проведения анализа профессии можно выделить ее достоинства и недостатки. Начнем с плюсов:
Обучение на архитектора ПО
IT-архитектор должен иметь высшее техническое образование, а также сертификаты и другие документы о дополнительном образовании в области информационных технологий. Не обойтись и без практики программирования.
В качестве вузовской специализации можно выбрать одно из IT-направлений. Например, “Информатика и вычислительная техника”, “Информационные системы и технологии”, “Бизнес-информатика” и т. д.
После обучения можно влиться в IT-сферу, но чтобы стать успешным специалистом, надо приобрести опыт программирования и проектирования, что приходит только с годами. Поэтому самостоятельно стать архитектором не получится.
Пока получаете опыт и профессиональные навыки в программировании, проходите специализированные обучающие программы.
Онлайн-курсы удобны, так как их можно проходить в свободное время и по индивидуальному графику. Большинство из них предполагают решение задач реальных проектов, можно завести полезные знакомства и общаться с единомышленниками, а что насчет стоимости, то часто студентом предоставляется рассрочка.
Говоря о курсах для архитекторов ПО, стоит упомянуть некоторые из них:
Но и этого мало для становления архитектором ПО.
Вместе с получением дополнительного образования нужно непрерывно изучать новости мира информационных технологий, исследовать новшества, современные инструменты и актуальные тренды, искать альтернативные способы решения проблем, охватывать максимальное количество взглядов, концепций и подходов.
Кроме этого, нужно постоянно читать статьи и литературу. Среди книг для архитекторов ПО в первую очередь советую изучить следующие:
Такой комплексный подход является лучшим способом становления специалистом в области IT-систем. Поэтому совмещайте вузовское образование, онлайн-курсы, книги, участие в вебинарах и прочих мероприятиях, чтение новостей и непрерывную практику.
Заключение
В этой статье мы познакомились с архитектором программного обеспечения и узнали:
Также мы поговорили о способах обучения этой профессии.