Vibe coding или spec-driven development: как выбрать подход для AI-разработки
Независимо от того, конкурируют ли эти подходы или дополняют друг друга, оба AI-подхода можно разумно использовать при создании устойчивых приложений.
Vibe coding и spec-driven development (SDD) — два новых подхода, при которых команды devops используют AI для создания всего кода приложения. Спор о том, какой подход выбирать для разных сценариев, продолжается, а платформ с разными возможностями и пользовательским опытом становится все больше. Одни эксперты сомневаются, что AI способен создавать надежные и поддерживаемые приложения, другие считают, что со временем AI может взять на себя сквозной процесс разработки ПО.
Но одна вещь для IT-организаций очевидна: спрос на приложения, интеграции и аналитику растет быстрее, чем число agile-команд и инженеров devops. Если добавить к этому приоритеты бизнеса — устранение уязвимостей в безопасности приложений, модернизацию приложений для облака и работу с technical debt, — возникают сложные решения о том, что делать в первую очередь и где повышать эффективность в жизненном цикле разработки ПО.
Еще до появления AI-генераторов кода IT-лидеры искали способы повысить продуктивность разработчиков. Платформы вроде 4GL, low-code/no-code и настраиваемого SaaS помогали IT выпускать больше приложений, снижать требования к уровню навыков разработчиков при выпуске улучшений и повышать качество ПО. Эти инструменты позволяли создавать целые классы приложений, аналитики и интеграций, которые было бы сложно или дорого реализовать на Java, .NET и других языках программирования.
«Программное обеспечение долгое время рассматривалось как инфраструктура: оно строилось надолго, было трудноизменяемым и дорогим в замене, — говорит Chris Willis, директор по дизайну и футуролог Domo. — Эта модель уступает место будущему, в котором будет больше приложений — меньших по размеру, быстрее создаваемых и предназначенных для решения конкретной задачи, а затем исчезающих с пути».
Code gen, vibe или писать спецификацию?
Модели GenAI — следующий ускоритель разработки ПО. Первыми инструментами были copilots для помощи в программировании, затем появились LLM для генерации фрагментов кода. Я использовал инструменты генерации кода, чтобы писать регулярные выражения, извлекать информацию со страниц веб-сайтов и классифицировать данные в рамках миграции приложения. Они писали код, на который у меня уже не хватало времени или навыков, но потом все равно требовалась значительная работа, чтобы исправить дефекты и проблемы интеграции.
Сейчас мы находимся на втором этапе развития AI-разработки ПО: среди платформ — Amazon Q Developer, Appian AI-Assisted Development, Bolt, Claude Code, Cline, Cursor, Gemini Code Assist, GitHub Copilot, Kiro, Lovable, OpenAI Codex, Pave и Replit.
Все эти платформы генерируют код, но предлагают разный опыт разработки и используются для решения задач разного масштаба. Их можно разделить на три категории:
- Инструменты генерации кода улучшают опыт разработчика, пишут код по запросу инженера и часто встроены в существующие средства разработки.
- Vibe coding генерирует прототипы, функции и готовые к продакшену приложения через итеративный prompt-based опыт.
- Spec-driven development (SDD) добавляет промежуточный этап перед генерацией приложения: команда разработки формулирует требования к продукту и поэтапно создает другие проектные документы через prompts, а затем код генерируется на их основе.
Если вы разрабатываете новый API, рефакторите существующий код, улучшаете workflow или создаете новую функцию, то code generator может оказаться единственным, что вам нужно. Работа разработчика смещается от написания кода к формулированию того, какой код нужно написать, а также к описанию требований, платформы разработки и других нефункциональных критериев приемки.
Но что, если вам нужно создать новое приложение, интеграцию, data pipeline или надежный веб-сервис? Для этой статьи я хотел выйти за рамки генерации кода и рассмотреть, как команды разработки могут использовать платформы vibe coding и spec-driven development для создания и поддержки приложений.
Что хорошо делает vibe coding
Опыт vibe coding позволяет разработчикам описать, что они хотят построить, и наблюдать, как AI генерирует код.
Платформы vibe coding, такие как Bolt, Lovable и Replit, могут начать разработку с одного prompt, но лучше раскрывают свои возможности, когда разработчик переходит в режим планирования. В этом режиме платформа vibe coding может пересказать понятые требования, задать уточняющие вопросы и предложить варианты, если требования не были явно сформулированы.
«Вибрация» этих платформ в том, что они помогают разработчикам быстро пройти путь от идеи до работающего приложения. Затем разработчики могут снова задавать платформе prompts, чтобы уточнять требования и запрашивать изменения. И это не только для разработчиков; владельцы бизнеса, нетехнические founders стартапов и другие citizen developers тоже используют vibe coding, хотя им нужно освоить лучшие практики безопасности.
«Vibe coding позволяет подразделениям внутри организации создавать minimal viable products или небольшие инструменты, которые значительно повышают их продуктивность, — говорит Duncan Ng, вице-президент по solutions engineering в Vultr. — Примеры варьируются от proof of concept, которые вы хотите показать потенциальным клиентам, чтобы получить обратную связь о product-market fit, до трудоемких процессов, которые можно упростить для повышения эффективности и скорости».
Подходит ли vibe coding для продакшена?
Proof of concept (POC) или minimal viable product может оказаться всем, что нужно разработчику, но некоторые сомневаются, готовы ли приложения, созданные в vibe coding, к продакшену. Rajesh Padmakumaran, вице-президент и руководитель направления AI practice в Genpact, говорит: «Vibe coding ускоряет POC, быстрое экспериментирование и исследование идей, но ему не хватает детерминированного поведения, поэтому он фундаментально непригоден для систем, которые нужно поддерживать, масштабировать или сопровождать в долгосрочной перспективе».
Негативное отношение направлено не только против vibe coding, но и против AI-generated code в целом. Платформы low-code и no-code в первые годы тоже сталкивались с похожими опасениями вокруг безопасности, архитектуры, производительности и операционной устойчивости. Успешные вендоры таких платформ завоевывали доверие прозрачностью, а IT-отделы учились, какая инфраструктурная обвязка, процессы и документация нужны, чтобы масштабировать low- и no-code-разработку. Похожий переход, вероятно, ждет и платформы vibe coding.
«Vibe coding ускоряет эксперименты, но без четких архитектурных ограничений, observability и performance guardrails он вносит вариативность, которая ломает downstream-системы в devops и IT operations, — говорит Piyush Patel, chief ecosystem officer в Algolia. — CIO должны рассматривать vibe coding как front-end accelerator, при этом опираясь на четко определенные спецификации, которые выступают как prompt layer и для людей, и для AI».
Начинайте с требований
Другой подход к использованию AI для разработки приложений — spec-driven development. Вместо того чтобы сразу переходить к prompts для управления разработкой приложения, платформы SDD смещают процесс влево, помогая инженерам документировать требования. На основе этих требований платформы SDD затем создают приложение.
«Spec-driven development — это в первую очередь структура и ответственность, — сказал David Yanacek, senior principal engineer of agentic AI в AWS. — Вы тратите время на обсуждение того, чего хотите и что считается хорошим результатом, а система отвечает требованиями, техническим дизайном и разбиением на задачи разработки».
Yanacek — советник команды разработки AWS Kiro. Как и традиционные проекты без AI, которые начинаются с дизайна, документов требований к продукту и agile user stories, SDD подчеркивает необходимость сотрудничества между бизнесом и технологическими стейкхолдерами до того, как команда перейдет к коду. Два успешных примера — AI-агент для drug discovery, выведенный в production за три недели, и ускоренные миграции в cloud у технологической компании.
«Создание этих документов помогает AI сосредоточиться на качественном результате, так что я могу вернуться и проверить, сделал ли он то, о чем я просил, — добавляет Yanacek. — Например, документ дизайна подробно описывает поведение системы, включая фрагменты кода и схему базы данных. Если вы полностью задаете, как должна вести себя система или функция, агент может сгенерировать больше и лучше тестов для проверки результата».
SDD набирает популярность среди devops-команд, которые понимают важность совместной работы со стейкхолдерами над функциональными и non-functional requirements.
«Spec-driven development — это естественное созревание и эволюция vibe coding, при которой команды полностью используют context window своего агента, — говорит Austin Spires, старший директор по маркетингу для разработчиков в Fastly. — Spec-driven vibe coding заставляет инженеров и команды иметь более ясное видение, более жесткие требования и более сильный текст, чем в первых итерациях vibe coding».
Nic Benders, chief technical strategist в New Relic, добавляет: «Production software не начинается с кодирования. Оно начинается с того, что вы думаете о проблеме, определяете, чего хотите, и обсуждаете это со своей командой. Spec-driven development просто дает этому мышлению и письму название, но с AI-инструментом в роли вашей команды».
Конкурируют или дополняют друг друга?
SDD и vibe coding — конкурирующие подходы? Поддержит ли enterprise две разные методологии? Или SDD — это эволюция опыта vibe coding? «Vibe coding и spec-driven development не конкурируют; они дополняют друг друга, и у каждого есть своя роль в жизненном цикле разработки, — говорит Ayaz Ahmed Khan, senior director of engineering в Cloudways by DigitalOcean. — Используйте vibe coding для исследования и прототипирования, а spec-driven development с AI — чтобы укреплять и выпускать. Те команды, которые добиваются успеха с GenAI, осознанно направляют его постоянной обратной связью, чтобы создавать production-ready software».
Другие считают, что vibe coding и SDD и дальше будут обслуживать разные бизнес-потребности и стратегии внедрения. «Vibe coding, особенно с мощными agentic systems, дает исключительную скорость для пользовательских прототипов, где зона поражения ошибки невелика, например для внутренних инструментов или первых POC, — говорит Wiktor Walc, CTO в Tiugo Technologies. — Но когда вы имеете дело с крупными production-средами, распределенным состоянием или transactional integrity, начинают работать spec-driven contracts между сервисами — не потому, что современные модели не способны рассуждать о сложных системах, а потому, что пока ни один agentic workflow не дает той детерминированной гарантии корректности, которую требует критичная production-инфраструктура».
Фокус на устойчивые релизы
Планирование и кодирование — только два шага в создании и поддержке приложений. Есть и другие возможности использовать AI в жизненном цикле разработки ПО для создания AI agents, включая встроенную observability, интеграцию серверов Model Context Protocol и надежное тестирование AI agent.
IT-отделы мирового уровня должны думать о том, как vibe coding и SDD создают бизнес-ценность, инновации и надежность, а не только улучшают собственно процесс написания кода при выпуске приложений. В какой мере AI создает решения, которые соответствуют бизнес-требованиям и обеспечивают исключительный пользовательский опыт?
«И vibe coding, и SDD предполагают, что сложная работа по согласованию требований между бизнесом и IT уже сделана, и это особенно верно, когда предприятия пытаются переосмыслить и переработать многие свои ключевые workflows с помощью AI, — говорит Don Schuerman, CTO и вице-президент по маркетингу и технологической стратегии в Pegasystems. — Настоящая возможность AI состоит не только в том, чтобы ускорить написание кода, но и в том, чтобы предоставить совместное пространство, где бизнес и IT-команды могут вместе создавать дизайн и требования для действительно переосмысленного приложения».
Многое из сегодняшнего ажиотажа связано с тем, как AI ускоряет разработку приложений и повышает продуктивность разработчиков. Но как быть с процессом deployment и инфраструктурой, на которой будут работать AI-созданные приложения?
Одна из новых тенденций — платформы разработки AI-приложений, которые поставляются вместе с cloud-инфраструктурой для развертывания и сервисами автоматизации бизнес-процессов. AI-Assisted Development от Appian поддерживает spec-driven development через бизнес-интерфейс Appian Composer и инструменты разработки вроде Claude, Codex и Kiro. Pave — это платформа vibe coding, которая разворачивается на той же защищенной инфраструктуре, что и Quickbase, и использует ее возможности governance. Эти два примера показывают, как платформы low-code-разработки и управления процессами эволюционируют, чтобы принимать AI-возможности.
Эксперты напоминают IT-лидерам: независимо от того, пишете ли вы код, используете vibe coding или внедряете SDD, акцент должен быть на создании устойчивых приложений.
«Нужно фокусироваться на инженерной дисциплине и проектировании системы, а не сталкивать vibe coding и spec-driven development друг с другом, — говорит Sergei Kondratov, директор по разработке в Saritasa. — Успех любой AI-assisted development сегодня зависит от того, насколько хорошо задачи разбиты и контролируются. Если это сделано плохо, оба подхода проваливаются».
Другие эксперты указывают, что качество AI-generated code и простота сопровождения AI-generated applications остаются открытыми вопросами.
«Spec-driven development ориентирует команды на правильные бизнес- и технические результаты, тогда как AI coding увеличивает скорость, — говорит Christian Stano, field CTO в Anyscale. — Важно место, где production software реально выходит в релиз, и там фокус должен быть на устранении настоящего узкого места: успевают ли review-процессы, инфраструктура и guardrails за скоростью. Ключевой показатель — не только скорость, но и то, ускоряются ли команды без потери надежности и без накопления скрытого technical debt».
Hannes Hapke, директор 575 Lab в Dataiku, добавляет: «Хотя vibe coding сокращает время до первого демо, существуют серьезные опасения по поводу debt, безопасности и auditability. Spec-driven сохраняет дисциплину, но добавляет накладные расходы, и главная возможность — объединить оба подхода. CIO нужно измерять эффект по времени до релиза, частоте багов, частоте рефакторинга и удовлетворенности разработчиков, а не только по скорости».
Нет сомнений, что vibe coding и SDD будут развиваться, и вполне вероятно, что эти две практики сольются в обобщенную среду AI coding. Один из примеров — GitHub Spec Kit, который работает с GitHub Copilot, Claude Code и Gemini CLI и рассматривает написание спецификации как обязательное условие для vibe coding и генерации кода.
По мере того как растут возможности AI в разработке, IT придется думать о том, как эволюционировать весь end-to-end процесс разработки и убедиться, что новые возможности дают не только прирост скорости и продуктивности.
Материал — перевод статьи с английского.
Оригинал: Vibe coding or spec-driven development? How to choose