Команда Spring АйО перевела статью об исследовании Uplevel, которое показало, что использование GitHub Copilot не улучшает производительность разработчиков, а наоборот — увеличивает количество ошибок в коде. 

Разработчики стали тратить больше времени на проверку ИИ-сгенерированного кода, что снижает ожидаемую экономию времени. Хотя компании активно внедряют ИИ-инструменты, их реальная польза для повышения продуктивности остается под вопросом.


Недавнее исследование ставит под сомнение заявления о том, что инструменты для кодирования на базе ИИ повышают производительность разработчиков. Оно показало, что использование GitHub Copilot увеличивает количество ошибок на 41%, вызывая опасения по поводу качества кода. Хотя группы как с использованием Copilot, так и без него сократили рабочие часы, пользователи Copilot не ощущали снижения стресса, что говорит об ограниченной эффективности инструмента для предотвращения выгорания. К тому же разработчики стали тратить больше времени на проверку кода, созданного ИИ, что сводит на нет возможную экономию времени.

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

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

Хотя инструменты кодирования стали одной из первых областей применения генеративного ИИ, исследование аналитической компании Uplevel указывает, что ожидания по поводу их влияния на производительность могут быть преувеличены. По данным Uplevel, использование GitHub Copilot привело к увеличению количества ошибок на 41%.

«Это предполагает, что Copilot может негативно влиять на качество кода. Руководители инженерных команд должны внимательно проверять pull-реквесты с ошибками и внедрять защитные меры для ответственного использования генеративного ИИ», — говорится в отчете «Может ли генеративный ИИ улучшить производительность разработчиков».

