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

Так называемое парное программирование, как правило, приводит к существенному повышению качества получаемого программного обеспечения. В новом исследовании Саарского университета показано, что при таком подходе разработчики вдохновляют друг друга, стараются избегать проблемных решений и делятся друг с другом накопленным опытом. В ходе проведенного эксперимента 19 студентов, имеющих опыт программирования, были разделены на пары: шестеро работали с партнером-человеком, а семеро – с ИИ-ассистентом, в качестве которого выступал популярный инструмент Microsoft GitHub Copilot. Его применение позволяет ускорить разработку и быстро генерировать большие объемы программного кода, но чревато появлением незаметных на первый взгляд ошибок, последствия которых проявляются позже. Команда исследователей пыталась понять, какие аспекты взаимодействия между людьми способствуют повышению качества программирование и можно ли их использовать в паре с искусственным интеллектом.

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

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

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

Результаты исследования будут представлены на 40-й международной конференции IEEE/ACM по автоматизации разработки программного обеспечения, которая пройдет в Сеуле.