Upload
dataart
View
482
Download
5
Embed Size (px)
Citation preview
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