📝 Как правильно формулировать функциональные требования

Функциональные требования можно описывать как со стороны системы, так и со стороны пользователя. 💡 Пользователи — это не только конечные клиенты. Это и разработчики, и администраторы, и все, кто так или иначе взаимодействует с системой. Главное — чтобы требования были понятными и однозначными.

🔹 Формулировка от лица системы Чаще всего используется конструкция: 👉 «должен / должна / необходимо» + глагол + ожидаемый результат Шаблон: [Условие], система должна [сделать действие], чтобы [достичь результата]. Или так: [Роль/группа пользователей/пользователь] должен иметь возможность [выполнить что-то] [с каким-то объектом] [условие выполнения, время отклика или декларация качества] Пример: При заказе чая в приложении по доставке продуктов система должна предлагать пользователю также купить сахар и лимон. Иногда можно опустить «система должна»: 👉 «При заказе чая пользователю необходимо предложить купить сахар и лимон.» Но это может привести к двусмысленности, поэтому будьте аккуратны. 🔹 Формулировка от лица пользователя Здесь конструкция «пользователь должен» уже необходима. Важно уточнять, какой именно пользователь выполняет действие. Шаблон: [Конкретный пользователь] должен иметь возможность [совершить действие], чтобы [достичь результата]. Пример: Пользователь, совершивший заказ в приложении, должен иметь возможность нажать кнопку «Повторить заказ». После этого все товары из выбранного заказа должны быть добавлены в корзину. У пользователя должна быть возможность отредактировать заказ (изменить количество или удалить товар). 🔹 Что важно учитывать в функциональных требованиях Чтобы требования были понятны и разработчикам, и бизнесу, в них нужно описывать: ✅ Действия пользователя и реакцию системы. Например, после добавления товара в корзину пользователь может оформить заказ, удалить товар, увеличить количество или продолжить покупки. ✅ Обязательные и необязательные поля. Например, при вводе адреса доставки улица и дом — обязательные, а квартира и домофон — нет. ✅ Условия выполнения действий. Например: «В последний день каждого месяца система должна формировать отчёт о проданных товарах». ✅ Обработка ошибок и отклонений от сценария. Например: если пользователь не указал улицу, система должна вывести предупреждение и не дать оформить заказ. 📌 Мини-пример комплексного требования При авторизации в приложении пользователь должен указать номер телефона и пароль: если поля не заполнены — система подсвечивает их красным; если данные неверные — система выводит ошибку; если данные корректные — пользователь попадает в личный кабинет. Так требования становятся чёткими, проверяемыми и полезными — и для команды разработки, и для бизнеса.