Spec-Driven Development (SDD)
Что такое SDD
Заголовок раздела «Что такое SDD»Spec-Driven Development (SDD) — подход, в котором спецификация служит основным рабочим ориентиром на протяжении изменения: из неё выводят план, реализацию и проверки, а при изменении требований обновляют саму спецификацию. Это помогает уменьшить разрыв между тем, что заказано, тем, что написано, и тем, что проверено.
SDD не означает, что нужно заранее описать весь продукт до мелочей. Спецификация должна быть достаточно конкретной для текущего изменения и оставаться соразмерной его риску.
Минимальная спецификация задачи
Заголовок раздела «Минимальная спецификация задачи»Для небольшой функции достаточно зафиксировать:
- проблему и затронутых пользователей;
- ожидаемое поведение и сценарии отказа;
- ограничения, зависимости и то, что не входит в задачу;
- критерии приемки, которые можно проверить;
- открытые вопросы и допущения.
Для AI-агента такой документ становится общей опорой: агент может предложить план, реализацию и тесты, а человек сверяет каждый результат с требованиями. Неясность лучше оформить как вопрос, чем превращать в молчаливое допущение.
Рабочий цикл
Заголовок раздела «Рабочий цикл»- Согласовать границы и критерии задачи.
- Проверить спецификацию на противоречия и пробелы.
- Получить план реализации и проверить его до изменений кода.
- Реализовывать небольшими проверяемыми частями.
- Сопоставить код и тесты с критериями приемки.
- Обновить спецификацию, если решение или требование изменилось.
SDD хорошо сочетается с TDD: спецификация задаёт требуемое поведение, а тесты фиксируют отдельные проверяемые примеры. Общий контекст процесса описан в статье SDLC и разработка с AI.
Типичные ошибки
Заголовок раздела «Типичные ошибки»- Спецификация превращается в длинный документ, который никто не поддерживает.
- План агента принимают за доказательство правильности требований.
- Критерии сформулированы как детали реализации вместо наблюдаемого поведения.
- Код и тесты меняются, а актуальная спецификация остаётся прежней.