К основному содержимому
#Management

[1/3] Enabling the Study of Software Development Behavior With Cross-Tool Logs (Рубрика Management)

#Management #Engineering #Software #Bigtech #Productivity #Leadership #Processes

Прочитал наконец-то исследование, вышедшее в 2020 году, где авторы из Google рассказали про создание своей системы InSession, которая позволяет проводить комплексный анализ поведения инженеров путем интеграции логов от множества инструментов разработки. Ценность исследования в том, что разработчики - это одна из самых затратных частей разработки софта, поэтому даже небольшие улучшения продуктивности могут принести значительные результаты. InSession отличалось от других подобных инструментов тем, что собирало не только данные из IDE, но и не требовало установки на рабочие машинки инженеров (данные собирались из существующих облачных инструментов).

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

  • Фронтенд-события: инициируемые разработчиком активно (например, нажатие кнопки интерфейса)
  • Бэкенд-события: происходящие асинхронно от имени разработчика (например, cron-задания)
  • Мгновенные события: с неопределенной конечной точкой
  • Длительные события: с установленным временем начала и окончания 2. Артефакты Для большинства событий собиралась еще дополнительная метаинформация, которую авторы называли артефактами. Они были двух типов Идентифицирующие задачу артефакты: идентифицируют конкретную задачу разработки для группировки связанных событий Информационные артефакты: предоставляют контекстную информацию о событии 3. Сессии Собственно события объединялись в сессии при помощи группировок, которые
  • Происходят в один день
  • В течение временного интервала (10 минут)
  • Имеют одинаковые идентифицирующие задачу артефакты (или не имеют никакую) 4. Метрики Система выводит семь ключевых метрик поведения разработчиков:
  • Время кодирования - время написания или maintaining кода
  • Время рецензирования - время на ревью кода
  • Время сопровождения (shepherding) - время на доработки кода по результатам обратной связи с code review
  • Время исследования - время на изучение документации
  • Время разработки - время на разработческие активности любого типа (что не покрыты другими категориями)
  • Время работы с электронной почтой
  • Время, проведенное на встречах

Если говорить про источники данных для InSession, то это множество инструментов, включающих

  • Buganizer - система отслеживания ошибок
  • Code Search - инструмент поиска и просмотра кода
  • Cider - веб-IDE
  • Blaze - распределенная система сборки
  • Critique - инструмент рецензирования кода
  • Gmail и Calendar - здесь тянулись ограниченные метаданные
  • Еще более 90 инструментов командной строки

Продолжение обзора этой интересной статьи в следующем посте.

#Engineering #Software #Bigtech #Productivity #Management #Leadership #Processes