ИИ повышает производительность разработки. Или нет?
В одном из комментариев в моем канале в Сетке появился вопрос: “а как вы измеряете эффективность разработки?”. Вспомню ключевой тезис в дискуссии CTO Day: измеряем бизнес-результатами и скоростью выпуска новых бизнес-функций в продукте.
Встретил свежую исследовательскую работу, в которой утверждается, что использование инструментов с ИИ увеличивает производительность разработчика на 26,08%. Значит, в этой работе должны быть метрики производительности и эффективности.
Методика исследования:
- три рандомизированных контролируемых эксперимента в реальных условиях на примере трех компаний (Microsoft, Accenture, анонимная компания из списка Fortune 100). В процессе эксперимента разработчикам был случайным образом предоставлен доступ к GitHub Copilot, либо они попадали в контрольную группу без доступа.
- Анализ данных проводился с использованием двухшагового метода наименьших квадратов (2SLS), где экспериментальное назначение использовалось в качестве инструмента для использования GitHub Copilot, чтобы учесть несовершенное соблюдение условий эксперимента. Оценки 2SLS взвешивались по разнице в использовании между экспериментальной и контрольной группами за период
- Для оценки влияния инструмента на производительность разработчиков использовались такие показатели, как количество выполненных pull request, количество коммитов кода и количество сборок кода, а также показатели использования Copilot, такие как количество предложений и количество принятых предложений.
Вот оно! Pull request, количество коммитов кода и количество сборок — ключевые показатели для оценки. Какие есть ограничения при оценке этих метрик:
- высокая вариативность в результатах, поскольку на производительность разработчиков влияет их опыт, навыки и типы выполняемых задач. Принцип распределения разработчиков на кластеры в данном эксперименте непрозрачен.
- Эксперименты проводились в реальных рабочих условиях, где на производительность разработчиков могли влиять различные факторы, не поддающиеся контролю, например, изменения в проектах или командные взаимодействия.
Действительно ли в количестве PR измеряется производительность разработки — вопрос все еще открытый.