Лаборатория инструментов совместной работы

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

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

Направления исследований

Анализ трассировки

Трассировка действий в ходе коллективной разработки — источник важных данных, которые можно использовать, чтобы улучшить процесс разработки. Мы исследуем разные подходы к извлечению ценной информации из истории разработки: системы рекомендателей, моделирование опыта, аналитические механизмы и метод вопросов и ответов.

Исследование ревью кода

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

Поддержка обмена сообщениями

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

Проблемы при коллективной разработке

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

Генерация тестов и воспроизведение сбоев

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

Семинары

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

Присоединяйтесь к нашей meetup-группе, чтобы быть в курсе предстоящих встреч.

Хотели бы выступить? Пожалуйста, напишите Владимиру письмо.

Публикации

Сентябрь 2023
Egor Klimov, Muhammad Umair Ahmed, Nikolai Sviridov, Pouria Derakhshanfar, Eray Tuzun, Vladimir Kovalenko

Bus Factor Explorer

ASE 2023, Люксембург

Коэффициент Bus factor (BF) — метрика, позволяющая отслеживать распределение знаний между участниками проекта. Коэффициент определяет минимальное число специалистов, после ухода которых проект не может быть завершен. Для вычисления коэффициента bus factor можно использовать разные алгоритмы, но лишь некоторые инструменты предлагают простой расчет этого коэффициента и удобный анализ результатов для проектов, размещенных на Git-хостингах.

Мы представляем Bus Factor Explorer — веб-приложение, которое обеспечивает и веб-интерфейс, и API для вычисления, экспорта и анализа метрики Bus Factor с помощью визуализации в виде дерева, режима моделирования и редактора диаграмм. Оно поддерживает репозитории в GitHub и предлагает возможности поиска по репозиториям прямо из интерфейса, а также обработки одновременно нескольких репозиториев. С помощью нашего инструмента пользователи смогут, проанализировав историю VCS, определить файлы и подсистемы, работа над которыми может быть парализована в случае смены разработчика.

Приложение и его исходный код находятся в открытом доступе в GitHub по адресу https://github.com/JetBrains-Research/bus-factor-explorer. Демонстрационное видео можно посмотреть на YouTube: https://youtu.be/uIoV79N14z8

Июнь 2023
Farid Bagirov, Pouria Derakshanfar, Alexey Kalina, Elena Kartysheva, Vladimir Kovalenko

Assessing the Impact of File Ordering Strategies on Code Review Process

EASE 2023, Оулу, Финляндия

Распространенные современные инструменты для ревью кода (например, Gerrit и GitHub) сортируют файлы, для которых проводится ревью, в алфавитном порядке. Исследование, проведенное недавно на проектах с открытым исходным кодом, показало, что положение файла в списке на код-ревью влияет на процесс. По данным исследования, ревьюеры уделяют меньше внимания файлам, находящимся в нижней части списка. Следовательно, вероятность пропустить ошибку в этих файлах возрастает. В этой статье анализируется влияние порядка файлов на ревью кода в рамках известного в отрасли проекта IntelliJ IDEA. Во-первых, мы проверили результаты упомянутого исследования на крупном проекте разработки проприетарного ПО. Затем мы проанализировали, что будет, если отсортировать файлы не как обычно, по алфавиту, а по количеству изменений в коде. Полученные результаты подтверждают выводы более раннего исследования. Мы выяснили, что ревьюеры оставляют больше комментариев в файлах, которые идут в списке на ревью первыми. Более того, эти результаты показывают, что даже в случае данных, для которых характерна сортировка по алфавиту, изменение порядка сортировки файлов в соответствии с объемом изменений в коде позволяет улучшить результаты ревью по сравнению с алфавитным порядком, поскольку более сложные файлы, требующие больших усилий, первыми попадают к ревьюеру. Эти результаты подтверждают, что возможные варианты сортировки файлов при ревью кода требуют дальнейшего изучения.

Состав

Владимир Коваленко
Руководитель лаборатории
Pouria Derakhshanfar
Старший исследователь
Farid Bagirov
Исследователь
Кирилл Бочкарев
Исследователь
Михаил Евтихиев
Исследователь
Егор Климов
Исследователь
Екатерина Кощенко
Исследователь
Елена Люлина
Исследователь
Сергей Титов
Исследователь
Николай Свиридов
Разработчик
Аркадий Сапожников
Разработчик
Vahid Haratian
Стажер
Ekaterina Itsenko
Стажерка
Екатерина Браун
Стажерка
Евгения Кириллова
Стажерка

Бывшие сотрудники

Elgun Jabrayilzade
Erdem Tuna
Университет Билкент и компания Picus Security
Alexander Agroskin
Институт Вейцмана
Muhammad Umair Ahmed
Ruslan Salkaev