Как превратить User Story в историю успеха

38
Как превратить User Story в историю успеха Ольга Лужецкая Business Analyst & QA Engineer

Transcript of Как превратить User Story в историю успеха

Как превратить User Storyв историю успеха

Ольга ЛужецкаяBusiness Analyst & QA

Engineer

User Stories: что это ?

#qa_talk #dataart #lviv

Как <роль/персона юзера>, я <что-то хочу получить> <с такой-то целью>  As a <role>, 

I want <goal/desire> so that <benefit>

User Stories: а зачем?

#qa_talk #dataart #lviv

• Провоцируют обсуждения внутри команды и с заказчиком;

• Разработчики сразу задумываются о реализации и ограничениях системы;

• Тестировщики – о том, как проверить новый функционал

 

User Stories: модель INVEST

#qa_talk #dataart #lviv

I Independent

Независимая Когда зависимостей нет, планировать легче

N Negotiable Обсуждаемая

Детали добавляются при сотрудничестве

V Valuable Ценная Приносит ценность заказчикуE Estimable Оцениваема

яСлишком большую или неточную оценить трудно

S Small Небольшая Можно сделать в течение 1 спринта

T Testable Тестируемая Хорошие критерии приемки

• Воркшопы по написанию user story (на начальном этапе проекта)

• Интервью с реальными пользователями

• Письма и звонки в техническую поддержку

• Наблюдения за пользователями• Случайно замеченные пожелания

заказчика #qa_talk #dataart #lviv

User Stories: откуда они все время берутся?

Алиса, это пудинг. На что смотрим в первую очередь?

• на цель. это правильная цель?

• на персону/актера;• на масштаб изменений;• на то, какой блок

системы будет развиваться и изменяться;

• на версию и приоритет. #qa_talk #dataart #lviv

Кто обсуждает User Story?

#qa_talk #dataart #lviv

Team + Product Owner

Business Analyst + Product Owner

Business Analyst + Team

Team + Product Owner

User Story выглядит реально достижимой- технически- с точки зрения

бизнеса

Критерии приемки

Разделение User Story

Приблизительное оценивание

Дальнейшее разделение User Story

Окончательное оценивание

Технические задачи

Кажется, чего-то не хватает…

#qa_talk #dataart #lviv

• Есть ли критерии приемки (acceptance criteria)?

• Есть ли дизайн (или макет)?• Есть ли ограничения (или

предусловия?)• Какие компоненты системы

затронуты?

А если в процессе работы внезапно возник вопрос?

• Задавайте его обязательно. Сразу.

• Не пытайтесь молча реализовать свое решение.

#qa_talk #dataart #lviv

Несколько слов про Backlog Grooming

#qa_talk #dataart #lviv

•составление новых User Stories•декомпозиция User Stories на более мелкие•оценка сложности•добавление мокапов, критериев приемки, новых сценариев, примеров •обсуждение технических деталей реализации•удаление устаревших User Stories

Cause-Effect Trap: выбираемся из ловушки

#qa_talk #dataart #lviv

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

Как <роль/персона юзера>, я <что-то хочу получить> <с такой-то целью> 

формально все правильно…

Cause-Effect Trap: выбираемся из ловушки

#qa_talk #dataart #lviv

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

Зачем?

Как пользователь, я хочу иметь кнопку, чтобы быстро попасть с экрана 1 на экран 9

Вывод: нужен ярлык.

Cause-Effect Trap: выбираемся из ловушки

#qa_talk #dataart #lviv

Зачем?Как пользователь, я хочу быстро попасть с экрана 1 на экран 9, чтобы 90% сценариев выполнялись быстрееВывод: в 90% сценариев экраны 2-8 не нужны, и у нас будет экономиться время.

Как пользователь, я хочу иметь кнопку, чтобы быстро попасть с экрана 1 на экран 9

Cause-Effect Trap: выбираемся из ловушки

#qa_talk #dataart #lviv

Зачем?Как пользователь, я хочу выполнять 90% сценариев быстрее, чтобы производительность службы поддержки выросла

Вывод: а кому именно это выгодно?

Как пользователь, я хочу быстро попасть с экрана 1 на экран 9, чтобы 90% сценариев выполнялись быстрее

Cause-Effect Trap: выбираемся из ловушки

#qa_talk #dataart #lviv

Зачем?

Как пользователь, я хочу выполнять 90% сценариев быстрее, чтобы производительность службы поддержки выросла

Вывод: изменилась роль.

Как менеджер, я хочу выполнять 90% сценариев быстрее, чтобы производительность службы поддержки выросла

Cause-Effect Trap: выбираемся из ловушки

#qa_talk #dataart #lviv

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

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

Было:

Стало:

Разбиваем User Story: два совета

#qa_talk #dataart #lviv

1. Старайтесь выявить истории с низкой ценностью

2. Если удается, разделяйте истории на равные по размеру

Разбиваем User Story: простота/сложность

#qa_talk #dataart #lviv

• «Как это сделать максимально просто?» - первая история• Все вариации, сложности – другие истории

