Что делает архитектор на компьютере
Если нужно построить здание, компания нанимает архитектора. Он придумает, как здание будет выглядеть, из чего состоять и как им будут пользоваться. В разработке тоже есть архитекторы, и делают они примерно то же самое: решают, как в целом будет работать программа и какие технологии будут использоваться.
Что делает архитектор
Задача архитектора в ИТ — продумать и принять ключевые решения по проекту:
- из каких модулей будет состоять программа;
- как они будут связаны;
- будет ли это монолит или микросервисы;
- какие языки для этого нужны; , функциональное программирование или что-то ещё;
- как дальше масштабировать проект;
- какие технологии и решения применяются в проекте.
👉 Архитектор не лезет в код, а работает с проектом на верхнем уровне — идей, смыслов и стратегических решений. Например, одна из задач архитектора — выбрать такой набор языков и библиотек, чтобы он не устарел, пока пилится продукт, и эти языки поддерживались ещё несколько лет после выпуска проекта.
С этой точки зрения будет глупо выбрать основным языком Python 2.x, потому что официальная поддержка уже прекращена. Даже если в компании есть команда гениальных программистов именно на Python 2.x, то проект всё равно лучше делать на третьей версии.
Архитектор и программисты
Хоть сам архитектор не пишет код (или делает это в исключительных случаях), но его работа влияет на всех остальных членов команды:
- джуниоры, мидлы и сеньоры пишут код на том языке и с теми технологиями, которые выбрал архитектор; управляет командами в соответствии планами развития проекта, которые установил архитектор; проверяют, что все заявленные возможности работают без ошибок; и системные администраторы настраивают рабочее окружение и сервисы, чтобы всем остальным было удобно работать над проектом.
Какие бывают архитекторы ПО
Среди архитекторов в ИТ тоже есть свои специализаци и направления.
Например, если компании нужно выбрать язык, технологии и фреймворки, чтобы написать самую быструю программу, то зовут software-архитектора. Ещё он нужен, когда в программе планируется много разных модулей и их нужно грамотно соединить друг с другом.
Если задача — интегрировать программу в другую большую систему или развивать уже готовый продукт, то здесь будет больше полезен solution-архитектор. Он прикинет все возможные варианты, просчитает их плюсы и минусы и найдёт оптимальное решение.
Отдельное направление — архитектор баз данных. Он требуется, когда в проекте планируется сложная база с кучей связей, и от того, как она будет спроектирована, зависит быстродействие и надёжность. Такие архитекторы изучают требования к данным, к их обработке и исходя из этого строят идеальную схему базы под этот конкретный проект.
Зарплата архитектора
По данным Хабр Карьеры, средняя зарплата архитектора ПО —
275 000 рублей в месяц.
Интересно, что джуниоров среди архитекторов нет — вакансии начинаются от мидла, но в основном требуются сеньоры.
Как им стать
Обычно архитекторами становятся сеньоры, которые давно и хорошо знают свою область, технологический стек и различные стандарты сборки для разных проектов. Им уже неинтересно просто программировать — у них достаточно знаний, чтобы заранее предвидеть возможные проблемы в разработке всех частей программы и сразу их учесть в решении.
Поэтому ответ на вопрос «Как стать архитектором» будет такой: изучайте свою и соседние специальности настолько хорошо, насколько это возможно, участвуйте во многих проектах и нарабатывайте опыт.
Системный архитектор, он же главный инженер проекта (ГИП) — специалист, способный выстроить сложную ИТ-инфраструктуру под индивидуальные потребности заказчика. Разбираемся в тонкостях этой редкой профессии вместе с директором департамента системной архитектуры Rubytech Александром Палкиным.
директор департамента системной архитектуры Rubytech
Так же, как и в строительстве зданий, главная задача архитектора ИТ-инфраструктуры — спроектировать все так, чтобы конструкция была надежной, элементы идеально сочетались между собой и бесперебойно выполняли свои функции. Это ответственная работа, требующая глубокой экспертизы в ИТ и развитых управленческих навыков.
Так как потребности у каждого бизнеса разные, универсальных алгоритмов и типовых кейсов на рынке практически нет — каждый проект уникален. И несмотря на кажущуюся монотонность, это по-настоящему творческая работа, в которой можно в полной мере реализовать свой потенциал.
Чем занимается системный архитектор
Системный архитектор подключается к проекту на этапе пресейла и полностью отвечает за всю техническую часть. Он участвует в разработке технико-коммерческого предложения, в деталях продумывает каждый элемент будущей системы. Он же и согласовывает концепцию проекта и «продает» ее заказчику — убеждает его в правильности и оптимальности каждого решения.
27–28 ноября, Онлайн, Беcплатно
После подписания контракта системный архитектор выступает в роли технического руководителя проекта: собирает команду, распределяет роли и курирует все процессы вплоть до реализации инфраструктуры. Свою работу он ведет в тесном сотрудничестве с руководителем проекта, детально погружаясь в особенности ИТ-инфраструктуры заказчика и учитывая все специфические требования.
Где востребованы такие специалисты
Везде, где происходит цифровая трансформация, создаются мощные и комплексные ИТ-инфраструктуры. Например, в проектах для крупных госкорпораций, которые отличаются не только масштабом, но и высоким уровнем критичности и важности.
Чаще всего такие проекты реализуют силами системных интеграторов, в которых и работают системные архитекторы. В зависимости масштаба проекта, принимать участие в нем может как один, так и несколько системных архитекторов.
Ключевые навыки системного архитектора
Позиция подразумевает многолетний опыт работы. Поэтому одними только теоретическими знаниями здесь не обойтись. Необходимо понимать, как разные решения сочетаются между собой, где могут возникнуть проблемы, уметь досконально просчитывать риски. Важно видеть картину в целом, но при этом отлично знать каждую составляющую ИТ-инфраструктуры. Наработать это можно исключительно практикой. В случае с госсектором необходимо также учитывать требования, связанные с политикой импортозамещения, и ювелирно внедрять российские решения в уже работающие системы.
Нужны ли вашему проекту микросервисы? Вопросы, которые помогут разобратьсяПомимо обширных знаний в ИТ, архитектор должен обладать рядом надпрофильных навыков или soft skills. В первую очередь — коммуникационных. Он должен грамотно формулировать свои мысли как письменно, так и устно. Ему предстоит много общаться заказчиками, вежливо, но настойчиво отстаивать свою точку зрения, ставить задачи и мотивировать команду. А в отдельных случаях — работать в связке с другими архитекторами.
Необходимо уметь планировать и проводить презентации, «продавать» свои идеи. Еще один важный навык — тайм-менеджмент, так как придется распоряжаться не только своим временем, но и грамотно распределять нагрузку внутри проектной команды.
Как стать системным архитектором
Поскольку должность подразумевает большой опыт работы с ИТ-инфраструктурой, системными архитекторами не становятся сразу после выпуска из университета. Выбирая это направление деятельности, важно понимать, что карьерный рост не будет стремительным. Зато специалисту гарантирована интересная работа в солидных и стабильных компаниях.
Так как найти на рынке готового профессионала с правильным бэкграундом и нужной экспертизой не так уж легко, интеграторы предпочитают развивать специалистов внутри своих компаний. Они активно вкладывают в обучение и всеми доступными средствами стараются удерживать талантливых и мотивированных сотрудников как можно дольше, чтобы эти инвестиции не пропали зря. Именно поэтому в известных ИТ-интеграторах обычно очень низкая текучка кадров.
Опыт Rubytech показывает: чаще всего системными архитекторами становятся сотрудники, которые начинали свою карьеру с должности эксперта-проектировщика. В некоторых компаниях их называют техническими писателями. И это не случайно, ведь проектирование документации — одна из ключевых функций специалистов по разработке системной архитектуры. Чтобы успешно реализовать масштабный проект, требуется его детальное описание. Оно включает обоснование выбора архитектуры каждого из предлагаемых решений и подробные инструкции по их эксплуатации для администраторов со стороны заказчика. Проектировщик занимается проработкой всех этих аспектов на уровне документации.
Параллельно он развивается по индивидуальной траектории — прокачивает свои знания и навыки под руководством старших наставников, проходит внутреннее и внешнее обучение и сертификацию у вендоров. Постепенно берет на себя все более сложные, творческие и ответственные задачи — из младшего эксперта становится старшим, затем — ведущим. Следующая ступень — уже системный архитектор.
Как долго ждать карьерного роста
Темпы роста у всех очень разные. Случается, что молодые специалисты с большими амбициями, резво стартовав, перестают развиваться на середине пути. А бывает — ровно наоборот. Например, в Департаменте системной архитектуры Rubytech, которым я руковожу, есть сотрудница, которая поначалу не демонстрировала впечатляющих карьерных результатов, просто аккуратно выполняла свою работу. А недавно — попала на большой и сложный проект, проявила самостоятельность, приняла несколько грамотных управленческих решений, показала высокий профессионализм и после медленного разгона совершила качественный профессиональный скачок.
В целом именно так и бывает — специалисты быстро вырастают на непростых проектах, которые обычно длятся не меньше года. За это время можно научиться многому и ярко проявить себя. Поэтому я советую молодым сотрудникам быть инициативными и искать для себя вызовы. Если на проекте легко и комфортно — значит, вы его переросли.
Что нужно знать и уметь на входе в профессию
Чтобы попасть на работу проектировщиком, нужно иметь представление о базовых понятиях и принципах построения ИТ-инфраструктуры, знать основных вендоров и разбираться в их продуктах. Необходимо иметь законченное техническое образование. Как и на любой должности в сфере технологий, нужно уметь читать и составлять документацию на русском на английском языке.
Но главное — иметь непреодолимое желание трудиться в сфере ИТ, способность быстро обучаться и усваивать огромные массивы информации. Внимание к деталям — еще один немаловажный фактор, без которого невозможна успешная работа в должности проектировщика.
Профессия архитектора кажется одной из самых сложных в технологическом секторе. Практически не существует курсов, пройдя которые точно можно стать начинающим IT-архитектором, а технологические блоги редко публикуют чек-листы для желающих войти в эту сферу. Подробно разбираемся, как устроена профессия IT-архитектора, чем они занимаются и сколько зарабатывают.
IT-архитектор — специалист, который отвечает за то, как будет выглядеть структура продукта с технической точки зрения. При этом архитекторы могут отвечать как за создание целостной информационной системы — всего сервиса или продукта, так и за небольшие фичи, которые необходимо реализовать. В маленьких командах может быть один архитектор, который одновременно выполняет роль, например, CTO — и он придумывает, как будет выглядеть весь проект с технической точки зрения, какие инструменты и язык программирования использовать. При этом в корпорациях свой архитектор может быть не только у разных направлений, таких как фронденд или бэкенд, но и у разных вводимых функций и реализованных фич.
Существует несколько типов архитекторов — архитекторы решений, которые специализируются на оценке текущих технологических проблем и задач для планированиях будущих изменений — они больше общаются с клиентами и исходят из бизнес-задач. Также существует ещё один тип архитекторов — технические архитекторы, которые внедряют различные инструменты в зависимости от потребности бизнеса и моделей, которую строят архитекторы решений. Этот тип архитекторов чаще работает напрямую с разработчиками, а не с клиентами или бизнесом.
Архитекторы, по сути, должны обеспечивать решение бизнес-задач при помощи того, как будет строиться продукт. При этом архитекторы не только придумывают структуру и берут на себя ответственность за создание системы ещё до её фактического появления, но и контролируют процесс разработки. Кроме того, архитекторы прорабатывают шаблоны взаимодействия компонентов внутри программы, прописывают сценарии взаимодействия, определяют, каким должен быть формат хранения и передачи данных.
Если клиенту нужно разработать приложение, то архитектор должен знать точно, каким образом это можно сделать, не наступив на все существующие грабли.
Обязанности архитектора
Одним из главных навыков в этой профессии считается умение проектирования и анализа предметной области: в самом начале разработки архитектору необходимо выяснить все требования от заказчика, который хочет получить собственный сервис. Им может быть как внешний клиент, которому необходимо разработать какой-то продукт, так и внутренний. Например, в компании, где работает архитектор, считают, что им нужен собственный мессенджер. Для этого архитектор составляет план и техническое задание для проектировки новой системы, анализирует все требования, после чего создает текстовые и графические материалы с описанием всей архитектуры решения, данных и информационных систем. По итогам должен появиться проектный документ, по которому в дальнейшем будут работать разработчики.
Гид по профессии тестировщик: чем занимается специалист в сфере QA, сколько зарабатывает, что надо знать и где учиться.
Мы проанализировали существующие вакансии в сфере IT-архитектуры и отдельно вынесли ключевые требования работодателей к кандидатам:
- Опыт работы Solution-архитектором;
- Опыт работы Senior-разработчиком не менее 3 лет;
- Опыт в WEB-разработке не менее 3 лет;
- Знание архитектурных паттернов: SOA, микросервисная архитектура, гексагональная архитектура, многослойная архитектура.
- Понимание устройства IT-системы: ключевые сервисы, их домен, принципы работы, связи между сервисами.
- Умение находить общий язык как с техническими специалистами, так и с заказчиками со стороны бизнеса. Навыки понимания сути бизнес-проблемы, аргументированного донесения своих предложений до участников команды, возможности защиты своих проектов.
Эксперты — о работе архитектора и необходимых навыках
Мы попросили архитекторов и разработчиков рассказать, чем они занимаются на работе, какие им нужны навыки и какие они используют инструменты.
Александр Казаченко, руководитель разработки кредитных продуктов для бизнеса, «Тинькофф»: «Если программист делает чуть больше, чем от него требуется — он может постепенно расти в архитектора»
Александр Бындю, IT-архитектор, Byndyusoft: «IT-архитектура рождается исключительно из бизнеса, у неё нет других источников»
В небольших компания всех роли «схлапываются» в одного человека, но чем больше компания, тем больше разделение.
Чем занимает IT-архитектор? Я вижу у него две задачи:
- Сделать так, чтобы разработчики как можно меньше читали код. Для этого нужно выбрать такие метафоры и абстракции для системы, так всё разложить по полочкам, чтобы разработчики поняли, что и где лежит, при этом не мучаясь, копая исходники.
- Подружить бизнес-требования с техническими возможностями. IT-архитектура рождается исключительно из бизнеса, у неё нет других источников. IT-архитектор — это тот, кто может бизнес-потребности перенести на конкретное решение, найти баланс между универсальностью решения и скоростью реализации, принять долгосрочный техдолг, если необходимо.
— Как долго нужно работать программистом, чтобы дойти до сферы архитектуры? Как становятся архитектором в команде?
Конкретного срока нет и, к сожалению, невозможно пройти обучение сразу на IT-архитектора. Те архитекторы, которые мне встречались, обычно приходили из айтишников: программистов, безопасников, бизнес-аналитиков. По мере работы, сравнивая себя с другими, они видят, что могут мыслить шире, брать на себя больше ответственности, поэтому они начинают участвовать в принятии решений по архитектуре ПО. Дальше идут в архитекторы и только этим и занимаются.
Наверное, ключевой фактор — способности, плюс возможность принятия ответственности в условиях неопределенности. Если со способностями всё более или менее понятно, то борьба с неопределенностью не всем дается легко. Ведь надо ещё до создания системы решить, какой она станет, чтобы достигнуть бизнес-целей. Не у всех выдерживают нервы, не всем хватает воли.
— Есть ли жизнь после архитектуры? Куда расти архитектору?
IT-архитектор — не татуировка. Можно идти, куда душа пожелает. Можно пойти управлять продуктом, можно вернуться в разработчики, можно пойти в бизнес-анализ или в консультанты. Ограничений нет.
— Как архитекторы занимаются тайм-менеджментом и все успевают? Как происходит этот процесс?
Так же, как и все остальные: техники пустого инбокса и всё, чему учат Архангельский и Дорофеев. В крупной компании архитектор ведет 5-6 проектов одновременно, но нагрузка по мере развития проекта неравномерная. Обычно загрузка большая вначале и уменьшается к концу, поэтому можно удержать в голове сразу несколько проектов.
— Какие технологии должен знать архитектор?
Чем больше он знает, тем больше нюансов может учесть. Желательно, неплохо разбираться в программировании, железе, безопасности, базах данных, ML и разных архитектурах, конечно. Из навыков управления — надо хорошо понимать, как строится управление командами, продуктами и рисками.
— Какие инструменты используют архитекторы?
В основном мы рисуем и пишем тексты. Поэтому инструменты самые простые, типа текстовых редакторов, маркерной доски, векторной графики. Есть специализированные инструменты для оценки качества кода, типа SonarQube, но это уже нюансы, которые не так часто нужны. Основной инструмент, определяющий успех в профессии: быть открытым новому, не бояться принимать вызовы и держать нос по ветру, понимая, куда движется IT и рынок в целом.
Сколько зарабатывают IT-архитекторы
По данным сервиса HH, осенью 2020 года на рынке есть около 100 вакансий IT-архитекторов в разных регионах России. Среди компаний, которые ищут к себе в команду архитекторов — Skyeng, МТС, «Газпромбанк», Hoff, Иннополис, Банк «Открытие», «Райффайзен», «УралСибТрейд» и другие. На HH зарплаты архитекторов начинаются с 90 000 рублей, при этом некоторые компании предлагают зарплаты от 300 000 рублей в месяц.
Где учиться архитектуре
На Хекслете сейчас нет профессии архитектор, однако у нас есть несколько курсов, которые помогут будущим архитекторам получить хотя бы часть необходимых знаний.
Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях
Гость нового выпуска подкаста «Сушите вёсла» — архитектор программного обеспечения Егор Тафланиди. Обсуждаем, что это за метафизическая роль такая, какие сложности есть в работе и при чём тут тёмные силы.
Артём Кулаков и Рома Чорыев — разработчики Redmadrobot. Они записывают ламповые подкасты, где вместе с гостями обсуждают разные стороны создания ИТ-продуктов. Ниже ссылка на новый выпуск и ответы на несколько насущных вопросов.
Архитектор — специалист, который занимается построением ИТ-систем для решения бизнес-задач. Он хорошо разбирается во всех нюансах проектирования систем.
Если нужно разработать, например, приложение, архитектор расскажет, как это сделать, не наступив на грабли. Объяснит, какие технологии использовать, с какими проблемами можно столкнуться, и заложит фундамент для развития проекта.
Авиационный конструктор решает, из чего построить самолёт, а архитектор — с помощью каких технологий разработать ИТ-систему, которая решит задачу.
В разговоре выяснилось, что это выходит само собой. Архитектор задействован в разных ситуациях: он общается с заказчиком, решает инженерные проблемы и даже участвует в планировании проекта. Хочешь не хочешь, а в бизнес углубляешься и менеджерский навык качаешь. Егор объясняет:
Вся сущность сводится к двум вещам: архитектор должен решать задачи бизнеса и он должен уводить систему от ограничений.
Если ты знаешь, что в системе нет физической возможности реализовать те или иные вещи, но есть бизнес-потребность, то твоя задача — придумать как и состыковать всё воедино. Можно сказать: сделать так, чтобы и овцы были целы, и волки сыты.
За день через архитектора проходит огромное количество информации от менеджеров, разработчиков, заказчиков. Поэтому под конец дня получается, что он знаком с ситуацией с разных сторон. Артём резюмировал:
Архитектор — это больше про ширину, чем про глубину. Например, тебе необязательно уметь в Android работать с рефлексией и с какими-то низкоуровневыми вещами, но важно понимать, как всё это работает в целом.
Если коротко: некоторые архитекторы кодят. Подробнее об этом — в пятиминутном рассуждении в подкасте, начиная с 22:25. Спойлер: там про идеальный код, проблемы перфекциониста и бизнес-требования.
Опираясь на свой опыт, ребята рассказали, что просто перейти из разработчиков в архитекторы не получится. Сначала должна появиться необходимость в этой позиции. Только потом на неё подбирают человека из команды или зовут специалиста со стороны.
У нас было так: компания развивалась, росло количество людей и проектов. Качество нужно было поддерживать, поэтому настал момент, когда появилась свободная «ниша ответственности».
В студии согласились с тем, что это определённо веха в развитии разработчика. Но не стоит воспринимать архитектора, как улучшенную версию senior-разработчика.
Егор пояснил, что архитектор — это не финал и не потолок. У такого специалиста есть сильный навык решать инженерные задачи, поэтому вариантов для развития много. Например, можно перейти в IoT, заняться проектированием языков программирования или уйти в смежную область.
Так объясняет этот феномен Егор:
«Проклятие» заключается в том что, когда появляется необходимость в архитекторе, человек занимает эту должность, в этой компании больше никто не может стать архитектором.
Он рассказал, что специалист, занявший должность, вряд ли сможет заняться чем-то другим в дальнейшем (в рамках компании).
Это связано с тем, что тяжело «воспитать» себе заместителя. Так получается по разным причинам: задачи архитектора сложно делегировать, не всегда есть человек, желающий встать на замену и просто не хватает времени для обучения.
Слушайте подкаст на удобной платформе: Soundcloud, Apple, Google Podcasts.
Важные статьи, видео и книги для тех, кто хочет трансформироваться в архитектора:
Приходите обсуждать выпуск в Telegram-чат.
"Авиационный конструктор решает, из чего построить самолёт, а архитектор — с помощью каких технологий разработать ИТ-систему, которая решит задачу" - чего?))))
Ребят, завязывайте вы с этим пафосом, не так уже и много технологий нужно, чтобы запилить мобильное приложение или SPA, работающее на беке через java php python ноду, причем выбор технологий зависит не от архитектора, а от разработчиков. Я надеюсь, у вас не стоит выбор между, на чём написать андройд приложение: на ванильной джаве, реакт нативе или флаттере, вы всегда спрашиваете или знаете на чём команда может запилить приложуху. Вы же не думаете, взять ли спринг или ноду для бека, правда ведь? Если вы думаете на чем писать следующий проект, это означает лишь одно - у вас или у команды мало опыта.
Далее, про написание кода архитектором. Вот вы сами привели аналогию с авиаконструктором. Получается, что если архитектор должен писать код, то и авиаконструктор может немножно собирать фюзеляж, или немножко разрабатывать турбины или делать бортовой компьютер? Это же нелепо (его и не допустят это делать). Мало того, если у вас количество кода и технологий зашкаливает, вы так же не можете физически и морально писать код, так как у вас нет на это компетенции (да да).
Тут правда есть одно но. Обычно, авиаконструктор аккумулирует возле себя ресурсы целого государства. Тысячи человек разрабатывают самолет. Архитектор самолета получает зарплату в тысячную долю от всего бюджета проекта. А вот архитекторы ПО, которые делают мобильные приложение не аккумулируют возле себя бюджеты государств, и их зарплаты не тысячные доли процента от бюджета проекта, а десятки. В этом и проблема. С одной стороны не хочется кодить, а только повелевать и петь и получать половину стоимости проекта, а с другой стороны нужно объяснить разрабам, почему в команде 5 разработчиков, 2 архитектора и 8 менеджеров :)
Читайте также: