ИИ совершает революцию в разработке программного обеспечения, делая ее более эффективной, продуктивной и инновационной. В этой статье мы исследуем влияние искусственного интеллекта на разработку программного обеспечения, углубляясь в выводы, полученные в результате исследования GitHub Copilot, проведенного командой исследований и разработок ELEKS.
Поскольку мир разработки программного обеспечения продолжает развиваться, роль ИИ становится все более важной. Учитывая такие преимущества, как возможность сократить время и усилия, необходимые для кодирования, и многое другое, неудивительно, что ИИ в разработке программного обеспечения в настоящее время является горячей темой.
92% разработчиков в США уже используют инструменты ИИ-кодирования как на работе, так и за ее пределами. - Гитхаб
70% разработчиков считают, что инструменты ИИ-кодирования дадут им явное преимущество в профессиональных начинаниях, включая улучшение качества кода, сокращение времени выполнения и расширенные возможности разрешения инцидентов. - Гитхаб
4 из 5 разработчиков ожидают, что инструменты ИИ-кодирования сделают их команду более эффективной для совместной работы. - Гитхаб
Хотя ИИ еще не достиг той стадии, когда он может самостоятельно создавать, тестировать и запускать программные продукты без участия человека, по сравнению с прошлым, он значительно ускорил общее время выполнения работ.
Доступно множество инструментов на базе искусственного интеллекта, которые могут помочь в разработке пользовательских приложений путем генерации и автозаполнения кода, а также обнаружения и исправления ошибок. Команда исследований и разработок ELEKS тщательно изучила один из таких инструментов — GitHub Copilot — чтобы оценить его влияние на задачи разработчиков, продолжительность выполнения и стандарты качества предоставляемых рекомендаций. Давайте посмотрим поближе.
Что такое GitHub Copilot?
GitHub Copilot — инструмент для автодополнения и генерации кода. Он построен на основе OpenAI Codex и обучен в общедоступных репозиториях GitHub. В результате он предлагает код для любого языка программирования. Однако качество предложений зависит от количества публичных репозиториев, основанных на конкретном языке программирования и фреймворке.
GitHub Copilot работает с программным кодом с помощью плагинов интегрированной среды разработки (IDE). В настоящее время поддерживаются только следующие IDE:
- Код Visual Studio
- Визуальная Студия
- Неовим
- все IDE от JetBrains
Обзор расследования ELEKS GitHub Copilot
Это исследование было направлено на изучение влияния использования Copilot как на скорость, так и на качество разработки.
Для проведения этого исследования был инициирован небольшой проект в качестве полигона для проверки различных предположений. С помощью команды, состоящей из четырех опытных разработчиков среднего звена, обладающих опытом работы с React, Redux, TypeScript, Jest, Vite, PHP, Symfony и Codeception, мы начали расследование и определили наши цели и подходы следующим образом.
Цель | Подход |
---|---|
Оцените зависимость между компетентностью разработчика и производительностью при использовании Copilot. | Для серверной разработки мы выбрали фреймворк Symfony. У серверной команды не было существенного опыта работы с этой структурой. |
Изучите влияние на типичные задачи разработчиков. | Перед началом проекта мы создали WBS, охватывающую типичную работу разработчика над коммерческим проектом. Также мы провели сеанс оценки задач. |
Изучите влияние на языки программирования и платформы по популярности. | Мы разработали веб-приложение с тестовым покрытием. |
Оцените влияние на время выполнения задачи | Мы произвели предварительную оценку отдельных задач по проекту. |
Повышайте эффективность исследований | Мы проводили сессии по обмену знаниями внутри команды во время ежедневных синхронизаций. |
Изучите качество предложений | Мы протестировали, как Copilot справляется с неклассической и более сложной структурой проекта. |
Основные выводы исследования ELEKS на GitHub Copilot
Исследование GitHub Copilot, проведенное ELEKS, позволило сделать несколько ключевых выводов, которые проливают свет на возможности и преимущества этого инструмента. Вот более подробное описание:
Обратите внимание, что результаты расследования основаны на субъективных отзывах команды, наблюдениях за их работой и проверках кода их решений.
GitHub Copilot имеет два режима работы:
- Режим автодополнения кода — почти всегда положительно влияет на производительность.
- Режим генерации кода на основе комментария с подсказкой — хорошо работает только для типовых структур кода. Это может быть контрпродуктивно при генерации бизнес-логики или нетиповых решений, поскольку анализ предложенных вариантов кода занимает много времени.
Качество предложений кода GitHub Copilot зависит от следующего:
- Популярность выбранного технологического стека в публичных репозиториях. Чем популярнее технология или язык, тем выше качество предложений GitHub Copilot.
- Структура кода и архитектура приложения. Чем более типично ваше решение, тем более эффективные предложения предоставляет GitHub Copilot. Особенно это заметно на старте разработки проекта.
Другие преимущества GitHub Copilot:
- Со временем качество предложений по коду возрастает. GitHub Copilot изучает и адаптируется к структуре проекта, стилю кода и типичным подходам к техническим решениям проекта.
- Положительно влияет на удовлетворенность работой разработчиков. GitHub Copilot берет на себя часть рутинных, типичных и скучных задач. Меняется соотношение разработки интересных и рутинных задач, что повышает комфорт разработчиков.
Общие выводы команды:
- Инструмент не оказал никакого влияния на качество кода — ни положительного, ни отрицательного. Мы считаем, что на данный момент он не может заменить процесс проверки кода, ручное тестирование кода, выполняемое разработчиком, запуск автотестов, тестирование безопасности и так далее.
- Эффективность зависит от компетентности разработчика в данном стеке технологий. Чем лучше навыки разработчика, тем более эффективным окажется этот инструмент.
- Ценность GitHub Copilot для изучения новых технологий весьма сомнительна.
- У команды сложилось впечатление, что предложения кода становятся лучше, если все файлы, связанные с кодом, открыты в IDE.
- Как и любой другой инструмент, GitHub Copilot требует определенных навыков. Чем больше команда тренировалась, тем больше положительных отзывов получало.
- Отзывы о приросте производительности различаются в зависимости от стека технологий, уровня компетенции специалиста и субъективных причин.
5–10% средний прирост производительности членов команды. - Команда исследований и разработок ЭЛЕКС
Кстати, в ходе проекта команда обнаружила несколько ошибок в GitHub Copilot. Например, Copilot предлагал варианты кода на основе кода из другого проекта, открытого в другом окне IDE. Он предлагал синтаксически неверный код. Copilot конфликтует с функциями некоторых плагинов (встроенных или добавленных сторонними производителями), которые также имеют функцию автодополнения кода.
Выводы
GitHub Copilot — мощный инструмент, который положительно влияет на скорость разработки и удовлетворенность работой разработчиков. Как и любой другой инструмент разработки, для его освоения требуется время.
На данный момент индивидуальная ежемесячная лицензия стоит всего 10 долларов США, а стоимость бизнес-плана — 19 долларов США в месяц. GitHub Copilot, несомненно, будет финансово выгоден для использования на проектах, особенно для специалистов среднего уровня компетенции и выше.
Команда прогнозирует, что с ростом опыта использования GitHub Copilot скорость разработки может вырасти на 5–25%, в зависимости от популярности технологии и уровня компетенции разработчика. GitHub Copilot гарантированно не замедлит разработку, поскольку разработчики постепенно приобретут опыт и понимание того, когда использовать этот инструмент выгодно, а когда нет.
В заключение отметим, что влияние ИИ на разработку программного обеспечения, примером которого являются такие инструменты, как GitHub Copilot, неоспоримо. В целом, такие инструменты, как GitHub Copilot, не могут заменить разработчика, но служат ценными инструментами для повышения комфорта и производительности разработчиков, способствуя развитию разработки программного обеспечения в мире, в котором все больше внимания уделяется искусственному интеллекту.
Откройте путь к эффективному процессу разработки программного обеспечения и успешным результатам, свяжитесь с экспертами ЭЛЕКС .
Также опубликовано здесь .