Предисловие

Отрасль ИТ уже перестает быть загадочным миром. Большинство людей, даже не работающих в этой сфере, имеют общее представление о том, чем занимаются люди разных наиболее популярных профессий. Аналитики прорабатывают требования к программному обеспечению, разработчики по этим требованиям пишут код, тестировщики проверяют, как этот код работает. Конечно, если мы начнем уходить чуть‑чуть в детали, то скажем, что аналитики то бывают разные: может быть бизнес‑аналитик, а может быть системный. Разработчик может писать «бэкенд», а может «фронт». Тестировщик может проверять в ручную, а может писать автотесты, то есть программы, которые будут проверять другие программы. Однако еще есть профессии, которые люди, даже работающие в ИТ, не до конца понимают и не знают в чем обязанности данного специалиста, и как устроен его день. Одной из таких профессий является архитектор, а именно архитектор решений (Solutions architect). Часто сталкиваюсь с разными заблуждениями о том, кто он такой, чем занимается и что должен знать и уметь. Поэтому в этой статье я постараюсь сформировать у читателя общее представление о профессии, ответить на основные вопросы и развеять заблуждения о ней.

С чего я взял, что могу рассказать что-то полезное?

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

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

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

Кто же все таки такой этот Архитектор решений?

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

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

Одно из главных заблуждений об этой роли заключается в том, что архитекторы “по локоть” в программном коде или что они постоянно взаимодействуют с технологиями. Это абсолютно не так! Большинство представителей этой профессии никогда не программируют и не взаимодействуют с технологиями, которые используются для реализации решений. По большому счету основные инструменты, которыми ежедневно пользуется архитектор это:

А что же они тогда делают, черт возьми?!

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

Результатом процесса проектирования должна стать архитектура решения. И это не какая‑то одна «схемка», как можно подумать. Это комплексный документ, описывающий реализацию на разных уровнях и с разных точек зрения. Важно! Состав скорее всего будет отличаться в зависимости от требований конкретной организации. То, что принято включать в одном компании, в другой назовут «бредом». Я же просто приведу наиболее широкий список того, что может входить в итоговый документ:

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

  • схема взаимодействия. Это более детальная архитектурная схема, включающая в себя конкретные компоненты систем и направления, способы и протоколы взаимодействия между ними;

  • описание API (Application Programming Interface) сервисов, которое содержит описание способа интеграции, модель передаваемых данных, а также SLA (Service Level Agreement);

  • модель данных, например, с использованием нотации UML Class;

  • описание программного и аппаратного обеспечения, с требованиями к лицензиям и “мощностям”;

  • сетевая архитектура. Также обычно представляется в виде схемы, описывающей используемые сетевые узлы, их адреса и расположение, протоколы и порты для взаимодействия;

  • все это в идеале должно сопровождаться ADR (Architecture Decision Record), которые отражают причины, плюсы/минусы принятых архитектурных решений.

А что надо знать?

Технологии

Не смотря на то, что архитектор решений, как правило, не программирует и не реализует ничего «руками», ему все равно требуется отличное понимание технологий, их плюсов/минусов и возможностей. Поэтому, как правило, на эту позицию часто ищут людей с богатым опытом в разработке, которые успели поработать на разных позициях, в разных проектах, имеют опыт работы с различными технологиями и архитектурами. Итак, что же это за технологии? Кратко перечислю их основные категории с несколькими примерами для каждой:

Это далеко не полный список категорий и самих технологий. Конечно невозможно знать все, и не факт, что каждое знание понадобится. Может получиться и так, что архитектор вообще не будет сталкиваться с вопросами о выборе языка программирования или балансировщика нагрузки. Тем не менее это формирует некую необходимую базу для понимания, как устроены современные корпоративные приложения в целом.

Паттерны

Конечно же мало знать только технологии. Надо уметь их правильно применять! С этой проблемой помогут архитектурные паттерны(рекомендации к решению типовых задач). Еще их также называют шаблонами. На просторах интернета можно найти великое множество статей и книг, описывающих различные паттерны. Я лишь снова укажу основные категории и несколько примеров для каждой из них:

  • архитектурные стили: монолит, микросервисы, SOA;

  • стили и шаблоны интеграции: удаленный вызов, обмен сообщениями, вызов точка‑точка, публикация‑подписка;

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

  • имплементация бизнес‑логики: событийная архитектура, Saga;

  • общие шаблоны проектирования: DDD (Domain Driven Design), MDA (Model Driven Architecture);

  • отраслевые стандарты: TOGAF, BIAN (являются скорее фрейворками и нельзя назвать паттернами, но не хотелось делать отдельный раздел).

