Сегодня ЕРАМ — это сообщество из более 40 000 экспертов по всему миру. В таких масштабах для качественной работы с большими объемами данных и правильной оценки ресурсов нужны нетривиальные подходы. Некоторыми такими подходами делится Евгений Моспан, Senior Solution Architect и руководитель Центра компетенции Java.  Больше года назад Евгений с коллегами начали работать над технологическим радаром по своему стеку. Вскоре эксперты обнаружили, что стоит объединиться с коллегами из разных локаций и команд и вместе создавать более масштабный, глобальный продукт. Лучшими практиками и вынесенными уроками на пути внедрения data-driven подходов в управление Евгений делится в этом материале. Если ваша компания планирует активный рост — будет полезно.  Пока ваша команда относительно невелика вопрос систематизации данных стоит не так остро. Появляется проект — и вы с ходу знаете, есть ли у вас необходимая экспертиза и люди или нет, будут ли с этим риски. В компании средних размеров избежать ненужных сложностей тоже можно: толковая иерархическая структура позволит эффективно решать вопрос с достаточно узким кругом людей. Но если вы переходите в лигу «1000+ людей в команде», то data-driven подход становится необходим. Он позволит опираться на конкретные данные, которые есть в компании, а не мнение людей.   Чтобы имплементировать data-driven подход, потребуется определить master data — наиболее важные характеристики, вокруг которых будут строиться различные бизнес-сценарии. Причем они могут касаться не только стаффинга проектов, но, предположим, и обучения сотрудников (например, если анализ покажет, что за последний год вашим инженерам регулярно отказывали в позициях на проектах по причине слабого знания Spring, то вы сможете запланировать программу для прокачки этих навыков). Вариантов — масса.   У ЕРАМ, как у любой крупной компании, есть много данных о командах, запросах и людях на проектах. Это и описания потребностей клиентов, и перечень позиций, и список технологий, которые использовали, и комбинации навыков, которые требовались на разных ролях, и список кандидатов, и многое другое. В то же время отдельным потоком нам поступают данные с рынка: к команде присоединяются новые эксперты и приносят информацию о навыках, которыми обладают.   Нашим presale-специалистам и другим экспертам, которые работают с потенциальными клиентами, приходится лавировать среди этих массивов данных, чтобы понять, какие технологии востребованы, какие набирают популярность, какие представлены большой экспертизой в компании, а какие потребуют найма людей извне. Чаще всего это огромные объемы разрозненных данных.  Идеально, когда речь идет о проекте, позицию на нем создавать не с помощью словесного описания, а собирать из условных блоков информации, перечня навыков. Да и человек, который приходит в компанию, тоже может создать свой профиль во внутренних системах, зафиксировав навыки в виде заготовленных блоков информации.   Это — далеко не все сценарии использования данных в нашей компании. И естественно, что в этом случае каждый смотрит на данные со своей стороны. Это приводит к тому, что одно и то же начинают называть разными словами. Или наоборот. Потому, имея в ЕРАМ много удобных и полезных внутренних платформ, которые поддерживают различные процессы, мы решили систематизировать информацию. Так сможем избежать путаницы и оптимально пользоваться ресурсами и возможностями, которые есть в компании и на рынке. Важно иметь возможность сравнивать навыки, объединять их в смысловые блоки-сабсеты и использовать в аналитике. Один из сценариев и самых очевидных плюсов такого подхода: проектный менеджер, которому на проекте требуется инженер с десятком навыков, сможет понять, есть ли специалисты с таким опытом в компании, сколько их, а если их нет, то существуют ли они в принципе. Исходя из этого, менеджер примет решение создавать одну или две позиции, искать кандидата внутри компании или выходить с вакансией на рынок.   Чтобы применять математические модели в ежедневной работе и эффективно внедрять data-driven подход, нужно сформировать правильный набор как мастер, так и транзакционных данных. Задачей экспертов Центра компетенции Java стала актуализация мастер данных, описывающих скиллы (навыки в технологиях) в рамках Java-экосистемы, а также формирование экспертных оценок их актуальности, степени внедрения на реальных проектах, наличия открытой информации для обучения, степени поддержки этих технологий вендорами и сообществом. В последствии на базе этой информации будет легче отвечать на вопросы бизнеса, описанные выше.  Мы использовали графовую модель для построения связей между навыками. Их надо было объединить по компетенциям, сгруппировать по подмножествам, чтобы сравнивать в дальнейшем сопоставимые технологии (ведь нельзя ставить в один ряд фреймворк для создания web-приложений с IoT-фреймворком). Для этого  использовали разработанный внутренний продукт EPAM на базе ArangoDB, позволяющий вести мастер-данные. Этот продукт был интегрирован в операционные системы, которые потребляют эту информацию, в качестве источника мастер-данных, чтобы пользователь мог правильно заполнить стаффинг-позицию или личные данные во внутренней системе.   Упрощенно говоря, наша работа состоит из четырех этапов:  Формирование мастер-данных Использование этих данных  Аналитика  Построение математической модели для Machine Learning.  Сейчас мы — на третьем этапе. Он — самый важный. Делаем выборки, используя различные критерии, изучаем разные системы, которые используют наши специалисты в ежедневной операционной работе. Особенность в том, что у каждой — собственные мастер-данные, которые мы и хотим унифицировать, чтобы не было расхождений во время поиска. Нам нужно единое место, где навык «Java» определен в таксономии скиллов в дереве графа и все остальные системы на него ссылаются. По сути, мы с коллегами из разных стран и команд создаем первоисточник всех данных.    О структуре, возможностях и основных задачах мы рассказывали ранее. Сегодня у Центра компетенции есть несколько ключевых векторов работы:  ## Есть, например, в нашем багаже задач глобальная модульная менторинг-программа для Java-инженеров разных уровней. Она помогает их менеджерам определить, куда должны расти разработчики, чтобы выйти на новый профессиональный уровень. Как руководитель, так и сам инженер может зайти на программу, просмотреть модули и определить, какие пробелы в знаниях необходимо заполнить. Таким же образом можно в достаточно экстренном порядке подготовить людей к новому проекту, где требуется знание новых технологий. Каждый модуль – это учебные материалы, домашние задания, квизы для проверки знаний. Сейчас программа работает в Украине, Беларуси и Казахстане, скоро мы планируем ее запуск в Чехии, Польше, Венгрии и других странах присутствия ЕРАМ.   В 2020 в рамках Java Competency Center мы стартовали несколько рабочих групп по разным направлениям. Так мы изучали применимость Kotlin как язык для back-end разработки в проектах компании и привлекательность его с точки зрения бизнеса. Также ЕРАМ заключила партнерство с Azul – компанией, которая делает поставку OpenJDK, предоставляет продукт Zulu Enterprise, который дешевле аналога от Oracle, и другие сервисы. Наши эксперты изучали возможности модернизации виртуальных машин потенциальных клиентов Azul и особенности их миграции на Java 8 и 11. Еще одно перспективное партнерство ЕРАМ – с Lightbend, компанией, которая развивает Scala-технологии на Java-стеке.  На сегодняшний день инженерам компании EPAM доступны обучающие материалы Lightbend, что позволяет им  получать новые, актуальные на рынке навыки, а также проходить сертификацию. В ЕРАМ мы верим в силу сообществ, потому развиваем глобальную платформу Community-Z. На ней можно найти комьюнити по своей технологии. Конечно, есть и по направлению Java. Эксперты из Центра компетенции выстраивают горизонтальные связи между разными городами и странами и привлекают к работе не только коллег, но и широкое сообщество.   Пандемия сделала такой формат общения своеобразной заменой беседам на кофе-поинтах. Конечно, выступления на наших вебинарах – это не только возможность обменяться опытом, но и прокачать навыки публичных выступлений. От внутренних ивентов до глобальных конференций типа Zed Conference. На последней, кстати, мы как раз рассказывали о работе нашего Центра. Ее запись можно найти здесь.   Кстати, в скором времени мы собираемся провести Java Z-Day, на который приглашаем всех желающих.