|
@@ -0,0 +1,95 @@
|
|
|
+# Кто такой архитектор ПО и как им стать
|
|
|
+
|
|
|
+**Архитектор ПО** — это специалист, ответственный за проектирование структуры и организацию системы или продукта. Роль архитектора в IT-компании включает в себя не только технические задачи, но часто и коммуникационные и организационные обязанности. Также архитектор является промежуточным звеном между бизнес-процессами и технологическими решениями.
|
|
|
+
|
|
|
+Пока что индустрия не может чётко определить эту деятельность как профессию. В общероссийском классификаторе профессий ОКПДТР архитектор встречается скорее ландшафтный, чем программного обеспечения. В вузах вы не сможете найти специальность «*Архитектура программного обеспечения*».
|
|
|
+
|
|
|
+Границы профессии достаточно размытые, и часто это не профессия и должность, а скорее роль. Задачи разнятся: архитектор должен уметь писать код и документировать его для коллег, в то же время он может коммуницировать с бизнесом и заказчиками, выстраивать стратегию развития компании на годы вперед.
|
|
|
+
|
|
|
+## Виды архитекторов ПО
|
|
|
+
|
|
|
+На виды архитекторов можно посмотреть в двух разрезах:
|
|
|
+
|
|
|
+1. Технологический фокус.
|
|
|
+
|
|
|
+2. Стратегический фокус.
|
|
|
+
|
|
|
+Давайте рассмотрим график для наглядности.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+### технический архитектор
|
|
|
+
|
|
|
+Начнём с правого нижнего угла — здесь наиболее глубокий технический фокус. Значит, этот архитектор является экспертом в одной или нескольких технологиях. Он действует скорее тактически, чем стратегически, работает над текущими задачами и не смотрит далеко в будущее.
|
|
|
+
|
|
|
+Это может быть техлид или архитектор нескольких выделенных команд. Например, роль архитектора может занимать человек, который долго работал с системой платежей и всё про неё знает. Он разрабатывает архитектурные решения исключительно для небольшого спектра команд — для одной-двух.
|
|
|
+
|
|
|
+### архитектор решений
|
|
|
+
|
|
|
+Если двигаться дальше и добавлять больше стратегического фокуса, получится архитектор решений. Данная роль сочетает в себе технологическую и бизнесовую составляющую и оперирует в широком временном диапазоне. Это значит, что архитектор решений может действовать и тактически, и стратегически: работать над текущими задачами и смотреть в будущее.
|
|
|
+
|
|
|
+При таком сочетании навыков и гибкости фокус смещается, постепенно практические инженерные навыки начинают теряться. Чаще всего архитектор решений работает с большим количеством продуктов и команд.
|
|
|
+
|
|
|
+### корпоративный архитектор
|
|
|
+
|
|
|
+Корпоративный архитектор действует на стратегическом уровне, обеспечивая компанию долгосрочным планом. Он помогает компании уверенно оставаться на рынке и развиваться. Типовой горизонт планирования составляет 3—5 лет. Фокус направлен на существующие тренды, фундаментальные основы построения организации и технологического ландшафта, а также на управление архитектурой в целом.
|
|
|
+
|
|
|
+## Роли архитекторов ПО в компаниях разного масштаба
|
|
|
+Роли архитектора в разных компаниях отличаются — они зависят от условий бизнеса и набора задач. Давайте рассмотрим три типа компаний, отличающихся по масштабу.
|
|
|
+
|
|
|
+### Стартап
|
|
|
+Стартапом обычно занимается небольшая команда, которая располагает ограниченным бюджетом. Такие компании целятся на проведение небольших экспериментов и обычно мало беспокоятся о том, что в будущем продукт может измениться или резко получить большое количество пользователей. Из-за этого в стартапах редко встретишь архитектора ПО как выделенную роль — чаще вся команда выполняет эту функцию. Это может быть старший разработчик, основатель компании или сотрудник, который раньше всех начал работать с проектом.
|
|
|
+
|
|
|
+### Компания на стадии роста
|
|
|
+Компании начинают выстраивать процессы, стабилизировать технологический ландшафт, но всё ещё сохраняют гибкость в принятии решений. Организация становится больше и сложнее на этом этапе, поэтому в ней появляется отдельный архитектор ПО или даже отдел архитекторов.
|
|
|
+
|
|
|
+Примером рядовых задач можно привести следующие: коммуникация с отделом корпоративных архитекторов, защита и пересмотр архитектурного плана, планирование ресурсов на реализацию проекта, выбор технологий, согласование бюджета, декомпозиция проекта в дорожную карту, разработка и поддержание архитектурного решения уровня С2 и С3(набор иерархических абстракций (программных систем, контейнеров, компонентов и кода), набор иерархических диаграмм (системный контекст, контейнеры, компоненты и код)).
|
|
|
+
|
|
|
+### Корпорация
|
|
|
+В крупных компаниях часто существует отдельный архитектурный департамент. В них появляются архитекторы различных специализаций (system, application, data, network, security и т.д.) и вырабатываются архитектурные практики исходя из потребностей организации. Например, архитектор может работать со стандартами, запускать новые направления, работать с сотрудниками и их профессиональными профилями, планировать наперёд необходимые компетенции сотрудников для развития продуктов.
|
|
|
+
|
|
|
+## Отличия между инженерами и архитекторами ПО
|
|
|
+Хорошего архитектора от хорошего инженера будет отличать mindset — образ мышления, мировоззрение, набор жизненных установок. Чтобы рассмотреть отличия в mindset’е между инженерами и архитекторами, давайте применим ситуационное мышление и разберём на примерах, как себя будут проявлять эти специалисты.
|
|
|
+
|
|
|
+### Реализация vs Дизайн
|
|
|
+Инженер обычно работает в одной команде, а архитектор работает на несколько команд. Инженер мыслит в терминах реализации, удобства кода, иногда даже его красоты. Архитектор же фокусируется на выявлении исходной проблемы и формировании решения, чтобы её закрыть. Он рассматривает код как результат работы инженера и инструмент в достижении цели.
|
|
|
+
|
|
|
+Другими словами, инженер что-то делает руками, а архитектор находит решения, которые нужно внедрить.
|
|
|
+
|
|
|
+## Задачи архитектора
|
|
|
+
|
|
|
+* Разработка архитектурного решения — это основная задача и артефакт работы архитектора ПО. Причём решение может разрабатываться как с нуля, так и дорабатываться уже существующее. Если смотреть реальности в глаза, то часто бывает и так, что в работающем продукте не существует решения, и нужно его создать исходя из доступных артефактов (текущих сотрудников, существующего кода, его документации).
|
|
|
+
|
|
|
+* Анализ требований является первостепенной задачей, которую выполняет архитектор и которая обычно предшествует разработке архитектурного решения. В неё включается сбор требований, таких как функциональные и нефункциональные, их уточнение и приоритизация. Обычно это происходит через коммуникацию с бизнес-аналитиками и другими стейкхолдерами продукта.
|
|
|
+
|
|
|
+* Риск-менеджмент необходим, чтобы решение получилось надёжным. Мы всегда находимся в неидеальном мире, и случиться может что угодно. Необходимо предусмотреть разные сценарии развития событий, ожидаемых и негативных, и разработать стратегии, посчитав необходимые ресурсы, время, стоимость их реализации.
|
|
|
+
|
|
|
+* Коммуникация со стейкхолдерами. Архитектор общается с большим количеством разных людей на разных уровнях иерархии компании, собирая требования, разрабатывая решение и внедряя его в команду. Пожалуй, весомая часть работы архитектора — это коммуникация. От качества этой коммуникации во многом зависит успех работы архитектора. Как мы говорили выше, результат его работы — это документация и архитектурное решение, а его внедрение происходит другими коллегами.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## Персональные качества архитектора
|
|
|
+
|
|
|
+### любовь к технологиям
|
|
|
+Человек, имеющий это качество, будет увлекаться технологиями, любить, экспериментировать, что-то пробовать у себя локально. Постоянно делать какие-то проекты, работать с технологиями в свободное время, расширять кругозор.
|
|
|
+
|
|
|
+### предпринимательское мышление
|
|
|
+
|
|
|
+Архитектор подходит к проекту не только с технической точки зрения, но ещё и с бизнес-подходом. Он понимает, какие сроки реализации проекта, сколько на это нужно денег, как и кого нанимать в команду.
|
|
|
+
|
|
|
+Обычно в IT две основные траты — это персонал и серверные мощности. Что дешевле и лучше: *закупить высокие мощности* или *«закупить» более скиловую команду разработки*, которая всё заоптимизирует? Это решает архитектор.
|
|
|
+
|
|
|
+### лидерство
|
|
|
+
|
|
|
+**Лидерство** — это про *ответственность* за людей, ответственных за результат. Лидер создает окружение вокруг себя, позволяющее иметь доступ к самой важной и актуальной информации. Вокруг него собираются люди, которые готовы поддержать и которым он со спокойной уверенностью делегирует задачи. Это напрямую влияет на качество принятия решений и на скорость их согласования.
|
|
|
+
|
|
|
+### обучаемость
|
|
|
+
|
|
|
+Существует много смежных областей, включая те, которые напрямую к архитектуре не относятся. Архитектору иногда нужно в них погружаться, поэтому он должен уметь быстро загружать в себя знания, чтобы так же быстро начать их применять.
|
|
|
+
|
|
|
+### умение решать проблемы
|
|
|
+Архитектор умеет подходить к задачам нестандартно. Например, не всегда задачу «разработать систему облачных вычислений» нужно решать через реализацию нового сервиса. Если это корпорация со множеством отделов и технологий, может оказаться, что некоторые департаменты разработали такие системы для себя. Кто-то написал с нуля, кто-то внедрил Open Source и допилил. Тогда хорошим решением может быть адаптация и объединение этих сервисов.
|
|
|
+
|
|
|
+### коммуникабельность
|
|
|
+Архитектор общается с большим количеством других ролей: стейкхолдерами, product-менеджерами, аналитиками, разработчиками и другими. Он со всеми находит общий язык: с технарями общается на техническом языке, с бизнесом — оперирует цифрами, безопасникам рассказывает о том, какие классные стандарты будут внедряться. Под каждую специальность людей у архитектора будет свой язык. Сюда же можно включить культурные аспекты, если мы работаем в международных компаниях: тот же small talk и другие культурные нюансы.
|
|
|
+
|