Всем привет! С вами команда X5 Tech. Сегодня мы решили показать наш Tech Radar — сборник инструментов, языков и сервисов, которые мы используем при разработке продуктов. Мы долго к этому шли и наконец-то готовы рассказать о своём опыте публично.

Что такое Tech Radar и зачем он нужен?

Tech Radar — инструмент, который помогает компании держать фокус в технологиях. С его помощью любой сотрудник компании может выбрать язык или решение, которое сможет использовать при разработке.

Когда компания большая и с множеством продуктов, начинается каша. Кто-то хочет писать код на Ruby, кто-то использовать сервисы MySQL, MSSQL или Oracle. В итоге может случиться так, что база используемых инструментов разрастётся до невообразимых размеров и все начнут в них путаться.

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

Та же проблема возникает и с подрядчиками. Контракт может истечь, компания исполнителя закрыться. Тогда если у заказчика изначально не было компетенций по какому-то решению, то работа вновь встанет.

С этим всем помогает справиться Tech Radar — карта инструментов, которые допустимы в работе. С его помощью компания понимает свои компетенции, может отслеживать актуальные решения на рынке, строить сфокусированную архитектуру и искать специалистов по нужным компетенциям. 

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

Откуда взялась концепция Tech Radar и как она выглядит

Один из родоначальников формата Tech Radar — агентство по технологическому консалтингу ThoughWorks

Внешне он выглядит как обычный радар, разделённый на четыре области: технологии, инструменты, платформы, языки&фреймворки.

От центра к периферии радара идут четыре круга:

  • Adopt — технологии и инструменты, которые внедрены и активно используются командах. Технологии, по которым в X5Tech есть экспертиза.

  • Trial — технологии и инструменты, которые уже прошли этап тестирования и готовятся к тому, чтобы работать в продакшн (или даже уже работают там).

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

  • Hold — в этой категории у нас есть экспертиза, но упомянутые инструменты используются только при поддержке существующих систем — новые проекты на них не запускаются.

Мы за основу взяли Tech Radar европейской компании Zalando. Он также есть у ThoughWorks. В России концепцию радара используют, к примеру, Avito и Lamoda.

Как мы делали Tech Radar?

Ранее у нас был технический стэк в виде файла Excel. Это была большая простыня-таблица без внятной структуры со списком используемых в компании языков, инструментов, платформ и фреймворков. Этот перечень стал отправной точкой.

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

Самым сложным было то, что у каждой команды своё видение, каким должен быть Tech Radar. У всех разные инструменты, кто-то чаще использует Airflow, кто-то NiFi или даже Talend. Поэтому, главная задача при создании радара — всё усреднить, вывести общие закономерности.

Мы искали самые актуальные закономерности. Как пример, недавно стали активно использовать язык Go. Нагрузка на инфраструктуру и продукты растёт, мы начинаем обрабатывать данные в реальном времени, и Go позволяет с этим справляться. На нём можно быстро и компактно писать микросервисы, включая многозадачные. Из-за своей актуальности Go внесён в Trial.

Или ClickHouse — одно из лучших решений для поколоночных баз данных. Оно стабильное, быстрое и позволяет очень большие массивы данных хранить компактно. ClickHouse у нас тоже в Trial.

Второй трудностью стало то, что каждый хотел добавить, как можно больше инструментов. Но тогда радар ничем не отличался бы от таблицы в Excel — в нём были бы сотни инструментов, он был бы массивным и сложным для восприятия. Отсечь лишнее — отдельная работа. Так, к примеру, мы не добавили Selenium.

А ещё у нас не прижился Apigee. Хотя сам по себе инструмент крутой, нам он показался неповоротливым. Взамен мы используем Gravitee.

В итоге чтобы держать фокус, мы сделали радар чисто по разработке. В будущем, очевидно, нужны будут отдельные Tech Radar для крупных направлений. Например, свой радар может быть у направления Big Data, SRE команды, DevSec Ops и других более узких специализация.

В целом работа над Tech Radar заняла у нас около месяца.

Как только он был завершён, мы занесли радар в департамент разработки и продукты, а они поделились ими со своими командами.

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

Что дальше?

Раз в 4-6 месяцев Tech Radar будет пересматривать архитектурный комитет. Это нужно для того, чтобы его актуализировать.

Рядом с каждым инструментом, языком, платформой у нас на радаре может появиться стрелочка вниз или вверх. Она будет означать тренд. Так если фреймворк станет использоваться реже, то он перейдёт, как вариант, из Assets в Hold, и напротив него появится стрелка вниз.

Кроме того, периодическое обновление радара — показатель гибкости. Мы следим за тем, что происходит у наших коллег в других компаниях и корпорациях. Какие-то языки устаревают, какие-то наоборот становятся актуальнее. Tech Radar — карта рынка, по ней можно даже ориентироваться тем, кто думает, какие компетенции будут актуальны через год или два.

Конечно, у каждой компании Tech Radar свой. Он зависит не только от трендов, но и от того специфики бизнеса. В нашем 94 инструмента, и у каждого своё точное место.

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


  1. ProstakovAlexey
    24.01.2022 11:51

    Прямо модная тема, радар. Но если присмотрется, то на приведенное картинке есть неоднозначность (или ошибка) в сортировке, в разделе Data Managment. А почему кстати радар, а не просто таблица с технологиями в порядке? Ведь таблица удобнее в использовании.


    1. X5RetailGroup Автор
      24.01.2022 14:53

      Сортировка в «правильном» порядке, просто сначала цифры, если речь про S3.

      Нам кажется, что в форме радара информация более читаема и структурна) + в оригинале радар интерактивный.


  1. gagarinas
    24.01.2022 13:12

    " Рядом с каждым инструментом, языком, платформой у нас на радаре может появиться стрелочка вниз или вверх. Она будет означать тренд. Так если фреймворк станет использоваться реже, то он перейдёт, как вариант, из Assets в Hold, и напротив него появится стрелка вниз. "

    Может стоит и мировой тренд добавить для наглядности.


  1. gecube
    24.01.2022 13:46

    Как разделяете технологии разных версий? Скажем, python - это одна технология? Или отдельно Python2 и Python3? Или Java - 8, 9, 10 и прочее

    Кроме того, периодическое обновление радара — показатель гибкости. Мы следим за тем, что происходит у наших коллег в других компаниях и корпорациях. Какие-то языки устаревают, какие-то наоборот становятся актуальнее. Tech Radar — карта рынка, по ней можно даже ориентироваться тем, кто думает, какие компетенции будут актуальны через год или два.

    это не решает проблему, озвученную выше:

    Та же проблема возникает и с подрядчиками. Контракт может истечь, компания исполнителя закрыться. Тогда если у заказчика изначально не было компетенций по какому-то решению, то работа вновь встанет.

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


  1. denaspireone
    24.01.2022 13:53

    Отсечь лишнее — отдельная работа. Так, к примеру, мы не добавили Selenium.


    Сделайте этот радар в SVG который можно увеличивать и проблем не будет.