Skip to content

Agile SRS: облегчённая спецификация требований для итеративных команд

Agile SRS адаптирует традиционную Software Requirements Specification под итеративную разработку. Вместо монолитного документа, написанного до начала разработки, это живой модульный артефакт, который эволюционирует с каждым спринтом. Интеллектуальная строгость сохраняется — функциональные требования, нефункциональные цели, контракты интерфейсов — но формат легче, ритм обновления быстрее, а документ живёт в репозитории рядом с кодом.

Key insight

Agile SRS — это не «менее строгий» вариант традиционного SRD. Он покрывает ту же территорию — функциональные, нефункциональные, данные, интерфейсы — но организован по фичам или модулям и обновляется непрерывно, а не рассматривается как завершённый артефакт.

Когда использовать Agile SRS

Используйте Agile SRS, когда:

  • Команда работает спринтами или в режиме непрерывной поставки и требования должны эволюционировать вместе с продуктом
  • Продукт строится итеративно — не все требования известны заранее
  • Нужна достаточная структура для синхронизации нескольких инженеров без накладных расходов полного IEEE 830 документа
  • Документ должен быть читаем AI-агентами рядом с кодовой базой

Традиционный SRD лучше, когда:

  • Регуляторный комплаенс требует формального, версионированного, подписанного документа
  • Проект — контракт с фиксированным скоупом с внешним подрядчиком
  • Несколько организаций должны согласовать стабильную спецификацию до начала работ

Структура Agile SRS

Agile SRS организован по фичам или модулям, а не по типу секции. Каждый модуль фичи содержит собственные требования, критерии приёмки и технические спецификации.

Документ уровня проекта

Один обзорный файл покрывает сквозные аспекты:

docs/srs/
├── overview.md          ← уровень проекта: скоуп, NFR, архитектура
├── auth/
│   ├── requirements.md  ← функциональные требования для авторизации
│   └── api.md           ← контракт API для эндпоинтов авторизации
├── payments/
│   ├── requirements.md
│   └── api.md
└── notifications/
    ├── requirements.md
    └── api.md

Обзорный файл

Обзорный файл покрывает:

  1. Скоуп продукта — один абзац, что ПО делает и чего не делает
  2. Классы пользователей — роли и их уровни доступа
  3. Нефункциональные требования — цели производительности, безопасности, доступности (глобальные)
  4. Обзор архитектуры — высокоуровневая диаграмма, технологический стек, модель развёртывания
  5. Ограничения — регуляторные, бюджетные, временны́е, технологические
  6. Открытые вопросы — пункты с пометкой TBD, ответственные и целевые даты

Модуль фичи

Каждый модуль фичи покрывает:

  1. Контекст — какую пользовательскую проблему решает, ссылка на секцию PRD или user story
  2. Функциональные требования — с ID, «shall/should», привязанные к критериям приёмки
  3. Модель данных — сущности и поля для этой фичи
  4. Контракт API — эндпоинты, схемы запросов/ответов, коды ошибок (при наличии)
  5. Граничные случаи и обработка ошибок — что происходит, когда что-то идёт не так

Agile SRS vs user stories

Agile SRS не заменяет user stories. Они служат разным целям:

АспектUser StoryМодуль Agile SRS
АудиторияПродуктовая команда, стейкхолдерыИнженеры, QA
ГранулярностьОдно поведение или возможностьПолная спецификация фичи
Срок жизниОдин спринтЭволюционирует через спринты
СодержаниеКак [роль], я хочу [цель], чтобы [причина]Функциональные требования, модели данных, контракты API, NFR
Где хранитсяИнструмент управления проектами (Jira, Linear)Репозиторий (Git)

Ресурсы