Vibe coding или spec-driven development: как AI меняет разработку приложений — ИИ для бизнеса

Vibe coding или spec-driven development: как AI меняет разработку приложений

Прослушать статью

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

Vibe coding и spec-driven development (SDD) — это два новых подхода, в которых команды devops используют AI для разработки всего кода приложения. Идут споры о том, какой подход лучше подходит для разных сценариев, а также о том, какие платформы стоит рассматривать, учитывая различия в возможностях и опыте работы. Одни эксперты сомневаются, что AI способен создавать надежные и поддерживаемые приложения, другие же считают, что со временем AI сможет вести весь процесс разработки от начала до конца.

Но одна бесспорная проблема, с которой сталкиваются ИТ-организации, заключается в том, что спрос на приложения, интеграции и аналитику выше, чем предложение со стороны agile-команд и devops-инженеров. Если усугубить этот дисбаланс бизнес-задачами по устранению уязвимостей безопасности приложений, модернизации приложений для cloud и работе с technical debt, приходится делать жесткий выбор: что ставить в приоритет и где повышать эффективность в жизненном цикле разработки ПО.

Еще до появления AI-генераторов кода ИТ-лидеры искали способы повысить продуктивность разработчиков. Платформы вроде 4GL, low-code/no-code и настраиваемого SaaS помогали ИТ-отделам выпускать больше приложений, снижать требования к квалификации разработчиков для внедрения улучшений и повышать качество ПО. Эти инструменты позволяли ИТ создавать целые классы приложений, аналитики и интеграций, которые было бы сложно или дорого реализовать на Java, .NET и других языках программирования.

«К ПО долго относились как к инфраструктуре: его строили надолго, трудно меняли и дорого заменяли, — говорит Chris Willis, chief design officer и futurist в 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’ов.
  • Spec-driven development (SDD) создает промежуточный этап перед генерацией приложения: команда разработки может итеративно через prompt’ы зафиксировать требования к продукту и составить другие проектные документы, а затем сгенерировать код на их основе.

Если вы разрабатываете новый API, рефакторите существующий код, улучшаете workflow или создаете новую функцию, то генератора кода может быть вполне достаточно. Работа разработчика смещается от написания кода к формулированию того, какой код нужно написать, а также требований, платформы разработки и других нефункциональных критериев приемки.

Но что, если вам нужно создать новое приложение, интеграцию, data pipeline или надежный web service? В этой статье я хотел выйти за рамки генерации кода и посмотреть, как команды разработки могут использовать платформы vibe coding и spec-driven development для создания и поддержки приложений.

Что хорошо умеет vibe coding

Опыт vibe coding позволяет разработчику сформулировать, что он хочет создать, и наблюдать, как AI генерирует код.

Платформы vibe coding вроде Bolt, Lovable и Replit могут начать разработку с одного prompt’а, но лучше всего проявляют себя, когда разработчик переходит в режим планирования. В этом режиме платформа vibe coding может пересказать понятые требования, задать уточняющие вопросы и предложить варианты, если требования не были явно указаны.

Смысл этих платформ в том, что они помогают разработчикам быстро пройти путь от идеи до работающего приложения. Затем разработчик может просить платформу уточнять требования и вносить изменения. И это не только для разработчиков: бизнес-владельцы, нетехнические основатели стартапов и другие citizen developers тоже занимаются vibe coding, хотя им нужно освоить лучшие практики безопасности.

«Vibe coding позволяет подразделениям внутри организации создавать minimal viable products или небольшие инструменты, которые значительно повышают их продуктивность, — говорит Duncan Ng, вице-президент по solutions engineering в Vultr. — Примеры варьируются от proof of concept, который вы хотите показать потенциальным клиентам, чтобы получить обратную связь о product market fit, до трудоемких процессов, которые можно оптимизировать для повышения эффективности и скорости».

Являются ли vibe-наработки жизнеспособным путем к продакшену?

Для разработки может хватить proof of concept (POC) или minimal viable product, но некоторые сомневаются, готовы ли приложения, созданные через vibe coding, к продакшену. Rajesh Padmakumaran, вице-президент и руководитель AI practice в Genpact, говорит: «Vibe coding ускоряет POC, быстрое экспериментирование и проработку идей, но ему не хватает детерминированного поведения, поэтому он фундаментально непригоден для систем, которые нужно долго поддерживать, масштабировать или сопровождать».