Нотации

Последнее, на чем хочется кратко остановиться, это нотации языков моделирования. Повторюсь, что в ежедневной работе, архитектор решений постоянно работает с диаграммами и схемами. Приходится как рисовать, так и читать чужие. Зачастую для их подготовки используются различные нотации. Среди самых распространенных можно выделить: Archimate, UML, BPMN, Data Flow Diagram, C4 Model (хотя формально это не нотация, а именно модель).

И как тогда выглядит рабочий день?

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

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

Около 50% уходит на встречи. Как я и описывал ранее, встречи проходят постоянно как по бизнес, так и по техническим вопросам. Бывают дни, а то и недели, когда первая встреча начинается в 9 утра, а последняя заканчивается в 6 вечера, а то и позже.

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

До 10% времени может уходить на административные задачи, среди которых переписки в почте, назначение и управление задачами в Jira, подготовка разных отчетов и т. д. Да‑да, и архитекторы тоже должны всем этим заниматься.

Около 5% может уходит на «тушение пожаров». Под этим имеется ввиду участие в разборе «багов» и поиске способов их устранения. Зачастую именно наличие комплексного понимания у архитектора, как все устроено, дает ему возможность предложить наиболее оптимальное решение.

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

Для последних 5% напишу скорее мое желание и рекомендацию для начинающих специалистов. Оставшееся время я стараюсь тратить на передачу экспертизы своим коллегам: пишу информационные и учебные статьи на корпоративном вики, готовлю различные чек‑листы для упрощения работы команд, провожу митапы и воркшопы. Зачем заниматься таким альтруизмом? Ничего подобного! Эти казалось бы незначительные 5% на длинной дистанции позволяют экономить кучу времени архитектора. Ведь вместо того чтобы на очередной встрече отвечать на одни и те же вопросы 10-му человеку подряд, архитектор может дать ссылку на материал и позже просто ответить на парочку оставшихся вопросов. Более того, все это позволяет с гораздо меньшей болью при необходимости делегировать свои обязанности на других специалистов.

Звучит как то скучно…

Может показаться, что это скучная работа. На деле это абсолютно не так! Архитекторы ежедневно сталкиваются с множеством разнообразных задач и вопросов, для решения которых приходится выходить за рамки своего мышления. Даже имея за плечами большой опыт в этой роли человеку приходится постоянно развиваться: изучать новое и повторять хорошо забытое старое. От проекта к проекту меняются технологии, подходы, условия, ограничения и требования. Кто‑то скажет, что базовые архитектурные паттерны остаются неизменными для любого проекта. И я даже соглашусь с этим. Но дьявол, как всегда в деталях, господа. А детали то всегда разные.

Поэтому, если Вы начинаете свой путь в качестве архитектора решений или только думаете о том, чтобы им стать, то как минимум в одном вы можете не сомневаться — Вас ждет захватывающий путь!

Спасибо!

Спасибо Вам за потраченное время! Надеюсь мне удалось составить более четкую картинку того, кто такой архитектор решений и чем он занимается.

Буду рад Вашей обратной связи по поводу статьи в комментариях!

