Архитектор информационных систем

Кто такой архитектор в ИТ и как им стать

Если нужно построить здание, компания нанимает архитектора. Он придумает, как здание будет выглядеть, из чего состоять и как им будут пользоваться. В разработке тоже есть архитекторы, и делают они примерно то же самое: решают, как в целом будет работать программа и какие технологии будут использоваться.

Задача архитектора в ИТ — продумать и принять ключевые решения по проекту:

  • из каких модулей будет состоять программа;
  • как они будут связаны;
  • будет ли это монолит или микросервисы;
  • какие языки для этого нужны; , функциональное программирование или что-то ещё;
  • как дальше масштабировать проект;
  • какие технологии и решения применяются в проекте.

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

С этой точки зрения будет глупо выбрать основным языком Python 2.x, потому что официальная поддержка уже прекращена. Даже если в компании есть команда гениальных программистов именно на Python 2.x, то проект всё равно лучше делать на третьей версии.

Краткое описание

Главная задача архитектора информационных систем (ИС) – разработка архитектуры программного обеспечения проекта, но также довольно часто на его плечи ложится работа по написанию технической документации, оценка сроков и сложности реализации нового функционала, иногда настройка процессов разработки и код-ревью.

В зависимости от типа и размера компании работа архитектора ИС может довольно сильно отличаться. Если компания крупная и бизнес-процессы медленные, то часто архитектор проектирует на уровне диаграмм, в то время как в более мелких и динамичных компаниях он будет тесно общаться с программистами и даже писать код на архитектурном уровне.

Профессия более редкая, чем программист, но и специалистов гораздо меньше. За хорошего архитектора информационных систем работодатель будет готов отдать многое.

Георгий Андрончик

Эксперты — о работе архитектора и необходимых навыках

Мы попросили архитекторов и разработчиков рассказать, чем они занимаются на работе, какие им нужны навыки и какие они используют инструменты.

Александр Казаченко, руководитель разработки кредитных продуктов для бизнеса, «Тинькофф»: «Если программист делает чуть больше, чем от него требуется — он может постепенно расти в архитектора»

— Чем работа архитектора отличается от работы обычного программиста? Чем вообще занимается архитектор в 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-диаграммы
  • И многое другое

Можно взять любой курс по тайм-менеджменту — и он наверняка вам подойдет.

Какие технологии должен знать архитектор?

Зависит от предметной области и стэка, но, в среднем по больнице, архитектор должен хорошо понимать:

  1. Что такое компьютер и как он работает. К сожалению, я встречал разработчиков, которые годами программируют, но при этом плохо понимают, как работает оперативная память.
  2. Сетевые протоколы передачи данных.
  3. Паттерны и принципы проектирования — это очень обширная тема, которая включает в себя очень много информации.
  4. Документирование решений.

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

Требования к сотруднику

Для архитектора ПО важно понимать не только аспекты и особенности веб-разработки и IT-системы, но и разбираться в бизнес-процессах.

Специалисты должны соответствовать следующим требованиям:

  1. Проектировать ПО и информационные системы.
  2. Знать языки программирования.
  3. Формировать архитектуру ПО.
  4. Подбирать средства, технологии и инструменты для разработки.
  5. Контролировать процессы выполнения задач.
  6. Знать операционные системы и сети.
  7. Проводить проверки и тестирования.
  8. Создавать техническое задание.
  9. Вести переговоры.
  10. Доказывать свою точку зрения.
  11. Анализировать требования заказчика.
  12. Управлять проектом и командой.
  13. Обеспечивать поддержку программистам.
  14. Работать с базами данных.
  15. Оценивать возможности и перспективы, а также риски и возможные ошибки проекта.
  16. Выявлять и устранять ошибки.
  17. Формировать стратегию и методы разработки.
  18. Вести техническую, отчетную и прочую документацию.
  19. Знать инструменты проектирования систем.
  20. Анализировать текущие архитектурные решения.
  21. Обладать навыками менеджера.
  22. Знать базовые информационные технологии.
  23. Понимать IT-тренды и предвидеть их возможные изменения.

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

  • системное мышление;
  • коммуникабельность;
  • ответственность;
  • стрессоустойчивость;
  • организованность;
  • постоянное желание развиваться;
  • аналитический склад ума;
  • обучаемость;
  • внимательность;
  • умение работать в команде;
  • терпеливость;
  • креативность;
  • исполнительность;
  • лидерские качества.

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

Как работает архитектурный комитет

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

У нас в разработке параллельно десятки проектов, и мы стремимся поддерживать внутреннее комьюнити экспертов и обмен опытом. Для этого мы создали архитектурный комитет – отдельную группу со своим руководителем.

Архитектурный комитет – это команда, в которую входят наиболее опытные разработчики Backend, Frontend, Mobile. Сейчас у нас 54 таких специалиста, их число постепенно растет.

Мы уже писали на Хабре, как мы разбираем входящие запросы и оцениваем сроки разработки. Расскажем, как в этом участвуют архитекторы.

Этапы работы

  • Анализ требований
  • Проектирование архитектуры
  • Внутренний контроль
  • Презентация заказчику

В ходе видеопрезентации заказчику архитектор рассказывает о результате своей работы, а заказчик в реальном времени задает все интересующие его вопросы.

  • Архитектурный надзор при разработке

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

Несколько участников архитектурного комитета SimbirSoft

Обучение

Для того чтобы стать системным архитектором, необходимо получить соответствующее профильное образование. При этом в одних случаях может пригодиться диплом вуза, а в других – диплом колледжа. Следует учитыать, что профильное высшее образование является более предпочтительным. Важно отметить тот факт, что работодатели крупных престижных компаний отдают предпочтение тем соискателям, которые окончили престижные столичные университеты и имеют в дипломе высокие оценки. Таким образом, вам следует внимательно подбирать учебное учреждение, а также хорошо учиться. Выбирать можно направление подготовки, которое непосредственно связано с программированием.

Однако стоит учитывать тот факт, что базового высшего образования зачастую недостаточно. Системные специалисты – это высококвалифицированные сотрудники, которые также должны регулярно увеличивать объем своих знаний, овладевать новыми навыками и умениями.

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

Чтобы освоить эту профессию, нужно получить опыт и профессиональные навыки в программировании, но это лишь первоначальная стадия на пути к должности системного инженера организации. Должностные обязанности формируются согласно накопленным знаниям.

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

Заключение.

Работа ИТ-архитектора позволяет проявить свои творческие способности, общаться с профессионалами и ТОП-менеджерам. Главное – непрерывное обучение, интерес к разработке и «железу», умение использовать практические знания в проектировании информационных систем, ИТ-продуктов, развитые личностные и менеджерские качества.

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

Adblock
detector