1. Введение в Spec-Driven Development: контекст, история и место в AI-разработке
Введение в Spec-Driven Development: контекст, история и место в AI-разработке
Представьте: команда из восьми разработчиков три недели пишет модуль авторизации. На финальном ревью выясняется, что половина реализации противоречит требованиям безопасности, которые были в документе на странице 47 — документе, который никто не дочитал до конца. Переписывают. Ещё две недели. Это не редкость — это норма в индустрии, где спецификация существует как формальность, а не как рабочий инструмент.
Теперь добавьте в эту картину AI-агента, который пишет код со скоростью тысячи строк в час. Проблема не исчезает — она масштабируется. Агент уверенно генерирует неправильное решение быстрее, чем человек успевает его прочитать.
Именно здесь возникает Spec-Driven Development — подход, при котором спецификация является не артефактом планирования, а живым операционным документом, управляющим всем циклом разработки.
Почему спецификации исторически не работали
Идея «сначала спецификация, потом код» стара как программная инженерия. Формальные методы появились в 1970-х: Z-нотация Жана-Раймона Абриаля, VDM (Vienna Development Method), позже TLA+ Лесли Лэмпорта. Эти инструменты позволяли математически доказывать корректность программ до написания единой строки кода. NASA использовала формальные методы при разработке программного обеспечения для космических шаттлов. Результат — исключительная надёжность, но и исключительная стоимость: один инженер-специалист по формальным методам мог обрабатывать несколько страниц спецификации в день.
Индустрия сделала прагматичный выбор: формальные методы слишком дороги для коммерческой разработки. Появился компромисс — UML, BPMN, пользовательские истории, acceptance criteria. Эти инструменты снизили порог входа, но потеряли формальность. Спецификация превратилась в документ на естественном языке с диаграммами — богатый смыслом для людей, но непригодный для машинной обработки.
Результат предсказуем. Исследование компании Standish Group в отчёте CHAOS Report фиксирует: около 45% функций в корпоративном ПО никогда не используются, а основная причина провалов проектов — неполные или изменяющиеся требования. Спецификации писали, но не соблюдали. Код расходился со спецификацией, и никто не замечал — до продакшна.
Что изменило появление LLM
Когда большие языковые модели стали достаточно мощными для генерации production-кода, возникла новая динамика. Разработчик, работающий с AI-ассистентом, получает код немедленно — но качество этого кода определяется качеством контекста, который он предоставил. Чем точнее описание задачи, тем точнее результат.
Это эмпирически обнаружили тысячи разработчиков независимо друг от друга: промпты становились всё более структурированными, всё более похожими на технические задания. Разработчики изобретали спецификации заново — только теперь не для людей, а для AI.
> AI coding agents are powerful, but they often feel unpredictable. Without structure, they can jump into implementation, miss requirements, or generate code you can't easily track. Spec-driven development is a practical approach that brings order to this process. > > speakerdeck.com
Антон Архипов, описывая свой подход на конференции в марте 2026 года, формулирует суть точно: агент работает не с ad-hoc промптами, а с артефактами — requirements.md, plan.md, tasks.md. Каждый шаг становится явным, проверяемым и воспроизводимым.
Параллельно в корпоративной среде начали понимать: проблема масштабирования AI-разработки — не в мощности моделей, а в отсутствии структуры, которая делает автономное выполнение надёжным. Дэвид Дэниел в своём исследовании 2026 года называет это specification layer — слоем спецификации, без которого команды получают «уверенно неправильный код в масштабе» (daviddaniel.tech).
Определение и ключевые принципы SDD
Spec-Driven Development — методология разработки программного обеспечения, в которой формализованная спецификация является единственным источником истины для поведения системы: код генерируется из спецификации или верифицируется против неё, тесты выводятся из спецификации, документация производится из спецификации.
Три ключевых свойства отличают SDD от традиционного документирования:
Самый известный пример SDD в индустрии — API-first разработка с OpenAPI. Команда пишет спецификацию эндпоинтов, схем запросов и ответов, кодов ошибок. Из этой спецификации генерируются серверные заглушки, клиентские SDK, документация и тесты. Если реализация расходится со спецификацией — CI/CD это обнаруживает. Это и есть SDD в действии.
!Эволюция спецификаций: от формальных методов 1970-х к AI-управляемому SDD
SDD и смежные методологии: место в экосистеме
Важно понять, чем SDD отличается от похожих подходов, чтобы не путать их на практике.
| Подход | Фокус | Спецификация | Роль AI | |---|---|---|---| | TDD | Тесты как спецификация поведения | Неформальная | Генерация тестов | | BDD | Сценарии на языке бизнеса (Gherkin) | Полуформальная | Интерпретация сценариев | | API-first | Контракт интерфейса | Формальная (OpenAPI) | Генерация кода из схемы | | SDD | Полный цикл от требований до кода | Формальная, живая | Управление всем циклом | | Formal Methods | Математическое доказательство | Строго формальная | Верификация |
TDD (Test-Driven Development) — ближайший родственник SDD: тест является спецификацией поведения одной функции. Но TDD не охватывает архитектурные решения, не описывает бизнес-контекст и не управляет агентом на уровне задачи. SDD включает TDD как один из инструментов верификации.
BDD (Behavior-Driven Development) добавляет язык бизнеса через Gherkin-синтаксис (Given / When / Then). SDD может использовать BDD-сценарии как часть спецификации, но идёт дальше: формализует архитектурные ограничения, зависимости между компонентами, критерии производительности.
Ключевое отличие SDD в контексте AI: спецификация проектируется с расчётом на то, что её читателем является не только человек, но и агент. Это меняет требования к структуре, детализации и формату.
Практический контекст: почему это важно сейчас
Эксперимент, описанный разработчиком Михаилом Шогиным на Хабре, демонстрирует ключевое свойство SDD — идемпотентность спецификаций. Он дал AI-агенту пустую директорию и 10 спецификаций проекта без доступа к исходному коду. Задача: воссоздать проект с нуля. Результат за 20 минут: 85,5% успешность воспроизведения, 100% структурная идентичность директорий и типов (habr.com). Спецификации оказались достаточно полными, чтобы независимо восстановить систему.
Это не академический результат — это производственный инсайт. Если спецификация позволяет воспроизвести систему, она достаточно хороша, чтобы управлять агентом при разработке. Если нет — агент будет заполнять пробелы своими предположениями, и эти предположения будут расходиться с намерениями команды.
Именно поэтому SDD становится центральной практикой в эпоху AI-assisted разработки: не потому что спецификации стали модными, а потому что без них автономные агенты производят уверенный, быстрый и неверный код. Структура — это не бюрократия. Это условие надёжности.