Медиа 1Т о карьере в ИТ

Как собрать команду мечты: проект SocialTech на стажировке 1Т Дата

Создать идеальную команду поможет искусственный интеллект — рассказываем про разработку рекомендательного сервиса для формирования команд ИТ-специалистов на платформе СОЮЗ.РФ.

Мы уже писали про реализованные на практике 1Т Дата проекты: EduTech — систему оценки вовлеченности учащихся онлайн-курсов и RoboTech — алгоритм управления роем сельскохозяйственных беспилотников. Сегодня расскажем про команду SocialTech — три месяца она работала над модулем автоматического подбора ИТ-команд, сбалансированных по техническим навыкам и психологической совместимости.
Как формируются команды в СОЮЗ.РФ
Платформа СОЮЗ.РФ — это место, где ИТ-специалисты работают в командах над проектами для бизнеса. Любой желающий может зарегистрироваться в Союзе и после собеседования попасть в команду.

Сейчас в Союзе 10 действующих команд, в которых работает более 100 человек. Большая часть из них сложились сами собой еще во время обучения на курсах и только три команды сформировали трекеры Союза. Число участников Союза растет, и формировать из них новые команды будет становится всё сложнее. Модуль автоматического подбора команд ИТ-специалистов упростит и ускорит процесс формирования эффективных команд.
Что нужно учитывать, чтобы сформировать команду мечты
Говорит Лилия Воробьева, менеджер и модератор платформы СОЮЗ.РФ:

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

Мы проанализировали команды на платформе — все они уже имели опыт совместной работы, и у них получается действовать слаженно и хорошо понимать друг друга. Но у нас также есть участники, которые присоединились к Союзу по отдельности, с каждым днем их становится всё больше, и их тоже нужно объединять в команды.

Модуль автоматического подбора команды поможет трекеру Союза быстрее формировать новые команды под конкретные заказы и снизит риск подбора команды, которая не справится с проектом.
Запрос от СОЮЗ.РФ
Работать над созданием ИИ-сервиса подбора команд начала команда SocialTech. Перед ней стояла задача разработать рекомендательный механизм, который должен предлагать:
  • Новому участнику — команду, у которой есть потребность в его навыках, при этом он должен быть социально совместим с остальными участниками.
  • Существующей команде — нового участника, который соответствует ее потребностям.
  • Участникам без команды — объединяться в команду. На основании анализа данных пользователей рекомендательная система должна предлагать трекеру состав команды, а он уже мог подтвердить объединение или внести изменения.
Зачем нужен тест Белбина
Чтобы понять, насколько слаженно участники команды смогут вместе работать, нужно было найти инструмент для оценки психологической совместимости. Им стал тест Белбина.
Тест Белбина — это популярная методика оценки командных ролей, разработанная доктором психологических наук Реймондом Белбином. Она помогает определить роли, необходимые для формирования успешной команды. Белбин выделил девять ролей: генератор идей, аналитик-стратег, специалист, душа компании, исследователь ресурсов, координатор, мотиватор, реализатор и контролер. Тест широко используется при подборе сотрудников в ИТ-команды.

Говорит Раиса Чеботарева, дата-сайентист

— Нам нужно было создать алгоритм формирования команд с использованием теста Белбина. Но оказалось, что русские переводы не совсем соответствуют оригиналу. Представляете, в переводах одного из самых популярных тестов массово встречаются неверные описания ролей. Например, роли «координатор» и «мотиватор» в некоторых переводах оказались схожими по описанию, но на самом деле они выполняют разные функции. Нам пришлось самостоятельно переводить описание ролей, чтобы это всё точно определить.
Говорит Антон Зинченко, аналитик данных
— Мы думали, что получим большой объем данных от заказчика, проанализируем его и поймем, как выглядит команда мечты. Но нам пришлось самим заняться сбором данных: мы создали свою версию теста Белбина и пригласили участников команд пройти тестирование.

Затем нам нужно было проверить, насколько корректные результаты выдает тест и соответствуют ли участники команд тем ролям, которые определил им Белбин.

Для этого мы проанализировали, как участники с разными характеристиками взаимодействуют друг с другом в реальных проектах. Мы убедились, что тест работает точно: «координаторы» действительно координируют, а «мотиваторы» — мотивируют. Так мы убедились, что тест Белбина корректно отражает роли участников и может быть использован для формирования сбалансированных команд.
Анализ сообщений в чатах
Чтобы определить роль человека в команде по Белбину, нужно, чтобы он прошел специальный тест. Но можно ли это сделать без тестирования?

Говорит Раиса Чеботарева, дата-сайентист

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

Для анализа текста сообщений мы использовали предобученную языковую модель DeepPavlov/rubert-base-cased. В отличие от простого подсчета частоты слов, она преобразует текст в эмбеддинги — числовые векторы, которые содержат глубокую информацию о значении слов и их контексте в предложении. Эмбеддинги сравниваются с ключевыми словами, которые связаны с разными ролями. Они позволяют точнее отразить смысл текста, что помогает правильно определить роль, соответствующую сообщению.

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

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

Говорит Антон Зинченко, аналитик данных

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

Также мы экспериментировали с разными способами интерпретации результатов, чтобы повысить точность и глубину анализа. Например:
  • Учет двух ярких ролей. Вместо одной роли мы рассматривали две наиболее выраженные роли человека. Это позволяет получить более детализированный портрет, учитывая, что люди часто проявляют себя в нескольких направлениях. Например, человек может быть и «мотиватором», и «душой компании».
  • Вектор наиболее сильных ролей. Мы также пробовали анализировать набор ролей, которые у человека выражены выше среднего. Такой подход позволяет создать «вектор ролей», который описывает человека через комбинацию его сильных сторон. Например, вектор может включать роли «координатор», «аналитик» и «стратег».
В этом направлении есть большой потенциал для развития проекта.
Как работает модуль подбора команд
На текущем этапе:
  • ИИ-помощник интегрируется как внешний сервис на платформу СОЮЗ.РФ.
  • Разработаны различные сценарии использования данных о командных ролях в процессе принятия решений.
  • Создан прототип ИИ-модели для анализа телеграм-чатов, который в перспективе может учитывать изменения командных ролей с течением времени.
  • Предложены сценарии учета местоположения и часового пояса участников, а также результатов работы над проектами при формировании команд.

А так будет выглядеть процесс подбора команды после окончательной интеграции нового сервиса:
  1. Каждый пользователь Союза, который хочет вступить в команду, заполняет информацию о навыках в профиле и проходит тест Белбина на определение социальной роли. Это поможет ему попасть в команду, где не хватает именно такого специалиста.
  2. Сервис собирает данные о профессиональных навыках участников платформы СОЮЗ.РФ. Для этого используются сведения из внутренних данных платформы и с GitHub.
  3. Из базы данных выбираются столбцы с именем пользователя, ролью по тесту Белбина и профессиональными компетенциями.
  4. На основе этих данных формируется предложение по составу команды под конкретный тип заказа: определяются обязательные участники и оптимальное количество специалистов разных направлений.

Модель постоянно обучается на новых данных, а это значит, что результаты будут становиться всё более точными, а идеальные команды будут формироваться автоматически без участия трекера.
Читать еще