Функциональные требования отвечают на вопрос: что должна делать система. Они описывают действия, операции, сценарии, бизнес-правила и реакции системы на действия пользователя или других систем.
Проще говоря, функциональные требования фиксируют конкретные возможности продукта. Например, пользователь должен иметь возможность зарегистрироваться, оформить заказ, оплатить услугу, получить уведомление, скачать документ или изменить данные в профиле.
Примеры функциональных требований:
- Пользователь должен иметь возможность зарегистрироваться по номеру телефона;
- Система должна отправлять код подтверждения при входе в личный кабинет;
- Клиент должен иметь возможность добавить товар в корзину;
- Система должна рассчитывать итоговую стоимость заказа с учетом скидки;
- Администратор должен иметь возможность изменить статус заявки;
- Система должна передавать данные о платеже во внешнюю платежную систему;
- Пользователь должен получать уведомление после успешного оформления заказа.
Такие требования обычно связаны с пользовательскими сценариями, ролями, интерфейсом, API, бизнес-логикой и интеграциями. Их важно описывать достаточно подробно, чтобы разработчик понимал не только конечное действие, но и условия его выполнения.
Например, требование «пользователь может оформить заказ» слишком общее. Его нужно раскрыть: какие товары можно заказать, какие поля обязательны, как проверяется наличие товара, когда создается заказ, какой статус присваивается, что происходит при ошибке оплаты.