Пример

Как пользователь, я могу искать товары на сайте магазина.

Разбиваем User Story: простота/сложность

#qa_talk #dataart #lviv

Как пользователь, я могу искать товары на сайте магазина.

+ выбирая новинки за последний месяц;+ сортируя по популярности;+ исключая те, которых нет в наличии

Разбиваем User Story: шаги процесса

#qa_talk #dataart #lviv

• Первый и последний шаги - первая история• Промежуточные шаги – другие истории

Пример

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

Разбиваем User Story: шаги процесса

#qa_talk #dataart #lviv

+ опубликовать резюме с сопроводительным письмом+ просмотреть резюме перед публикацией

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

Разбиваем User Story: простой интерфейс

#qa_talk #dataart #lviv

• Максимально простой интерфейс - первая история• Привлекательный, удобный интерфейс – другие истории

Пример

Как пользователь, я хочу подключаться к серверу с планшета.

Разбиваем User Story: простой интерфейс

#qa_talk #dataart #lviv

1 – я хочу ввести IP-адрес сервера вручную2 – я хочу отсканировать QR-код с зашифрованным адресом сервера

Как пользователь, я хочу подключаться к серверу с планшета.

Разбиваем User Story: группы данных

#qa_talk #dataart #lviv

• Каждый вариант данных – отдельная история• Классика – истории про локализацию

Пример

Как пользователь, я хочу выбрать любой из 4 языков интерфейса

Разбиваем User Story: группы данных

#qa_talk #dataart #lviv

+ українська+ русский+ English+ Deutsch

Как пользователь, я хочу выбрать любой из 4 языков интерфейса

Разбиваем User Story: операции

#qa_talk #dataart #lviv

• Каждая операция – отдельная история• Классика – CRUD

Пример

Как пользователь, я хочу управлять своей учетной записью

Разбиваем User Story: операции (CRUD)

#qa_talk #dataart #lviv

+ я хочу создать новую учетную запись+ я хочу изменить параметры учетной записи+ я хочу удалить учетную запись

Как пользователь, я хочу управлять своей учетной записью

Разбиваем User Story: сначала функциональность

#qa_talk #dataart #lviv

• Сначала заставляем просто работать• Затем реализуем нефункциональные требования

Пример

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

Разбиваем User Story: сначала функциональность

#qa_talk #dataart #lviv

1 - я хочу находить квартиры медленно.2 – я хочу находить квартиры очень быстро, поиск занимает до 3 секунд.

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

Разбиваем User Story: отделение спайка

#qa_talk #dataart #lviv

Пример

Как пользователь, я хочу оплатить покупку биткойнами

• Разрешение неопределенностей – первая история• Разработка – другие истории

спайк

Разбиваем User Story: отделение спайка

#qa_talk #dataart #lviv

1 – я хочу исследовать оплату биткойнами (спайк, ограничен во времени)2 – я хочу реализовать оплату биткойнами

Как пользователь, я хочу оплатить покупку биткойнами

Модель Кано и User Experience

#qa_talk #dataart #lviv

Team + Product Owner

Базовые свойства

Основные свойства

Восхищающие свойстваСвойства

продукта:

профессор Нориаки Кано1980-е гг.

Модель Кано: базовые свойства

#qa_talk #dataart #lviv

Team + Product Owner

Базовые свойства

Основные свойства

Восхищающие свойства

Потребитель ожидает получить их по умолчанию.

• наличие не вызывает удовлетворенности• отсутствие разочарование

• Автомобиль заводится• Письмо доходит до

получателя• Билет на самолет

обеспечивает свободное место на рейсе

Модель Кано: основные свойства

#qa_talk #dataart #lviv

Team + Product Owner

Базовые свойства

Основные свойства

Восхищающие свойства

Прямо пропорционально влияют на удовлетворенность.

• основа для конкурентного преимущества• их уровень влияет на стоимость

• % натурального вещества в соке• Количество лошадиных сил в

спортивном автомобиле• Объем бесплатного

пространства у Gmail

Модель Кано: восхищающие свойства

#qa_talk #dataart #lviv

Team + Product Owner

Базовые свойства

Основные свойства

Восхищающие свойства

Всегда неожиданные, дополнительные.

• Отсутствие не влияет на удовлетворенность

• Наличие обязательное удовлетворение

• Вторая батарея с фотоаппаратом

• Резиновая уточка в купальном наборе

номера отеля• Калькулятор в строке

поиска Google

Модель Кано: что нам это дает?

#qa_talk #dataart #lviv

Team + Product Owner

Базовые свойства

Основные свойства

Восхищающие свойства

• Базовые свойства должны быть безупречны

• О продукте начинают говорить благодаря восхищающим свойствам

• Со временем свойства «сползают» - ожидания потребителей растут

И напоследок…

#qa_talk #dataart #lviv

“Software development is a cooperative game

of invention and communication”

Alistair Cockburn

Thank you!

Questions Time!

#qa_talk #dataart #lviv