December 13, 2022

Форматы требований: epic, user story, use cases

В разработке по Agile используются User story и use cases, User story объединяются в Epics.

Epics и User story удобно отображать на SCRUM-доске.

USER STORY

Пишется в формате:

«Я, как <РОЛЬ>, хочу <ЧТО>, чтобы <ЦЕЛЬ>», я дополняю «Для этого нужно: <ЧТО РЕАЛИЗОВАТЬ>»

Например:

Я, как покупатель интернет-магазина, хочу знать, когда товар появится снова на складе, чтобы заказать его на сайте. Для этого нужно: сделать систему оповещения о появлении товара на складе.
Системе нужно проверять появление новых заявок раз в 5 минут, чтобы операторы могли вовремя среагировать на обращение. Для этого нужно: посылать запрос на сервер xxx с интервалом 5 минут на получение новых заявок за этот период.

USE CASES

Варианты использования отображают действия, которые производит актор (пользователь, система) и реакцию системы на них.

Пользователь: <ДЕЙСТВИЕ>. Система: <ОТВЕТНОЕ ДЕЙСТВИЕ>
  1. Пользователь интернет-магазина добавляет отметку «Ожидание» у товара.
    1. Система сохраняет отметку для товара «Ожидание» для конкретного пользователя, атрибуты: товар, отметка, дата/время отметки, пользователь.
    2. Система отображает пользователю отметку «Ожидаемый» в карточке товара.
    3. В Системе появляется отметка товара, что он доступен на складе.
      1. Система отправляет подписанному Пользователю уведомление о появлении товара на складе.
      2. Система удаляет отметка для товара «Ожидание» для конкретного пользователя.
  2. Альтернативный поток: Пользователь интернет-магазина удаляет существующую отметку «Ожидание» у товара.
    1. Система удаляет отметку для товара «Ожидание» для конкретного пользователя.
    2. Система скрывает для Пользователя отметку «Ожидаемый» в карточке товара.
    3. В Системе появляется отметка товара, что он доступен на складе.
      1. Пользователю не приходит уведомление.

User story удобно объединять в Epics, особенно на SCRUM-доске.

Например:

<МОДУЛЬ СИСТЕМЫ>, <ФУНКЦИОНАЛЬНОСТЬ>

EPIC 1: «Покупка товара на сайте»

  • User story 1.1 «Я, как Покупатель, хочу добавить товар в корзину»:
    • Use case: «Отображение корзины»
    • Use case: «Добавление товара в корзину»
    • Use case: «Добавление в Отложенное из корзины»
  • User story 1.2 «Я, как Покупатель, хочу удалить товар из корзины»:
    • Use case: «Удаление товара из корзины»
    • Use case: «Очистка корзины целиком»
  • User story 1.3 «Я, как Покупатель, хочу оплатить товар в корзине сразу, чтобы иметь возможность купить. Для этого нужно реализовать возможность онлайн-оплаты товаров»:
    • Use case: «Оплата банковской картой»
    • Use case: «Оплата Системой быстрых платежей»
    • Use case: «Оплата баллами со счета»
  • User story 1.4 «Я, как Покупатель, хочу оплатить товар при получении, чтобы иметь возможность отложить оплату, если не могу или не хочу оплачивать сразу. Для этого нужно сделать функцию оплаты товара при получении»:
    • Use cases: «Оплата при получении привязанной банковской картой к профилю»
    • Use case: «Оплата при получении банковской картой через терминал»
    • Use case: «Оплата при получении баллами со счета»

EPIC 2: «Каталог товаров на сайте»

  • User story 2.1 «Я, как Покупатель, хочу найти нужный товар, чтобы добавить его в корзину. Для этого нужно вывести список доступных товаров для заказа в интернет-магазине»:
    • Use case: «Отображение каталога на сайте»
    • Use case: «Пагинация каталога на сайте»
  • User story 2.2 «Я, как Покупатель, хочу найти нужный товар по названию, чтобы не листать многостраничный список товаров. Для этого нужно: добавить функцию поиска по названию товара»:
    • Use case: «Поиск по названию товара»
    • Use case: «Поиск по характеристике товара»

EPIC 3: «Возврат товара на сайте»

  • User story 3.1 «Я, как Покупатель, хочу вернуть товар, который мне не подошёл или мне не понравился, чтобы иметь возможность вернуть свои деньги. Для этого нужно: добавить функцию возврата товара через сайт»:
    • Use case: «Оформление заявки через сайт (Покупатель)»
    • Use case: «Проверка заявки Покупателя»
    • Use case: «Возврат денежных средств Покупателю»
  • User story 3.2 «Я, как Сотрудник пункта выдачи, хочу оформить товар для возврата, который не подошёл Покупателю, 1) чтобы реализовать право Покупателя на возврат товара, 2) чтобы Покупатель мог сразу отказаться от товара, не оформляя в своем кабинете. Для этого нужно: добавить функцию возврата товара через кабинет Сотрудника пункта выдачи»:
    • Use case: «Оформление возврата товара Сотрудником пункта выдачи»
    • Use case: «Списание денежных средств Покупателя (штраф) за возврат товара»
    • Use cases: «Возврат денежных средств Покупателю»
  • User story 3.3 «»:
    • Use case: «»
    • Use case: «»

На SCRUM-доске отображаются Epics, User story. Use cases удобно писать в Google Doc, добавлять ссылку на название Use case из карточки на SCRUM-доске.

Ссылка на статью на Хабре