Перейти к содержимому

Spec-Driven Development (SDD)

Spec-Driven Development (SDD) — подход, в котором спецификация служит основным рабочим ориентиром на протяжении изменения: из неё выводят план, реализацию и проверки, а при изменении требований обновляют саму спецификацию. Это помогает уменьшить разрыв между тем, что заказано, тем, что написано, и тем, что проверено.

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

Для небольшой функции достаточно зафиксировать:

  • проблему и затронутых пользователей;
  • ожидаемое поведение и сценарии отказа;
  • ограничения, зависимости и то, что не входит в задачу;
  • критерии приемки, которые можно проверить;
  • открытые вопросы и допущения.

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

  1. Согласовать границы и критерии задачи.
  2. Проверить спецификацию на противоречия и пробелы.
  3. Получить план реализации и проверить его до изменений кода.
  4. Реализовывать небольшими проверяемыми частями.
  5. Сопоставить код и тесты с критериями приемки.
  6. Обновить спецификацию, если решение или требование изменилось.

SDD хорошо сочетается с TDD: спецификация задаёт требуемое поведение, а тесты фиксируют отдельные проверяемые примеры. Общий контекст процесса описан в статье SDLC и разработка с AI.

  • Спецификация превращается в длинный документ, который никто не поддерживает.
  • План агента принимают за доказательство правильности требований.
  • Критерии сформулированы как детали реализации вместо наблюдаемого поведения.
  • Код и тесты меняются, а актуальная спецификация остаётся прежней.