User story
и User story map:
все что нужно знать
Как описать потребность пользователя для команды
Содержание:
Что такое user story

Пример User story (Источник)

User Story (пользовательская история) — это простое описание того, что пользователь хочет сделать с вашим продуктом и зачем ему это нужно. Она записывается от лица пользователя и помогает команде понять его реальные потребности.

Для чего она нужна:
  • Помогает команде разработки сфокусироваться на том, что действительно важно для пользователей. Так как формируется исходя из потребностей пользователя.
  • Облегчает понимание задач между продакт-менеджером, разработчиками и дизайнерами.

Банковское приложение
Как клиент, я хочу получать уведомления о поступлении средств, чтобы быть в курсе финансовых операций.

Онлайн магазин
Как покупатель, я хочу иметь возможность отслеживать доставку моего заказа, чтобы знать, когда он прибудет.

User story - как написать

Шаблон:
  • Как [кто?], я хочу [что сделать?], чтобы [зачем?].

Хороший пример:
Как пользователь мобильного банка, я хочу просматривать текущий баланс и недавние транзакции на главном экране, чтобы быстро отслеживать свои финансовые операции и принимать решения.

Критерии приемки:
Отображение баланса:
  • На главном экране после входа в приложение отображается текущий баланс пользователя.
  • Баланс обновляется в реальном времени при наличии подключения к интернету.
Список недавних транзакций:
  • Под текущим балансом отображаются последние 5 транзакций.
  • Для каждой транзакции отображается дата, сумма и категория (например, "покупка", "перевод", "пополнение").
Доступ к полному списку операций:
  • Пользователь может нажать на кнопку "Все транзакции", чтобы перейти к полному списку операций.
  • На странице всех транзакций доступны фильтры по дате и категории.
Обработка ошибок:
  • Если нет подключения к интернету, отображается сообщение об отсутствии соединения и предлагается попробовать обновить данные.
  • При возникновении ошибки загрузки данных отображается понятное пользователю сообщение с предложением повторить попытку.
Безопасность:
  • Данные о балансе и транзакциях доступны только после успешной аутентификации пользователя.
  • При неактивности в течение 5 минут приложение автоматически запрашивает повторный вход для защиты данных.
Интерфейс пользователя:
  • Дизайн главного экрана соответствует общему стилю приложения и удобен для восприятия.
  • Все тексты и суммы отображаются четким шрифтом и корректными форматами (например, суммы в валюте пользователя).


Плохой пример:
Добавить возможность просмотра отзывов.
Почему это плохо:
  • Нет указания на пользователя.
  • Не ясно, зачем это нужно.
  • Фокус на функции, а не на потребности пользователя.
  • Отсутствует контекст, что может привести к неправильному пониманию задачи.

Как нужно:
  • Как студент, я хочу получать уведомления о новых заданиях, чтобы не пропустить сроки их сдачи.
  • Как водитель, я хочу видеть ближайшие заправки на карте, чтобы планировать остановки в пути.
Как не нужно:
  • Реализовать систему уведомлений для заданий.
  • Отобразить заправки на карте.
Как написать User story с помощью ChatGPT
Запрос для написания user story:
Generate a user story for a [type of user] who wants to [perform an action] in order to [achieve a benefit/value]. The user is [describe the user’s characteristics or role], the action involves [describe the action in detail], and the benefit or value is [describe the benefit/value in detail].

Запрос для написания acceptance criteria:
Generate acceptance criteria for a feature where [describe the feature in detail including its functionalities and purpose] and it should be able to [describe the expected outcome in detail including how it should function and what it should achieve].

И еще 3 уже натренированных чата с ChatGPT именно под написание пользовательских историй.
Критерии User story
Acceptance Criteria — это список конкретных условий, которые должны быть выполнены, чтобы задача считалась завершенной и соответствовала потребностям пользователя.

  • Понятными словами
  • Каждый должен легко понимать, что требуется
  • Избегайте фраз типа "должно быть удобно" или "сделать быстро".
  • Можно проверить, выполнены они или нет.
  • Показатели или результаты (метрики)
  • Фокусируйтесь на важности для пользователя, а не на технических деталях.
  • Учитывайте разные сценарии, включая ошибки и исключения

Хороший пример
User Story:
Как пользователь онлайн-банка, я хочу видеть текущий баланс на главной странице, чтобы быстро узнать, сколько у меня денег.
Acceptance Criteria:
  • После входа в аккаунт на главной странице отображается текущий баланс счета.
  • Баланс обновляется автоматически при каждом входе.
  • Баланс показывает точную сумму с учетом последних транзакций.
  • Баланс виден без дополнительных кликов или переходов по меню.
  • Если пользователь неактивен более 5 минут, система автоматически выходит из аккаунта.

