GitHub Copilot и начало массового AI-assisted development
Что означает запуск GitHub Copilot для компаний, которые нанимают разработчиков и управляют инженерными командами.
В конце июня GitHub запустил Copilot - инструмент на основе языковой модели OpenAI Codex, который работает прямо в редакторе кода и предлагает завершения и фрагменты кода в реальном времени. Технический preview доступен разработчикам на нескольких языках.
Это не первый инструмент автодополнения кода. Но масштаб и уровень возможностей - другой. Copilot умеет генерировать функции целиком по комментарию, предлагать паттерны из контекста, переводить описание задачи в рабочий код.
Разговор об "ИИ в разработке" переходит из категории гипотетического в категорию практического. Для руководителей, которые управляют инженерными командами или нанимают разработчиков, это требует другого угла зрения.
Что Copilot умеет и что не умеет
Copilot хорошо справляется с рутинными задачами: шаблонный код, типовые паттерны, преобразование данных, работа с библиотеками, которые хорошо представлены в обучающих данных. Опытные разработчики описывают его как ускорение: меньше времени на написание очевидных вещей, больше времени на архитектурные решения и сложную логику.
Copilot не понимает задачу. Он предсказывает вероятный следующий фрагмент кода на основе контекста и обучения. Это значит, что предложения могут быть синтаксически правильными и семантически неверными. Могут содержать паттерны, правильные для популярного случая, но не для вашего конкретного. Могут воспроизвести ошибку из обучающих данных.
Это не делает инструмент бесполезным. Это означает, что он работает как пара рук, а не как замена суждению.
Что это значит для найма и управления командами
Первый вопрос, который я слышу от руководителей: "Теперь нам нужно меньше разработчиков?" Я думаю, это неправильный вопрос - по крайней мере, пока.
Правильнее спросить: что меняется в требованиях к разработчикам? Если часть рутинного кода генерируется инструментом - возрастает относительная ценность разработчиков, которые умеют проверять, что сгенерированный код делает именно то, что нужно. Умеют видеть проблему в архитектуре, а не только в синтаксисе. Умеют задавать правильные вопросы.
Это смещение в сторону суждения и архитектурного мышления, а не в сторону скорости набора кода.
Для найма это означает: тесты на "напишите функцию за 20 минут" теряют часть ценности как индикатора. Вопросы о том, как разработчик проверяет корректность чужого кода и принимает архитектурные решения, - получают больший вес.
Вопросы, которые стоит решить заранее
Перед тем как разрешить использование инструментов генерации кода в команде, стоит иметь ответы на несколько вопросов.
Кто отвечает за корректность кода, если его написал инструмент? Ответ должен быть тем же, что и всегда: автор коммита. Инструмент - это черновик, ответственность - на разработчике.
Какие данные уходят в инструмент? Copilot работает через облако - фрагменты кода из редактора отправляются на внешний сервер. Для кода с чувствительной логикой или проприетарными алгоритмами это вопрос, который стоит обсудить.
Как команда договаривается о стандартах использования? Инструмент, который использует половина команды и не использует другая, создаёт неоднородность стиля и ответственности. Лучше сформировать позицию командой, а не пускать на самотёк.
Куда это движется
Copilot - это первый массовый AI-assisted development инструмент, но далеко не последний. Модели будут становиться лучше, контекстное окно - шире, а сценарии применения - разнообразнее.
Руководителям полезно принять это как устойчивый тренд, а не как разовую новость. Инженерные процессы и стандарты качества, которые сформированы сегодня с учётом этих инструментов, будут устойчивее, чем те, что реагируют на каждое новое обновление.