Комментарии (19)


  1. OBIEESupport
    00.00.0000 00:00

    Базы Данных: реляционные (MySQL, PostgeSQL и тд) и нерялиционные/NoSQL(MongoDB, Apache Cassandra, Neo4j и тд);

    Даже интересно, во сколько такую ошибку оценит ваш работодатель.


    1. IvanKhar Автор
      00.00.0000 00:00
      +1

      Спасибо! Опечатался. Поправил)


  1. OBIEESupport
    00.00.0000 00:00
    +2

    И как тогда выглядит рабочий день? Диаграмма "Рабочий день архитектора решений".

    Интересно, только я вижу, что вы дважды на диаграмме написали "Передача экспертизы" самыми темными цветами?

    И очень прошу расставить запятые. Я понимаю, что текст уникально-самописный, но любой бесплатный сервис вам в помощь.


    1. IvanKhar Автор
      00.00.0000 00:00
      +1

      Спасибо, за комментарий! Диаграмму исправил!


  1. rsashka
    00.00.0000 00:00

    50% времени на встречи, такое возможно только на старте проекта.

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


    1. stone_evil
      00.00.0000 00:00
      +2

      50% времени на встречи, такое возможно только "в одном из крупных российских банков". Потому что все боятся ответственности и играют исключительно в ИБД.


    1. leonidv
      00.00.0000 00:00
      +2

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


    1. IvanKhar Автор
      00.00.0000 00:00

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

      По поводу времени на встречи: безусловно опыт индивидуален и зависит от многих условий, как отлично подметил @leonidv. Данные примечания я добавил в статью.

      В первую очередь я отталкивался от своего опыта, а также спрашивал нескольких коллег, в том числе из других отраслей(не только банковских). Но как вы понимаете ни о какой статистической достоверности здесь речи не идет)


  1. leonidv
    00.00.0000 00:00
    +3

    Такое ощущение, что статью писал junior solution architect. В целом идея зон ответственности близка принятой у нас в компании (и лично мне), но очень много неточностей и ошибок. Visio это инструмент рисования, а не проектирования/моделирования, в TOGAF нет паттернов проектирования ПО и т.п.


    1. IvanKhar Автор
      00.00.0000 00:00

      Спасибо за комментарий!

      В целом так и есть. Я относительно недавно в роли. После Вашего комментария понял, что это важно отразить для формирования контекста, что и сделал в начале статьи.

      По остальным моментам тоже согласен. Спасибо, что заметили. Также внес исправления в статью.

      Про TOGAF только хочется сказать, что да, это нельзя назвать паттерном. Это скорее набор "бест-практисов" и фреймворк. Просто показалось не нужным выделять их в отдельный раздел.


  1. vvpoloskin
    00.00.0000 00:00
    +2

    За годы работы с разными организациями я понял, что от архитекторов всегда спрашивают за ДЕНЬГИ. Задача архитектора - дать обоснование финансирования с учетом рассмотренных альтернатив и организовать сохранение намеченной выгоды. Если ему еще дают роль ГИПа, то спрашивают за эффективное использование вверенного ресурса. Все остальное типа встреч, документации, тушения пожаров чего-то там еще направлены именно на достижение этих задач.


    1. IvanKhar Автор
      00.00.0000 00:00

      Интересно на самом деле. Это тоже зависит от организации по большей степени.

      Я лично с вопросами бюджета напрямую не сталкиваюсь вообще. С этим работает тех(ИТ) лид проекта.

      + далеко не всегда выбор реализации зависит от прямых экономических факторов. Есть также история про соответствие стандартам корп архитектуры и возникающий тех долг в случае отрицательного ответа. А тех долг в свою очередь обязателен к исправлению в рамках какого-то своего горизонта планирования. (опять же говорю про конкретный кейс)


  1. shifttstas
    00.00.0000 00:00

    Есть вполне устоявшееся название Solution Architect, зачем это переводить?


    1. IvanKhar Автор
      00.00.0000 00:00
      +1

      Кажется, что это все таки устоявшееся название и перевод это разные вещи)

      Таким образом можно сказать про каждый термин.

      Ну и плюсом ко всему просто для сравнения: если вбить в поиск вакансий на том же hh, то получите 130+ вакансий с упоминанием "solutions architect" против 1800+ вакансий с упоминанием "архитектор решений".

      Поэтому по сколько статья написана на русском языке и предназначена для русскоязычного читателя, то считаю более корректным использовать все таки "архитектор решений"


  1. KarinaKasimova
    00.00.0000 00:00

    Спасибо за статью! :)

    Это так похоже на БА + СА в одном лице. В чем разница?


    1. DVL333
      00.00.0000 00:00

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

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


      1. vvpoloskin
        00.00.0000 00:00
        +1

        за общение с клиентом отвечают только аналитики

        А кто клиенту опции предлагает по удешевлению цены проекта или наоборот удорожанию? Ну что там условно к нашему ПО надо сервер купить, нужен такой-то, стоит столько-то. Тоже аналитики?)


      1. IvanKhar Автор
        00.00.0000 00:00

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


    1. IvanKhar Автор
      00.00.0000 00:00

      Спасибо, что прочитали)
      Если кратко объяснить разницу именно в моем понимании. То повторюсь, архитектор решений это мост между бизнесом и ИТ. При этом уровень проектирования, который выполняет архитектор все таки концептуальный. То есть проектируя интеграцию архитектор решений, например, установит, что в конкретном случае требуется асинхронная интеграция с использованием Кафка, где будет передаваться бизнес-сущность данных "Клиент". При этом конкретный контракт API, со всеми его деталями будет прорабатывать уже системный аналитик.
      Что касается бизнес аналитика, то архитектор решений с его помощью узнает детальные бизнес требования (бизнес процесс, нормативные ограничения и тд.). При этом их непосредственной проработкой будет заниматься как раз БА.