Пишем пользовательские сценарии

10,623 views

Published on

28 мая 2011 года, HackDay#16 (http://hackday.ru/).

Published in: Technology

Пишем пользовательские сценарии

  1. 1. Пишем пользовательские сценарии И в twitter заодно: @op
  2. 2. Модели из подручных материалов
  3. 3. Мы — нация текста
  4. 4. Люди не читают?
  5. 5. Поиграть же хочется!
  6. 6. Должно быть интересно
  7. 7. Герой, обстановка, завязка сюжета
  8. 8. Путь к цели, успех
  9. 9. Давайте напишем что-нибудь
  10. 10. Ситуация: на телефоне закончились деньги. Задача: пополнить счёт сотового телефона. Предусловия: Пользователь — перед Терминалом.
  11. 11. [1] Пользователь сообщает Терминалу, что хочет пополнить счёт. [2] Терминал запрашивает у Пользователя номер телефона. [3] Пользователь сообщает Терминалу номер телефона. [4] Терминал удостоверяется, что номер телефона введён корректно и пополнение возможно. [5] Терминал запрашивает у пользователя банкноты для пополнения счёта. [6] Пользователь передаёт Терминалу банкноты. [7] Терминал удостоверяется, что принятые банкноты можно использовать, и пополняет счёт. [8] Терминал сообщает Пользователю об успехе пополнения и предлагает повторить операцию. [9] Пользователь сообщает Терминалу своё решение: повторить операцию (возврат на шаг [5]) или закончить работу. Осторожно, тьма ошибок!
  12. 12. Не учтены технологические ограничения: <ul><li>[2] Номера телефона недостаточно. Нынешние терминалы не умеют гарантированно определять оператора по номеру телефона. </li></ul><ul><li>[5] Терминал может «пережёвывать» банкноты только по одной штуке. </li></ul>Ошибки. Это нормально.
  13. 13. Не учтены бизнес-требования: <ul><li>[7] Размер комиссии зависит от суммы платежа. Таким образом, пополнение счёта «побанкнотно» воспринимается Пользователем как обман. Необходимо дать возможность пополнять счёт после передачи банкомату всех банкнот. </li></ul>Ошибки. Это нормально.
  14. 14. Не учтены «ограничения среды» (в данном случае — требования законодательства): <ul><li>[4] Перед получением денег Терминал обязан предупредить Пользователя о размерах комиссии. </li></ul><ul><li>[8] На любую денежную операцию необходимо выдавать чек. Это действие нужно явно прописать в сценарии, не скрывая его за словосочетанием «сообщает об успехе пополнения». </li></ul>Ошибки. Это нормально.
  15. 15. Не учтены особенности человеческого поведения: <ul><li>[9] Пользователь в этот момент уже решил задачу. Наивно полагать, будто он захочет сообщать Терминалу, что закончил работу. </li></ul>Ошибки. Это нормально.
  16. 16. Не проработаны отклонения от базового сценария! Ошибки. Это нормально.
  17. 17. [1] Пользователь сообщает Терминалу, что хочет пополнить счёт. [2] Терминал удостоверяется, что пополнение возможно, и запрашивает у Пользователя номер телефона и, если нужно, сотового оператора. [3] Пользователь сообщает Терминалу запрошенные данные. [4] Терминал удостоверяется, что данные введены корректно. [5] Терминал запрашивает у пользователя банкноту для пополнения счёта. [6] Пользователь передаёт Терминалу банкноту. [7] Терминал удостоверяется, что принятую банкноту можно использовать, и сообщает Пользователю размер внесённой в Терминал суммы. [8] Терминал предлагает пользователю выбор: продолжить вносить деньги в Терминал или пополнить счёт. [9] Пользователь делает выбор и либо продолжает вносить деньги в терминал (возврат на шаг [5]) , либо распоряжается пополнить счёт (переход на шаг [10]) . [10] Терминал пополняет счёт телефона Пользователя, выдаёт чек и сообщает Пользователю об успехе операции. Так-то лучше?
  18. 18. Отклонения: <ul><li>[2], [3], [4], [5] Пользователь передумал пополнять счёт. Терминал даёт Пользователю возможность прервать сценарий на этих шагах. </li></ul><ul><li>[2] Пополнение невозможно по техническим причинам. Терминал сообщает Пользователю о невозможности операции. Может быть, тогда и не предлагать шаг [1]? </li></ul><ul><li>[4] Данные введены некорректно. Терминал сообщает Пользователю об ошибке и повторяет шаг [3] . </li></ul><ul><li>[6] Пользователь долго ничего не передаёт терминалу. Терминал переходит в режим ожидания. </li></ul><ul><li>[7] Банкноту использовать нельзя. Терминал возвращает Пользователю банкноту и повторяет шаг [5] . </li></ul><ul><li>[9] Пользователь долго не принимает решение. Терминал самостоятельно переходит на шаг [10] . </li></ul><ul><li>[9] Пользователь передумал пополнять счёт. Интерфейсно решение не поддерживаем! </li></ul><ul><li>[10] Техническая ошибка при пополнении. Что делаем? </li></ul><ul><li>[11] Невозможно выдать чек (например, нет бумаги). Что делаем? </li></ul>
  19. 19. Почему не блок-схемы? Вы пробовали их читать?
  20. 20. Зарождение картинок
  21. 21. [2] Терминал удостоверяется {*} , что пополнение возможно, и запрашивает { Form , пустая форма} у Пользователя номер телефона и, если нужно, сотового оператора. [3] Пользователь сообщает { Form , ввод данных} Терминалу запрошенные данные. [4] Терминал удостоверяется { Form , проверка данных} , что данные введены корректно. Каждое действие участников пьесы должно быть поддержано интерфейсом. Иногда отсутствующим :)
  22. 22. Ставим ссылку на прототип после каждого глагола. Каждого! [2] Терминал удостоверяется {*} , что пополнение возможно, и запрашивает { Form , пустая форма} у Пользователя номер телефона и, если нужно, сотового оператора. [3] Пользователь сообщает { Form , ввод данных} Терминалу запрошенные данные. [4] Терминал удостоверяется { Form , проверка данных} , что данные введены корректно.
  23. 23. Понаписали макулатуры
  24. 24. Сценарий комикса?
  25. 25. Жизнь ↑ задача ↓ система
  26. 26. Дальше можно рисовать
  27. 27. Спасибо за внимание <ul><li>Ольга Павлова , UsabilityLab olga-pavlova.ru twitter @op </li></ul>Презентацию вышлю всем желающим по почте — дёргайте.

×