Requirements decomposition techniques in Agile
👉🏻 Разбиение требований на атомарные пользовательские истории - целое искусство. Применение данного искусства на проекте способствует произведению более точной оценки задач разработчиками, быстрому тестированию пользовательские истории, скорому получению фидбека после их реализации.
👉🏻 Декомпозиция, как правило, производится перед планированием предстоящего спринта, чтобы четко определить функции, которые войдут в спринт, правильно разделить их на задачи, оценить и, следовательно, разработать.
📌 5 Agile техник декомпозиции требований:
1️⃣ Разбиение по этапам бизнес-процесса
Любой бизнес-процесс состоит из нескольких логических последовательных шагов.
🖍 Пример:
💻 Онлайн заказ товара:
1. Добавить заказ в корзину;
2. Выбор способа получения заказа;
3. Выбор способа оплаты;
4. Подтверждение заказа.
2️⃣ Разбиение по позитивным и негативным сценариям
Любая функциональность предполагает как положительные, так и негативные сценарии использования. Положительный сценарий предполагает успешное достижение цели пользователем. Негативные сценарии отражают отклонения в развитии событий.
🖍 Пример:
1. Пользователь вынужден авторизоваться для создания заказа.
2. Товара нет на складе;
3. На карте нет достаточно средств для оплаты заказа.
3️⃣ Разбиение по бизнес-правилам
Декомпозиция пользовательских историй может быть произведена согласно реализации отдельных бизнес-правил.
🖍Пример:
1. Отмена заказа, если товар не оплачен в течение определенного времени;
2. Минимальная сумма для доставки товара;
3. Выбор доступного времени доставки товара.
4️⃣ Разбиение по видам операций
Основные операции/действия, производимые с объектом - это создать, прочесть, обновить и удалить объект (CRUD).
🖍Пример:
1. Пользователь может создать заказ;
2. Пользователь может просмотреть заказ;
3. Пользователь может редактировать заказ;
4. Пользователь может удалить заказ.
5️⃣ Разбиение по ролям
Каждая система подразумевает наличие нескольких ролей. Часто пользователи с разными ролями имеют доступ к одному и тому же функционалу, но к разным его частям.
🖍 Пример:
1. Зарегистрированный пользователь производит заказ товара;
2. Незарегистрированный пользователь производит заказ товара.