что такое архитектор решений
Большой гайд по профессии архитектора решений (+список полезных ссылок)
Еще лет 10 лет назад роль архитектора решений (Solution Architect) на проектах выполняли сами разработчики. Теперь это отдельная профессия, довольно востребованная и активно обсуждаемая. Вместе с коллегами-архитекторами подробно разбираемся во всех деталях и рассказываем, как стать архитектором в EPAM.
Начнем с азов: что означает слово «решение» в контексте IT?
Это продукт или комплекс продуктов, который решает конкретную техническую или бизнес-задачу. Решение нужно бизнесу, чтобы увеличить прибыль: оно либо повышает доходы, либо снижает издержки — к примеру, автоматизирует бизнес-процессы и тем самым снижает расходы на оплату труда. Решение встраивается в архитектуру предприятия и связывается с другими ее компонентами. Большинство проектов EPAM направлены на создание решений: разработка от начала и до конца или отдельных компонентов.
Выходит, на каждом проекте по разработке нужен архитектор?
Алексей Кожемякин (Director, Technology Solutions, EPAM Belarus):
«Как только инженер задумался о нуждах бизнеса — он ступил на путь Solution Architect».
Почему раньше обходились и без архитекторов?
Роль архитектора решений на проектах играла вся команда целиком, несколько ее членов или один разработчик с высокой квалификацией. Он мог быть сразу и разработчиком, и проектным менеджером, а заодно и архитектором. Со временем (и опытом) пришло понимание, что создание архитектуры слишком важная и объемная задача, чтобы заниматься ей по остаточному принципу.
В отличие от разработчика, архитектор мыслит абстракциями более высокого уровня. Он размышляет не о взаимодействии классов, а о взаимодействии компонентов решения – приложений, веб-сервисов и так далее. Хотя, если требуется, он должен без проблем «провалиться» в детали кода. Кроме этого, бизнес-сторона решения для архитектора важна так же, как и техническая. Разработчики часто фокусируются на технологиях и новых библиотеках, с которыми хочется познакомиться; архитектор же отталкивается от интересов и потребностей заказчика.
Так кто главнее: архитектор или разработчик?
Архитектура и разработка – разные и равноправные направления карьерного пути. Архитектор мыслит более абстрактно, но при этом реже прикасается к коду. К тому же не всегда продумывает все до мелких деталей. Часто команда разработки реализует архитектурную концепцию самостоятельно. А качественно реализовать дизайн решения – это так же важно, как и придумать этот дизайн.
Конкретнее: какими задачами занимается архитектор решений?
В первую очередь архитектор анализирует бизнес-цели заказчика, связанные с новым продуктом. Фокусируется на требованиях, которые повлияют на архитектуру, на программную часть решения и его компоненты. Затем проектирует решение и продумывает его дизайн. Архитектор определяет, из каких компонентов будет состоять продукт, нужно ли разрабатывать его составляющие с нуля или будет уместнее использовать готовые компоненты «из коробки».
Для некоторых частей решения SA делает proof-of-concept – небольшую экспериментально-исследовательскую задачу, чтобы понять, возможно ли реализовать тот или иной функционал.
Архитекторы участвуют в предпродажах, консультируют клиентов, проводят аудит архитектуры существующего решения – оценивают, насколько она эффективна для поставленных задач, можно ли ее оптимизировать, и если да, то как.
В EPAM, например, у архитекторов есть возможность часто менять проекты, что позволяет поработать в разных областях и сферах, напрямую общаться с людьми, непосредственно вовлеченными в основные бизнес- и технологические процессы в компании.
Владимир Казакевич (Senior Solution Architect, EPAM Belarus):
«Каждый понимает слово «бизнес» по-своему. И задача архитектора решений — вникнуть в бизнес заказчика настолько глубоко, насколько это возможно, а главное — результатом его работы должны быть решения, «заточенные» под конкретных заказчиков и их конкретные бизнес-проблемы».
А есть ли какие-то еще архитекторы?
Помимо архитекторов решений это:
Enterprise Architect – создает и поддерживают архитектуру целого предприятия, которая состоит из множества решений.
System Architect – выстраивает инфраструктурную сторону решения, фокусируясь на инфраструктурных облачных сервисах, на ПО, необходимом для поддержки решения после его развертывания.
Quality Architect – выстраивают стратегию тестирования и определяет подход к управлению качеством создаваемого продукта.
В EPAM, например, архитекторы решений пока в большинстве.
Кто может стать архитектором решений?
Роман Шрамков (Director, Technology Solutions, EPAM Ukraine):
«Для того, чтобы бизнес и менеджмент увидел возможности для применения технологий, нужен настоящий гик, который объяснит им какие в этом преимущества и как это можно сделать».
Помимо разработчиков, попробовать себя в архитектуре решений могут бизнес-аналитики, деливери-менеджеры, проектные менеджеры, ресурсные менеджеры, а также тестировщики-автоматизаторы: для них есть даже специальная поддисциплина — Solution Architecture in Test Automation.
Cтоит отметить, что ожидания от такого специалиста у компании и коллег действительно серьезные. Если ошибку в разработке отдельного компонента можно исправить, то неверное решение и плохая архитектура – могут обернуться огромными потерями для обеих сторон.
Дмитрий Гурский (Lead Solution Architect, EPAM Belarus):
«У того, кто хочет стать архитектором, прежде всего, должно быть желание что-то создавать, строить. И это не навык, который можно прокачать, это внутренняя потребность — либо она есть, либо нет».
Какие образовательные программы для будущих архитекторов есть в EPAM?
Так как Solution Architect, как отдельная должность, появилась на рынке сравнительно недавно, ее понимание в разных компаниях отличается. В EPAM создан центр компетенций по архитектуре, команда которого формирует единое представление об этой роли, основываясь на опыте работы с клиентами, их бизнес-задачах и ожиданиях, лучших практиках, внутренних процессах и системах.
Программа, которую разработали практикующие архитекторы и СTOO компании постоянно обновляется. С одной стороны она учитывает индивидуальный опыт сотрудника, а с другой позволяет выбрать образовательный модуль кастомно.
Для начала можно присоединиться к Architecture Excellence Initiative – глобальному архитектурному сообществу EPAM, чтобы быть в курсе последних новостей и тенденций в области архитектуры. Участники комьюнити еженедельно общаются с архитекторами из более чем 25 стран. Оперативный обмен кейсами, доступ к обширной библиотеке и вебинарам, собранной коллегами – это сюда.
Дальше – обучение в Solution Architecture School. Это уникальная программа, которую в компании создавали с нуля: групповые занятия с лекциями и практикой ведут действующие архитекторы компании. Здесь все как в обычной школе – домашние задания, включающие разработку дизайна, постоянное общение с преподавателями и защита контрольной выпускной работы.
Что делать, если пришел в EPAM уже архитектором?
Архитекторы решений, которые пришли в компанию, могут пройти программу Solution Architecture Basics: это своеобразный помощник архитектора, включающий базовые темы, информацию о возможностях профессионального и карьерного развития, полезные контакты и гайды по инфраструктуре. Все, что поможет быстрее адаптироваться в компании.
Архитекторам буду рады в Global Solution Architecture Team – команде экспертов, которые активно участвуют в развитии дисциплины: разрабатывают лучшие практики в компании, координируют глобальные образовательные программы для архитекторов, консультируют коллег и клиентов.
Ну, а если не хочется останавливаться на достигнутом, можно стать студентом Solution Architecture University — трёхуровневой программы, которая помогает опытным архитекторам синхронизировать знания и заговорить на едином языке. У студентов есть возможность пройти сертификации в Software Engineering Institute, IASA Global и других ассоциациях, с которыми сотрудничает EPAM.
Еще одна инициатива — Solution Architecture Mentoring — менторами в которой выступают опытные архитекторы, технические директора и CTO компании. Менти вовлечены в переговоры с клиентами, вместе с наставниками работают над реальными проектами и задачами. Программа помогает архитекторам «прокачаться» в профессии и даже вырасти до уровня CTO.
Solution Architect: Кто Это и Какие у Него Обязанности
Содержание
Многие компании заранее могут увидеть, что проект окажется неудачным. Соответственно, они имеют шанс изменить результат и достигнуть успеха. Это требует внезапной трансформации большинства процессов в соответствии с новыми требованиями рынка.
Такая трансформация требует особой экспертизы и набора практик для согласования бизнес-фокуса с технологическими решениями. В противном случае, изменение методов работы не даст улучшения эффективности.
Поэтому, в любой компании, которая нацелена на развитие, развита архитектура решений. Это практика проектирования, описания и управления решениями в зависимости от задач и проблем бизнеса.
Подобная практика породила соответствующую должность – архитектор решений. Это Лицо, ответственное за руководство практикой и представление общего технического видения конкретного решения. Работа архитектора решений включает в себя множество аспектов и обязанностей, о которых и пойдет речь в статье.
Из чего состоит архитектура программного продукта
В первой из них основной фокус – построение экосистемы и решение стратегических проблем высшего уровня (объединение ключевых требований, анализ потоков данных и т.д.). Бизнес архитектура приводит к понимаю того, какие техническая средства необходимы для поддержания программного продукта.
Архитектура решений – промежуточная составляющая между бизнес-процессами и технологическими решениями. Она включает в себя поиск технических решений для разных задач, описание структуры и поведения ПО, определение функций и этапов для каждого решения.
Технологическая архитектура включает в себя инженерные проблемы. Иными словами, это аппаратная составляющая программного продукта. Она описывает системное ПО, стандарты на программно-аппаратные средства, системы управления и т.д.
Исходя из этого мы видим, что в ИТ архитектуре есть три соответствующих уровня должностей – Enterprise Architect (EA), Solution Architect (SA) и Technical Architect (TA).
Роль архитектора решений
За простым «как делать» в работе архитектора решений кроется множество задач, таких как выбор фреймворков для работы, контроль за развитием программного продукта, решением спорных ситуаций у разработчиков. Почему же так важна эта работа?
Кроме того, именно архитектор решений отвечает за соблюдение всех требований в ходе разработки. Он же должен изучить ограничения проекта, чтобы проанализировать допустимые альтернативы и снизить риски.
В общем, архитектор решений – это связующее звено между технической группой и руководителем проекта. Он обеспечивает скорость и точность передачи информации, а также контролирует ключевые процессы разработки.
Какими навыками должен обладать архитектор решений
Архитектор решений – это не высшее и не низшее звено в процессе разработки программного продукта, но без него невозможно получить необходимый результат. Именно поэтому, архитектор решений должен обладать как общими навыками управления проектам, так и исключительными способностями.
Экспертная коммуникация. Роль SA – обеспечить выполнение проекта в срок. Поэтому он должен быть в состоянии четко донести технические аспекты, риски, проблемы и преимущества каждого решения.
SA – это центральный элемент для всех сторон, вовлеченных в решение, от бизнес-аналитиков и до разработчиков. Соответственно, он должен уметь объяснить выбранные подходы на всех уровнях. При этом, ему необходимо обладать человеческими качествами для предоставления советов и объяснений, ведения переговоров и оказания положительного влияния.
Управление рисками. Как снизить риски? Необходимо уметь пользоваться тестами производительности, безопасности, взаимодействия с пользователем и другими. Если SA не способен проанализировать показатели подобных тестов, то его работа окажется безуспешной.
Технические знания. SA не сможет дать совет или объяснить какое-то решение, если он не обладает достаточными знаниями в технических аспектах проекта. Такая должность подразумевает понимание всех технических дисциплин, которые задействованы в разработке.
Ориентация на детали. В ходе разработки программного продукта очень важна скрупулезность. Но такая черта характера у всех развита по-разному. Архитектор решений – это человек, который должен уделять наибольшее внимание деталям. Ведь именно они определяют возможные риски, а также помогают разделить ценные и незначительные элементы программного продукта.
Рациональное распределение. Для обеспечения быстрого и качественного результата нужно большое количество ресурсов. Но если их распределить неправильно, то итог все-равно будет негативным. Архитектор решений должен иметь информацию о всех доступных ему ресурсах и использовать их наиболее оптимальным путем.
Аналитические навыки. Разработка решений требуют понимания того, как связаны различные части бизнеса. Потому SA должен разобраться в корпоративной стратегии и реализовать все бизнес-процессы, которые определяют способы достижения целей компании. Таким образом, архитектор решений постоянно должен проводить аналитическую работу на разных уровнях бизнеса.
Обязанности архитектора решений
В общем, архитектор решений – это человек, который отвечает не только за разработку, но и за практическую реализацию идей. Он должен иметь четкое представление о продукте и понимать, какую пользу этот продукт принесет бизнесу. Кроме того, архитектор решений транслирует это видение всей команде разработчиков кода, чтобы они могли создать программный продукт.
Неотъемлемой частью разработки является выбор технологического стека. Архитектор решений обязан принимать участие в этой процедуре. Главная цель в данном случае – найти, какой стек будет наиболее подходящим для конкретного проекта.
Почему компании платят архитекторам решений
Таким образом, компании платят за оптимизацию бизнес-процессов и создание условий для масштабирования. Сколько? В среднем – 100 тысяч долларов в год. При этом, архитектор решений не получает меньше 80 тысяч. А вот максимальный показатель уже зависит от страны и компании, в которой работает человек. К примеру, в Австралии, в 2019 году максимальная оплата труда SA составила 106 тысяч долларов, в то время, как в США – 196 тысяч.
Заключение
Архитектура решений лежит в основе любого ИТ-проекта, независимо от того, применяется ли такая практика или нет. Преднамеренно внедряя архитектуру решений, компания создает структуру, которая объединяет технологии, ресурсы и навыки команды с определенными бизнес-целями.
Прежде, чем начинать работу над новым проектом, необходимо изучить структуру компании и основные требования. Конечно, можно сделать это лично. Но можно делегировать все соответствующие полномочия архитектору решений. Его роль и значимость будет замечена моментально.
ИТ архитектор: виды и задачи. Расскажем о сложном простым языком
Приходилось ли вам когда-либо искать IT архитектора? Не такая это простая задача, как кажется на первый взгляд. Разобралась в теме и подготовила материал Елена Меркулова, эксперт IT подбора Atsearch Crowd Recruitment.
В названии вакансии часто пишут просто «системный архитектор» или «IT архитектор», и понять очень сложно, для каких ролей нужен кандидат, и чем же все-таки он будет заниматься. Да и резюме не всегда красноречиво.
Давайте попробуем разобраться.
IT архитекторы бывают разных типов:
Разберем каждый тип на примере строительства дома. Итак, строим дом.
На примере строительства: процесс начинается с человека, который поможет выбрать нам стиль, спланирует количество этажей, расположение квартир, окон, количество подъездов.
В IT: он решает стратегические проблемы – делает анализ ключевых требований, анализ потоков данных и пишет «IT Конституцию» проекта. Разрабатывает архитектурные стандарты и требования.
На примере строительства: человек, который поможет нам на основании проекта предшественника рассчитать необходимые тепловые мощности для отопления дома, определить расположение узлов для подачи воды и канализации в квартирах, на основании расчетов разметить положение проводки.
В IT: выбирает фреймворки, формулирует альтернативные варианты IT решений в рамках бюджета, обозначает риски, решает спорные ситуации среди разработчиков. Ему также необходимо уметь анализировать тесты производительности, безопасности. Этот специалист должен четко представлять практическую реализацию идеи и уметь ее донести до команды.
Данные решения требуют высокой степени ответственности исполнителя. Если что-то будет спроектировано неверно, исправить это будет крайне сложно, придется многое кардинально менять.
На примере строительства: теперь нам нужен специалист, который наклеит обои и положит ламинат. Этот человек подскажет, какие обои выбрать по качеству, какой ламинат подойдет, исходя из выбранного архитектурного стиля.
В IT: эту роль выполняет разработчик.
Эти роли очень тесно связаны между собой и зачастую в компаниях нужен специалист: Enterprise архитектор + Solution архитектор или разработчик + Solution архитектор или Enterprise архитектор + Solution архитектор + разработчик. Чем крупнее компания, тем чаще данные роли разделяют на самостоятельные, в небольших же стартапах – это, как правило, три в одном.
В строительстве: выполняют особую, связующую роль для всех систем предприятия. Например, осуществляют проектирование стояков водоснабжения, канализации, отопления, установки электрощитов, закупку оборудования, заключают договоры с поставщиками ресурсов для удовлетворения потребностей жильцов. То есть формируют целостную систему на основе предыдущих архитектурных проектов.
В IT: занимаются серверным оборудованием (серверы приложений, серверы поддержки), корпоративными сетями уровня предприятия, СУБД, архитектурой безопасности (авторизация, аутентификация), операционными системами, системами хранения предприятия, облачными сервисами и др.
Иногда часть ролей инфраструктурного архитектора выделяется в самостоятельные единицы:
Security architect — занимается вопросами безопасности 2 типов: Первый тип — это закрытие доступов на уровне оборудования, шифрование каналов передачи данных – нижний уровень. Второй — прикладная защита на уровне приложений, которые работают поверх оборудования, например, почта или корпоративные приложения – верхний уровень.
У бизнеса есть необходимость быстро анализировать большие объемы данных (Data Lake) и доставать нужную информацию (сформировать отчетность, сделать статистику, рассчитать KPI).
Чтобы лучше понять процессы в данной области, приведем такую аналогию.
Представим, что мы переезжаем в новую квартиру и привозим с собой кучу вещей. Сортировать их у нас нет времени и сил. Мы все складываем в большую кладовку. Это и будет Data Lake (озеро данных) нашей квартиры. Эти данные — «сырые», необработанные. Часть вещей из кладовки мы можем достать и поместить в шкаф (в IT корпоративное хранилище или DWH) – то есть здесь данные уже будут в едином формате, с четкой структурой, и достать их будет легко и быстро. Сам процесс переноса в «шкаф вещей» в IT происходит с помощью ETL-средств (в переводе извлечение, трансформация, загрузка), этим процессом занимаются data – аналитики. Чтобы все вещи перераспределить по шкафам, нужно много времени и денег, а может часть вещей нам и не потребуется, поэтому иногда хранить в кладовке общей кучей дешевле.
За что отвечает Data архитекторы:
Как организовать регулярный сбор данных из многочисленных систем-источников, как их систематизировать в озере данных, какие данные поместить в корпоративное хранилище и определить модель их размещения, понять для чего нам нужны данные и как достать требуемые данные.
В реальной же жизни границы между видами архитекторов нечеткие. Иногда, когда начинаешь проект (например, строительства дома), не знаешь, что нужно несколько архитекторов. И только в процессе поиска нужного человека, а может быть и в процессе реализации проекта, — приходишь к тому, какие именно специалисты нужны.
ИТ-архитектор. Как стать тем, на кого не учат?
Привет, Хабр! Меня зовут Сергей Терехин, и я — системный архитектор. Даже искушенные в ИТ люди не всегда знают специфику моей работы. Расскажу, как меня угораздило стать системным архитектором, чем занимаюсь, а также про прелести, боли и перспективы этой профессии.
Системный архитектор — это скорее роль, чем конкретная должность. Этой профессии не учит ни один вуз. А парадокс в том, что эти самые мифические системные архитекторы крайне востребованы и без их участия нормально не смог бы функционировать ни один крупный бизнес, базирующийся на ИТ.
Если вы считаете, что мир кровавого Enterprise загибается и однажды все корпоративное ИТ будет из облака, в вас поднимается волна возмущения и руки тянутся к помидорам, чтобы запустить в автора… Подождите. В реальности монстры российского бизнеса пока предпочитают строить свои ИТ иначе. И роль системного архитектора при таком подходе к инфраструктуре очень велика. Эти люди анализируют задачи, которые бизнес ставит перед ИТ, что именно нужно сделать и как лучше достичь поставленных целей. Они выбирают инструменты, оптимально подходящие в той или иной ситуации, придумывают архитектуру будущего вычислительного комплекса в целом, а иногда и каждого отдельного модуля в нем. И самое главное — системные архитекторы видят общую стратегию внедрения инфраструктуры и следят, чтобы все части выбранного решения укладывались в эту общую канву.
Так чем же они, то есть мы, по факту занимаемся?
Три вида архитекторов
Проще всего это понять, разобравшись, какие бывают архитекторы в ИТ.
Есть наиболее распространённое и понятное определение «архитектора решений» или «solution-архитектора» — это специалист, который понимает, как устроена и должна работать определенная прикладная система (веб-сервис, социальная сеть, ERP-система и пр). Он держит команды разработки в рамках техзадания и помогает создавать решения, фокусируясь на бизнес-задаче, а не просто на функциональных требованиях к исполняемому коду. Любое приложение должно на чем-то работать, а данные, которым оно оперирует, храниться долго и без потерь. Solution-архитектор может только сформулировать, какие ресурсы требуются и как быстро должен подниматься упавший сервис. Кто же сделает это реальностью?
Именно здесь подключается «системный архитектор». Он как раз гуру в создании ИТ-инфраструктуры, включая ЦОДы, железо, сети, различных системы хранения и серверные платформы. Его основная задача — подготовить инфраструктуру к тем требованиям, которые диктуют ей приложения. В сферу ответственности системного архитектора может входить множество систем, которые так или иначе относятся к инфраструктурному уровню, обеспечивая необходимую производительность, надежность и доступность. Но сути это не меняет — системный архитектор придумывает, как будет выглядеть ИТ-инфраструктура в целом и что она должна «уметь».
В идеале синергия системного и solution-архитекторов должна давать компании тот самый импульс для развития. В действительности между ними — бездна. Архитекторы решений не знают, как функционирует инфраструктура, а системные архитекторы часто не заинтересованы вникать в работу ПО. Именно поэтому над ними появляется «enterprise-архитектор» — супермен, способный соединить два сегмента архитектуры. Это не какой-нибудь отдельный «биологический» вид, а скорее новая эволюционная форма развития системного и solution-архитектора. Обычно он соединяет два берега над той самой бездной.
Мой личный опыт
Лично я начинал с простого инженера. Еще будучи студентом, работал эникейщиком, потом руководил маленьким отделом из трех человек в компании в Приморье. После перебрался в Питер и там впервые столкнулся с полноценной ИТ-инфраструктурой, став руководителем группы эксплуатации серверов и систем хранения. Через какое-то время меня притянула Москва. За несколько лет я стал руководителем дирекции ИТ-инфраструктуры, где кроме должности и нового масштаба задач мне вручили набор административных и, как я потом уже понял, архитекторских задач. Разбираться с этим приходилось на ходу, а многое просто брать и делать своими руками. Часто впервые.
По факту я уже тогда был системным архитектором, но без титула; выполнял определенные функции не для заказчиков, а для работодателя, конструируя системы виртуализации, проектируя доменные леса с нуля, перестраивая сети хранения в новую топологию. Оказавшись в компании «Инфосистемы Джет», я наконец-то официально стал носить гордое звание системного архитектора.
Футболисты и шахматисты
Наша компания ведет много крупных и сложных проектов, и поэтому у нас в штате я далеко не единственный системный архитектор. Оказывается, достичь этой позиции можно разными путями. Например, я — «футболист». Всю свою карьеру я «играл на поле»: бегал по ЦОДам, физически имел дело с оборудованием, знал его особенности, решал проблемы в реальном окружении. Но бывают прекрасные архитекторы «шахматисты». Они развиваются из глубоких теоретиков, которые изначально занимались только проектированием и не имеют богатого «полевого» опыта.
У каждого карьерного пути свои плюсы и минусы. Однажды я участвовал во встрече, где мои коллеги архитекторы готовили таблицу сравнения по двум системам резервного копирования. Мне это было странно, потому что, как практик, я прекрасно знал, насколько одно решение лучше другого. Да что там — на голову выше! Практика дает хорошую опору в принятии решений. В то же время, теоретики более беспристрастно оценивают все возможные опции, особенно когда все запутано и откровенно плохо. Так что разница между практиками и теоретиками не сказывается на качестве принятых решений.
В конечном счете сегодня я, как системный архитектор, отношусь как раз к теоретикам. После «полевой» работы ИТ-инфраструктуре средних размеров, я перешел в высшую лигу, но не «футбольную», а «шахматную». Какое-то время к этому пришлось привыкать: менять характер своего мышления и много работать с людьми.
Какие навыки нужны ИТ-архитектору?
Умение абстрагироваться
ИТ-архитекторы разрабатывают сложные решения под уникальные задачи бизнеса. На рынке нет типовых кейсов, которые можно использовать всегда и везде. Как в шахматах всего из 32 фигур может получиться 10 120 шахматных партий, так и одинаковый набор решений и продуктов можно объединить в различные ИТ-системы, иметь разную структуру и в итоге получить уникальный функционал. ИТ-архитектору важно развивать гибкость мышления, чтобы взглянуть на проект под другим углом, суметь разбить его на логические части и найти наиболее подходящее решение.