Исследование измеряло время цикла PR (время, необходимое для слияния (мёржа кода в репозиторий) и пропускную способность PR (количество слияний). Существенных улучшений для разработчиков, использующих GitHub Copilot, не обнаружено. Исследование Uplevel было направлено на ответ на три ключевых вопроса:

  1. Помогает ли GitHub Copilot разработчикам писать код быстрее?

  2. Помогает ли Copilot разработчикам создавать более качественный код?

  3. Снижает ли Copilot риск выгорания у разработчиков?

Uplevel проанализировала данные около 800 разработчиков, использовавших Copilot в течение трех месяцев, и сравнила их результаты с данными до начала использования инструмента.

Изменения в показателях эффективности отсутствуют

«При сравнении времени цикла, пропускной способности и сложности pull-реквестов (PR) с тестами и без них, GitHub Copilot не помогал и не мешал разработчикам в выборке, а также не увеличил скорость написания кода. Хотя некоторые из этих изменений были статистически значимы, они не оказали значительного влияния на технические результаты — например, время цикла сократилось всего на 1,7 минуты», — говорится в отчете Uplevel.

Снижение риска выгорания

Показатель Uplevel «Постоянная включенность» (отслеживающий длительную работу вне рабочего времени и являющийся ведущим индикатором выгорания) снизился в обеих группах. Однако для разработчиков, использующих GitHub Copilot, снижение составило 17%, а для тех, кто не использовал инструмент — почти 28%.

Исследование GitHub привело к иным выводам

«Исследование Uplevel было вызвано интересом к заявлениям о том, что ИИ-помощники для кодирования станут повсеместными», — сказал Мэтт Хоффман, продакт-менеджер и аналитик данных в Uplevel. Напротив, исследование GitHub, опубликованное в августе 2024 года, показало, что 97% инженеров-программистов, разработчиков и программистов заявили, что использовали ИИ-помощников. Другие исследования дали похожие результаты.

В своем исследовании GitHub сообщил, что более 97% респондентов использовали инструменты ИИ для кодирования на работе хотя бы раз. Этот результат оказался схожим для всех четырех исследуемых стран. Однако меньший процент опрошенных заявил, что их компании активно поощряют или разрешают использование ИИ, и этот показатель различается в зависимости от региона. Основные выводы опроса включают:

  • Рост применения генеративного ИИ в разработке программного обеспечения продолжается. Опрос был расширен до 2000 респондентов, из которых почти все (более 97%) использовали эти инструменты хотя бы раз, на работе или вне ее (хотя не все компании официально поддерживают их использование).

  • Хотя многие респонденты отметили, что их компании приветствуют ИИ, еще есть над чем работать. Опрос показал, что от 59% до 88% респондентов из разных стран заявили, что «их компания активно поощряет или разрешает использование этих инструментов».

  • Команды разработчиков стали замечать больше преимуществ от ИИ-помощников, чем раньше. Это включает создание более безопасного программного обеспечения, улучшение качества кода, создание лучших тестов и быстрое освоение новых языков программирования. В итоге это привело к экономии времени, которое разработчики направляют на более стратегические задачи.

«Респонденты нашего опроса сказали, что ИИ помогает им работать продуктивнее, используя сэкономленное время для проектирования систем, улучшения сотрудничества и удовлетворения нужд клиентов. ИИ не заменяет человеческие рабочие места: он освобождает время для человеческого творчества. Теперь давайте углубимся в исследование», — сказал главный операционный директор GitHub Кайл Дайгл в своем блоге.

Тем не менее, исследование Uplevel ставит под сомнение эту точку зрения. Хотя GitHub демонстрирует сильные показатели производительности, Uplevel обнаружил, что разработчики тратят больше времени на проверку кода, созданного ИИ, что может свести на нет возможную экономию времени. Подобные выводы сделал и GitClear в начале этого года, отметив, что, хотя ИИ-ассистенты могут помогать в программировании, они не всегда улучшают качество кода и могут добавлять ошибки.

Исследователи GitClear обнаружили, что инструменты ИИ, такие как GitHub Copilot, в основном предлагают добавление нового кода, не рекомендуя обновления или удаление уже существующего. Это часто приводит к избыточности кода. Кроме того, они отметили резкий рост «чередования кода», что означает, что код часто изменяется, что обычно является негативным признаком для его качества.

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

Осторожный подход к внедрению ИИ-помощников для кодирования

Введение таких инструментов, как GitHub Copilot, поднимает несколько важных вопросов: поможет ли ИИ разработчикам работать быстрее? Улучшит ли он качество кода и предотвратит выгорание? «Пока нет для этой выборки. Тем не менее, инновации развиваются быстро, и GitHub обнаружил, что Copilot повышает удовлетворенность разработчиков», — отметил Uplevel в своем отчете. Руководителям инженерных команд стоит рассмотреть осторожный подход к внедрению Copilot, готовясь к будущим улучшениям инструмента:

1. Установите конкретные цели: Определите четкие результаты для интеграции GitHub Copilot в рабочий процесс команды. Какие именно улучшения вы надеетесь достичь?

2. Обучите команду: Проведите первоначальное обучение, чтобы объяснить, когда и где следует использовать GitHub Copilot, и установите защитные меры для обеспечения правильного внедрения.

3. Продолжайте эксперименты с генеративным ИИ: Определите конкретные случаи, где Copilot работает лучше всего, и уточняйте запросы для получения лучших результатов. Делитесь успешными стратегиями внутри компании для повторения успехов.

4. Следите за показателями технической эффективности: Проводите A/B-тесты для получения объективных количественных данных о том, действительно ли ИИ улучшает производительность разработчиков и помогает достигать ваших операционных целей.

Источники: Uplevel , GitHub

Присоединяйтесь к русскоязычному сообществу разработчиков на Spring Boot в телеграм — Spring АйО, чтобы быть в курсе последних новостей из мира разработки на Spring Boot и всего, что с ним связано.

Ждем всех, присоединяйтесь

Комментарии (16)


  1. Vad344
    30.10.2024 12:32

    Значит, это всё же не я душный ретроград.


    1. event1
      30.10.2024 12:32

      Строго говоря, не значит.


    1. katyaross
      30.10.2024 12:32

      Странно, что это прямо исследование потребовалось. Я в универе учусь, в силу административных моментов, далеко не лучшем и даже там ИИ начиная со второго курса мало помогали (ну то есть когда пошли хоть какие-то задания чуть сложнее, чем циклы и классы). Могли подсказать как "разложить" задачу и какие библиотеки использовать. Дальше свои мозги (и помощь ИИ по "чтению" документации библиотек) были куда надежнее, чем тот код, что он рожал. Я молчу про то в какой ступор его вводил 5-й цикл правок. Там уже просто такое впечатление что логика покидала код, что он генерид

      В чем они реально хорошо помогают так это в роли умного браузера по документации и аннотации уже готового кода (ну и студентам - прям личный репетитор для лабораторок, мы OpenGL не зная С и С++ только благодаря ему и учили)

      Но вот с документацией он прямо то, жаль далеко не все компании по юридическим причинам используют и разрешают использование ИИ... В том бардаке, что у нас в банке