Плохой пример
  • Система должна быть удобной.
  • Баланс должен отображаться правильно.
  • Обеспечить безопасность пользователя.
Почему это плохо:
  • Слишком общие формулировки, непонятно, что именно требуется.
  • Нет конкретики, сложно понять, как проверить выполнение требований.
  • Отсутствие деталей для реализации и тестирования.
User story примеры
User Story
Как пользователь YouTube, я хочу иметь возможность сохранять видео для офлайн-просмотра, чтобы смотреть их без подключения к интернету.

Acceptance Criteria
1 Сохранение видео:
  • 1.1 Пользователь может нажать кнопку «Скачать» под видео для сохранения его на устройство.
  • 1.2 Скачивание доступно для пользователей мобильного приложения YouTube.

2 Доступность контента:
  • 2.1 Не все видео могут быть сохранены офлайн из-за настроек конфиденциальности или ограничений правообладателей.
  • 2.2 При попытке скачать недоступное видео отображается сообщение об этом.

3 Качество скачивания:
  • 3.1 Пользователь может выбрать качество видео перед скачиванием (например, 360p, 720p).
  • 3.2 Выбранное качество влияет на размер файла и требуется соответствующее пространство на устройстве.

4 Просмотр офлайн:
  • 4.1 Скачанные видео доступны в разделе «Офлайн» в приложении.
  • 4.2 Пользователь может воспроизводить сохраненные видео без подключения к интернету.

5 Срок действия скачанных видео:
  • 5.1 Скачанные видео действительны в течение 30 дней без подключения к интернету.
  • 5.2 При истечении срока действия пользователь должен подключиться к интернету для обновления доступа.

6 Управление скачанными видео:
  • 6.1 Пользователь может удалить скачанные видео из памяти устройства в любое время.
  • 6.2 Приложение отображает общий объем занятого места и количество скачанных видео.

7 Обработка ошибок:
  • 7.1 Если на устройстве недостаточно памяти, при попытке скачивания отображается предупреждение.
  • 7.2 При потере интернет-соединения во время скачивания процесс приостанавливается и возобновляется автоматически при восстановлении связи.
INVEST принципы user story
Принцип INVEST — это набор критериев, помогающий создавать качественные и эффективные пользовательские истории (User Stories).

  • IIndependent (Независимая)
История должна быть самостоятельной и не зависеть от других историй, чтобы ее можно было реализовать отдельно.
  • Как пользователь, я хочу добавлять товары в корзину, чтобы собрать все покупки перед оформлением заказа.
  • Как пользователь, я хочу получить скидку на товары в корзине после того, как поделюсь ссылкой на продукт в социальных сетях.

  • NNegotiable (Открытая для обсуждения)
История должна быть гибкой для обсуждения и не содержать жестких, детальных требований.
  • Как читатель, я хочу сохранять статьи в закладки, чтобы вернуться к ним позже.
  • Как читатель, я хочу, чтобы кнопка сохранения была зеленой, круглой и располагалась в правом верхнем углу статьи.

  • VValuable (Ценная)
История должна приносить явную ценность пользователю или клиенту.
  • Как путешественник, я хочу получать уведомления об изменениях рейса, чтобы своевременно реагировать на них.
  • Как разработчик, я хочу обновить библиотеку зависимостей до последней версии.

  • EEstimable (Оцениваемая)
Команда должна иметь возможность оценить объем работы по истории.
  • Как пользователь, я хочу восстановить пароль через email, чтобы получить доступ к своему аккаунту, если забуду пароль.
  • Как пользователь, я хочу, чтобы система была максимально безопасной.

  • SSmall (Небольшая)
История должна быть достаточно маленькой, чтобы ее можно было выполнить за короткое время.
  • Как пользователь, я хочу изменить адрес доставки в своем профиле.
  • Как пользователь, я хочу полностью настроить свой профиль, включая персональные настройки, уведомления, предпочтения и безопасность.

  • TTestable (Тестируемая)
Должны быть ясны критерии, по которым можно проверить, что история выполнена правильно.
  • Как пользователь, я хочу получать подтверждение по email после оформления заказа, чтобы быть уверенным, что заказ принят.
  • Как пользователь, я хочу, чтобы приложение было удобным и интуитивно понятным.
Use case vs User story
Цель:
  • User Story: Используется в Agile для быстрого понимания требований и гибкой разработки.
  • Use Case: Применяется для глубокого анализа и документирования системы в традиционных методологиях.

Фокус:
  • User Story: Краткое описание потребности пользователя, фокус на том, что он хочет и зачем.
  • Use Case: Детальное описание взаимодействия пользователя с системой, включая шаги и варианты.

