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
Обзорный файл
Обзорный файл покрывает:
- Скоуп продукта — один абзац, что ПО делает и чего не делает
- Классы пользователей — роли и их уровни доступа
- Нефункциональные требования — цели производительности, безопасности, доступности (глобальные)
- Обзор архитектуры — высокоуровневая диаграмма, технологический стек, модель развёртывания
- Ограничения — регуляторные, бюджетные, временны́е, технологические
- Открытые вопросы — пункты с пометкой TBD, ответственные и целевые даты
Модуль фичи
Каждый модуль фичи покрывает:
- Контекст — какую пользовательскую проблему решает, ссылка на секцию PRD или user story
- Функциональные требования — с ID, «shall/should», привязанные к критериям приёмки
- Модель данных — сущности и поля для этой фичи
- Контракт API — эндпоинты, схемы запросов/ответов, коды ошибок (при наличии)
- Граничные случаи и обработка ошибок — что происходит, когда что-то идёт не так
Agile SRS vs user stories
Agile SRS не заменяет user stories. Они служат разным целям:
| Аспект | User Story | Модуль Agile SRS |
|---|---|---|
| Аудитория | Продуктовая команда, стейкхолдеры | Инженеры, QA |
| Гранулярность | Одно поведение или возможность | Полная спецификация фичи |
| Срок жизни | Один спринт | Эволюционирует через спринты |
| Содержание | Как [роль], я хочу [цель], чтобы [причина] | Функциональные требования, модели данных, контракты API, NFR |
| Где хранится | Инструмент управления проектами (Jira, Linear) | Репозиторий (Git) |
Ресурсы
- SRD — полное руководство — традиционный формат SRD
- Шаблоны SRD — Standard и Agile
- Генератор SRD — создайте SRD с помощью AI
- FRD — полное руководство — спецификация поведения
- Навигатор документов — найдите нужный тип документа