Негативное отношение направлено не только против vibe coding, но и против AI-генерации кода в целом. Платформы low-code и no-code сталкивались с похожими опасениями на ранних этапах — по поводу безопасности, архитектуры, производительности и эксплуатационной устойчивости. Успешные поставщики платформ завоевывали доверие за счет прозрачности, а ИТ-подразделения учились, какие вспомогательные слои, процессы и документация нужны для масштабирования low-code и no-code-разработки. Похожий переход, вероятно, ждет и платформы vibe coding.

«Vibe coding ускоряет эксперименты, но без четких архитектурных ограничений, observability и ограничителей производительности он вносит вариативность, которая ломает downstream-системы в devops и ИТ-операциях, — говорит Piyush Patel, chief ecosystem officer в Algolia. — CIO должны рассматривать vibe coding как ускоритель front-end, но при этом опираться на четко определенные спецификации, которые выступают в роли “prompt layer” и для людей, и для AI».

Начинайте с требований

Еще один подход к использованию AI для разработки приложений — spec-driven development. Вместо того чтобы сразу переходить к prompt’ам, направляющим AI в разработке приложения, платформы SDD смещают процесс влево, помогая инженерам документировать требования. На основе этих требований платформы SDD затем создают приложение.

«Spec-driven development — это прежде всего структура и ответственность, — сказал David Yanacek, senior principal engineer по agentic AI в AWS. — Вы тратите время на обсуждение того, что именно вам нужно и как выглядит хороший результат, а система отвечает требованиями, техническим дизайном и разбиением задач разработки».

Yanacek консультирует команду разработки AWS Kiro. Как и в не-AI-проектах, где все начинается с дизайнов, документов с требованиями к продукту и agile user stories, SDD подчеркивает необходимость сотрудничества между бизнесом и технологическими стейкхолдерами до того, как команда перейдет к коду. Два успешных сценария — AI-агент для drug discovery, выведенный в продакшен за три недели, и ускоренная cloud migration технологической компании.

«Создание этих документов удерживает AI в рамках качественного результата, так что я могу вернуться и проверить, выполнил ли он то, что я просил, — добавляет Yanacek. — Например, дизайн-документ подробно описывает поведение системы, включая фрагменты кода и схему базы данных. Когда вы полностью специфицируете, как должна вести себя система или функция, агент может сгенерировать больше и более качественных тестов, чтобы проверить результат».

SDD набирает популярность среди devops-команд, которые понимают важность совместной работы со стейкхолдерами как над функциональными, так и над нефункциональными требованиями.

«Spec-driven development — это естественное созревание и развитие vibe coding, где команды полностью используют контекстное окно своего агента, — говорит Austin Spires, старший директор по developer marketing в Fastly. — Spec-driven vibe coding заставляет инженеров и команды иметь более четкое видение, более жесткие требования и более сильный текст, чем в первых версиях vibe coding».

Nic Benders, chief technical strategist в New Relic, добавляет: «Продакшен-программное обеспечение начинается не с кодирования. Оно начинается с осмысления проблемы, понимания того, что вы хотите, и передачи этого своей команде. Spec-driven development просто дает название этому процессу мышления и письма, но с AI-инструментом в роли вашей команды».

Конкурирующие или дополняющие?

SDD и vibe coding — это конкурирующие подходы? Предприятие станет поддерживать две разные методологии? Или SDD — это эволюция опыта vibe coding? «Vibe coding и spec-driven development не конкурируют; они дополняют друг друга, и у каждого своя роль в жизненном цикле разработки, — говорит Ayaz Ahmed Khan, старший директор по engineering в Cloudways by DigitalOcean. — Используйте vibe coding для исследования и прототипирования, а spec-driven development с AI — чтобы закалить решение и выпустить его. Команды, которым удается добиться успеха с genAI, — это те, кто осознанно направляет его постоянной обратной связью, чтобы создавать готовое к продакшену ПО».

Другие считают, что vibe coding и SDD и дальше будут обслуживать разные бизнес-потребности и стратегии внедрения. «Vibe coding, особенно с сильными agentic systems, дает выдающуюся скорость для пользовательских прототипов, где зона поражения дефекта мала, например для внутренних инструментов или первых POC, — говорит Wiktor Walc, CTO в Tiugo Technologies. — Но как только вы работаете с большими продакшен-средами, распределенным состоянием или transactional integrity, вы начинаете выигрывать от spec-driven contracts между сервисами — не потому, что сегодняшние модели не умеют рассуждать о сложных системах, а потому, что пока ни один agentic workflow не дает таких гарантий детерминированной корректности, каких требует production-critical инфраструктура».