Уровень детализации:
  • User Story: Низкий, фокус на ценности для пользователя, детали обсуждаются позже.
  • Use Case: Высокий, описывает все возможные сценарии и исключения.

Когда применять:
  • User Story: Подходит для проектов с гибкой разработкой, где важна скорость и адаптивность.
  • Use Case: Используется в сложных проектах, требующих детального планирования и спецификаций.

User Story
Как пользователь мобильного приложения банка, я хочу переводить деньги по номеру телефона, чтобы быстро и удобно отправлять средства друзьям и близким.

Use Case
Название: Перевод средств по номеру телефона

Акторы:
  • Пользователь (отправитель)
  • Система мобильного банка

Предусловия:
  • Пользователь авторизован в мобильном приложении банка.
  • У пользователя достаточно средств на счёте для совершения перевода.

Основной поток событий:
  1. Пользователь открывает мобильное приложение банка.
  2. На главном экране выбирает опцию «Переводы».
  3. Выбирает вариант «Перевод по номеру телефона».
  4. Система отображает поле для ввода номера телефона получателя.
  5. Пользователь вводит номер телефона получателя и нажимает «Продолжить».
  6. Система проверяет, зарегистрирован ли получатель в системе:
  • Если получатель найден, отображается его имя для подтверждения.
  • Если получатель не найден, система предлагает отправить приглашение в сервис (переход к альтернативному потоку A1).

  1. Пользователь вводит сумму перевода и при необходимости комментарий.
  2. Система отображает детали перевода: имя получателя, номер телефона, сумму, возможную комиссию.
  3. Пользователь подтверждает перевод, нажав кнопку «Отправить».
  4. Система выполняет перевод средств:
  • Списывает сумму со счёта пользователя.
  • Отправляет уведомление получателю о поступлении средств.

5 Пользователь получает подтверждение об успешном переводе на экране и по SMS/пуш-уведомлению.

Альтернативные потоки:
A1: Получатель не зарегистрирован в системе
  • 6a. Система уведомляет, что получатель не найден.
  • 6b. Предлагает отправить приглашение в сервис по SMS.
  • 6c. Пользователь соглашается или отказывается:
Если соглашается, система отправляет приглашение и уведомляет об этом.
Если отказывается, процесс перевода отменяется.

A2: Недостаточно средств на счёте
  • 9a. Система проверяет баланс и обнаруживает, что средств недостаточно.
  • 9b. Отображает сообщение об отсутствии достаточных средств и предлагает пополнить счёт.
  • 9c. Пользователь может:
Выбрать опцию пополнения счёта (переход к процессу пополнения).
Отменить операцию перевода.

Постусловия:
При успешном переводе:
Средства списаны со счёта пользователя.
Получатель получил уведомление о поступлении средств.
При отмене операции:
Состояние счёта пользователя остаётся без изменений.
Пользователь может повторить попытку позже.

User story mapping

Пример User story map (Источник)

User Story Mapping — способ визуально представить и организовать все пользовательские истории вашего продукта.

Отображает:
  • Какие шаги пользователи будут делать, чтобы достичь своих целей.
  • Что нужно разработать в первую очередь, а что может подождать.
  • Как расставить функции по степени важности и срочности.

По горизонтали
Вы располагаете основные шаги пользователя или этапы его пути (например, регистрация, поиск товара, оформление заказа).

По вертикали
Под каждым шагом вы размещаете связанные с ним пользовательские истории и функции, начиная с самых важных сверху.

User story map пример
1 Определяем шаги пользователя (по горизонтали):
  • Поиск товара
  • Просмотр товара
  • Добавление в корзину
  • Оформление заказа
  • Оплата

2 Пишем пользовательские истории под каждым шагом (по вертикали):

Поиск товара:
  • Как покупатель, я хочу искать товары по названию, чтобы быстро находить нужное.
  • Как покупатель, я хочу фильтровать товары по цене, чтобы найти подходящие варианты.

Просмотр товара:
  • Как покупатель, я хочу видеть подробное описание товара, чтобы принять решение о покупке.

Добавление в корзину:
  • Как покупатель, я хочу добавлять товары в корзину, чтобы собрать все покупки перед оплатой.

3 Приоритизируем истории сверху вниз по важности.

4 Используйте карту для планирования спринтов и релизов.

Примеры карт собраны здесь:
Как вам материалы?
Об авторе:
  • Александр Замахов
    Senior product manager / CPO
    Автор подборки и основатель проекта
    Следите за выходом новых материалов в телеграме и linkedin
Еще материалы по теме продакт менеджмента: