Rethinking Software Engineering in the Foundation Model Era: From Task-Driven AI Copilots to Goal-Driven AI Pair Programmers (Рубрика #AI)
Прочитал интересный и короткий
whitepaper про изменения в разработке софта, готовясь к выступлению "
AI в SDLC: от ассистентов к агентам". Если кратко, то это статья далекого 2024 года (а для AI прошлогодняя статья - это реально далеко), в которой авторы A. E. Hassan, G.A. Oliva, D. Lin, B. Chen, Z. M. Jiang предлагают уйти от task‑driven copilot‑инструментов к goal‑driven AI‑напарнику, который понимает цели разработки, помогает с архитектурой, кодом и проверкой результата.
Если присмотреться, то ключевые моменты такие
-
Goal‑driven AI pair programmer, где ИИ не автодополнение, а партнёр по достижению цели (фичи, баг-фикса, миграции)
- Инженерный процесс
EDD (evaluation‑driven delivery), который аналогичен TDD (test-driven development), но фокус на постоянной проверке прогресса к цели на основе evals
- В основе
мультиагентная схема из четырех агентов:
--
Агент целей - помогает выяснить цели инженера, общаясь с ним и собирая информацию (работает как аналитик)
--
Агент архитектуры - умеет дизайнить под выясненные требования, знает архитектурные паттерны и может использовать ATAM (architecture tradeoff analysis method) или его аналоги
--
Агент кода - рабочая лошадка, что умеет писать хороший код (и не только добавлять, но и рефакторить и удалять мертвый код)
--
Goal delivery агент - агент, что отвечает за интеграцию работы всех остальных агентов для доведения проекта до успешного завершения. Он отслеживает выполнение конечных требований: превращение требований в тесты, актуальность тестов при изменении требований, и финальное прохождение всех тестов. Этот агент, помимо прочего, накопливает историю выполненных целей и прогресса, что затем может использоваться для наставничества: по мере работы он отмечает, какие навыки приобретает человек, где делает ошибки (связано с задачей обучения разработчика, см. Challenge 4). (Проще говоря, агент контролирует, чтобы всё задуманное действительно реализовано и проверено тестами, и фиксирует уроки для будущего).
Для успешной работы такой системы есть следующие вызовы
-Выравнивание целей человека и ИИ (минимум уточняющих вопросов, максимум понимания контекста) - тут мы видим пресловутый вопрос alignment
- Общение на естественном языке вместо “промпт‑инжиниринга” (лучшие промпты машины пишут сами себе)
- Доступные и умные code‑LLM (качество понимания проекта при умеренных ресурсах)
- Роль ИИ‑наставника: адаптивное обучение разработчика “в паре” (AI не только исполнитель, но и ментор для инженера)
В своем исследовании авторы опираются на следующие факты
- Накопленный опыт использования GitHub Copilot и аналогов в индустрии, включая выявленные проблемы взаимодействия человека с AI
- Предыдущие попытки автоматизировать разработку с помощью мультиагентных систем (ChatDev, MetaGPT, Devin и др.)
- Проверенные временем методологии разработки (TDD, парное программирование)
- Фундаментальные теории из образования (эффект наставничества по Блуму) и психологии (Theory of Mind) для обоснования социально-обучающего аспекта ИИ
Статья была опубликована как препринт на arXiv в апреле 2024 года и сразу привлекла внимание в сообществе. Google Scholar индексирует эту работу; уже в 2024–2025 годах появились ссылки на нее в ряде новых исследований. Стоит отметить, что сами авторы продолжили развивать эту тему: в октябре 2024 они выпустили расширенный препринт “
Towards AI-Native Software Engineering (SE 3.0): A Vision and a Challenge Roadmap”, фактически развивающий идеи этой статьи. В нем они ввели терминологию “Software Engineering 3.0” и более подробно описали план исследований на ближайшие годы.
Если вам нравится эта тема и интересно общее состояние дел о том, как AI влияет на инженерную культуру, то предлагаю пройти
опрос от Т-Банка на эту тему. О чем этот опрос и почему его результаты будут интересными я уже
рассказывал раньше.
#AI #Software #Architecture #Agents #Leadership #ML #SystemDesign