Фокус на устойчивые релизы

Планирование и кодирование — это только два шага в создании и поддержке приложений. Есть и другие возможности использовать AI в software development life cycle для разработки AI agents, включая встроенную observability, интеграцию серверов Model Context Protocol и надежное тестирование AI agents.

ИТ-подразделения мирового уровня должны думать о том, как vibe coding и SDD создают бизнес-ценность, инновации и надежность, а не только улучшают сам процесс написания кода при поставке приложений. В какой мере AI создает решения, которые соответствуют бизнес-требованиям и обеспечивают выдающийся пользовательский опыт?

«И vibe coding, и SDD исходят из того, что сложная работа по согласованию бизнес- и ИТ-стейкхолдеров по правильным требованиям уже выполнена, и это особенно важно сейчас, когда предприятия стремятся переосмыслить и заново спроектировать многие свои ключевые workflow с использованием AI, — говорит Don Schuerman, CTO и вице-президент по marketing and technology strategy в Pegasystems. — Реальная возможность AI заключается не только в том, чтобы ускорить написание кода, но и в том, чтобы дать бизнесу и ИТ совместное пространство, где они вместе могут создавать дизайн и требования для по-настоящему переосмысленного приложения».

Сегодняшний ажиотаж во многом связан с тем, как AI ускоряет разработку приложений и продуктивность разработчиков. Но что насчет процесса деплоя и инфраструктуры, на которой будут работать AI-разработанные приложения?

Один из новых трендов — платформы разработки AI-приложений, которые поставляются вместе с облачной инфраструктурой деплоя и сервисами автоматизации бизнес-процессов. AI-Assisted Development от Appian поддерживает spec-driven development через свой бизнес-интерфейс Appian Composer и инструменты разработки, такие как Claude, Codex и Kiro. Pave — это платформа vibe coding, которая разворачивается на той же защищенной инфраструктуре, что и Quickbase, и использует ее возможности governance. Эти два примера показывают, как low-code-разработка и платформы управления процессами эволюционируют, чтобы принимать AI-возможности.

Эксперты напоминают ИТ-лидерам: независимо от того, кодируете ли вы, делаете vibe coding или внедряете SDD, акцент должен быть на выпуске устойчивых приложений.

«Нужно делать упор на инженерную дисциплину и системный дизайн, а не сталкивать vibe coding и spec-driven development друг с другом, — говорит Sergei Kondratov, директор по разработке в Saritasa. — Успех любой AI-assisted development сегодня зависит от того, насколько хорошо задачи разбиты и контролируются. Если это сделано плохо, оба подхода провалятся».

Другие эксперты отмечают, что качество AI-сгенерированного кода и простота поддержки приложений, созданных AI, — все еще открытые вопросы.

«Spec-driven development направляет команды к правильным бизнес- и техническим результатам, а AI-кодирование повышает скорость, — говорит Christian Stano, field CTO в Anyscale. — Важно место, где production software действительно выходит в релиз: именно там нужно решать настоящий узкий участок — успевают ли процессы ревью, инфраструктура и guardrails за темпом. Ключевая метрика — не только скорость, а то, ускоряются ли команды без потери надежности и без накопления скрытого technical debt».

Hannes Hapke, директор 575 Lab в Dataiku, добавляет: «Хотя vibe coding сокращает время до первого демо, остаются серьезные опасения по поводу debt, безопасности и auditability. Spec-driven сохраняет дисциплину, но добавляет накладные расходы, и ключевая возможность — объединить оба подхода. CIO нужно измерять эффект по времени до релиза, числу багов, частоте рефакторинга и удовлетворенности разработчиков, а не только по скорости».

Несомненно, vibe coding и SDD будут развиваться, и есть разумная вероятность, что эти две практики сольются в более общий AI coding environment. Один из примеров — GitHub Spec Kit, который работает с GitHub Copilot, Claude Code и Gemini CLI и считает написание спецификации обязательным шагом перед vibe coding и генерацией кода.

По мере того как возможности AI в разработке будут улучшаться, ИТ придется переосмысливать end-to-end процесс разработки и следить за тем, чтобы новые возможности приносили не только рост скорости и продуктивности.


Материал — перевод статьи с английского.

Оригинал: Vibe coding or spec-driven development?