Прежде, чем отвечать, нужно сделать паузу и признать, что в сегодняшней терминологии есть некоторая путаница — под Сториз, Сценариями или Юзкейсами могут понимать разные инструменты.
Авторы культовой Designing Interactive Systems — People, Activities, Contexts, Technologies выделяют 4 вида сценариев в зависимости от этапа проекта и целей их создания: пользовательские истории (сториз), концептуальные сценарии, конкретные сценарии и варианты использования (юзкейсы).
Важно заметить, что есть еще Эджайловские Юзер сториз товарища Паттона, что описываются по шаблону As a <>, I want <> so that <> и находятся где-то между Concrete Scenario и Use case.
Зависимость содержания деталей
Сториз, они про потребность пользователя. Raw user needs.
Юзкейсы же про поведение, которое вы встроите в продукт, чтобы удовлетворить эти потребности. What the software needs to do.
Сториз пишутся человеческим языком = легко читаются и бизнесом и разработчиками. Express understanding of User needs.
Написание Юзкейсов это designing a functional solution.
Разберемся на примерах
User story
Стартуем с самого масштабного уровня, уделяем внимание контексту и всем поведенческим особенностям. Рассказ ведется не от лица абстрактного пользователя, и даже не от лица персонажа, а от лица реального человека (либо от лица того, кто ведет наблюдение/проводит интервью).
Выиграли билеты на концерт Radiohead в Риме, сборы проходили в последний момент, нанервничались и чуть не поругались 🙂 Решили, лететь налегке.
Когда поехали в аэропорт, то очень торопились и решили не заезжать на заправку, чтобы сэкономить время. В тот момент нам казалось, что бензина достаточно и хватит добраться до аэропорта, но в наши планы вмешались непредвиденные обстоятельства.
Вообщем встряли в пробку и, спустя некоторое время, загорелась лампочка низкого уровня топлива. Пришлось спешно искать заправки поблизости. Как назло, нашу машину можно заправлять только 98-ым бензином, что только добавило накала страстей.
По итогу, нам повезло — заправку нашли, в аэропорт успели, но пришлось сильно поволноваться. Благо Том Йорк сгладил впечатления о поездке, да и Рим крут.
Conceptual scenario
Снижаем планку контекста и движемся к конкретике за счет абстрагирования. Conceptual scenario важны для генерации идей и поиска ответа на вопрос «Как улучшить существующий опыт?».
Алан Купер рекомендует представить, что интерфейс волшебный и в нем можно реализовать всё, что угодно, чтобы выйти за рамки привычного.
Люди в стрессовых ситуациях нуждаются в дополнительном внимании и заботе. В процессе ввода в навигатор конечного адреса маршрута можно определять расстояние до финиша, проверять текущий уровень топлива с учетом актуального среднего расхода и определять, хватит ли нам топлива добраться до заданной точки. Если нет, оповещать об этом водителя.
Если же лампочка низкого уровня топлива уже загорелась, то показывать в навигаторе ближайшие заправки (с возможностью сортировки голосовыми командами, например по октановому числу).
Concrete scenario
Concrete scenarios пополняются деталями реализации и используются для проектирования, в них появляются технические подробности. Пишутся они от лица конкретного персонажа, дабы проявить эмпатию.
Когда Сергей вводит адрес в навигатор, то он хочет быть уверенным, что ему хватит топлива доехать до указанной точки. Если нет, то автомобиль предупредит об этом Сергея.
Если в момент движения, Сергей отклонится от маршрута и поедет другим путем (или будет ехать очень быстро), то с включением лампочки низкого уровня топлива, он увидит на карте навигатора ближайшие заправки и сможет выбрать подходящую по особенностям топлива.
Во время движения соединение с интернетом может прерываться.
Agile User story
Примерно на этом уровне находятся и Эджайловские Юзер стори.
Я, как водитель, в момент включения лампочки низкого уровня топлива, хочу заправить свою машину на ближайшей заправке.
Use case
Далее уже можно написать Юзкейсы, описывающие все взаимодействия системы с пользователем. Пишутся они от лица абстрактных пользовательских ролей.
Из всех видов сценариев Юзкейс — наиболее технический и напоминающий алгоритм, а не историю.
Я, как пользователь-водитель (с включенной лампочкой низкого уровня топлива) смогу:
- посмотреть все ближайшие заправки на карте
- посмотреть все ближайшие заправки списком
- выбрать заправки нужного бренда
- посмотреть на выбранной заправке наличие нужного топлива
- — построить до выбранной заправки маршрут
У Юзкейсов есть свой стандартизированный шаблон:
Потом собираете вместе ваши Сценарии, Сториз и Юзкейсы в один документ, рисуете Флоу и получаете полное описание каждого взаимодействия между пользователем и продуктом, которое вы планируете создать.
Когда и что использовать?
Все виды сценариев придуманы в угоду определения требований: что система должна делать в принципе и как она должна вести себя для того, чтобы удовлетворить запросы пользователей.
Конечно это требует дополнительных усилий и времени, поэтому на простых информационных продуктах можно пожертвовать сценариями, а без вариантов использования можно обойтись там, где взаимодействие достаточно прямолинейно, отсутствуют альтернативные и исключительные сценарии (или их проще и быстрее продемонстрировать в прототипе).
Но чем сложнее взаимодействие, тем желательнее начинать с контекста и поведенческих особенностей, двигаясь к конкретике по решениям. Иначе, есть риск вложить 80% усилий в 20% сценариев, с которыми пользователи будут работать мало и редко, а внимание дизайнера будет размазано по всем возможным сценариям, что снизит их качество.
Источник: designpub.ru
Хотите заказать приложение?
Политика в отношении обработки персональных данных
1. Общие положения
Настоящая политика обработки персональных данных составлена в соответствии с требованиями Федерального закона от 27.07.2006. №152-ФЗ «О персональных данных» (далее — Закон о персональных данных) и определяет порядок обработки персональных данных и меры по обеспечению безопасности персональных данных, предпринимаемые sharkdevelop (далее – Оператор).
1.1. Оператор ставит своей важнейшей целью и условием осуществления своей деятельности соблюдение прав и свобод человека и гражданина при обработке его персональных данных, в том числе защиты прав на неприкосновенность частной жизни, личную и семейную тайну.
1.2. Настоящая политика Оператора в отношении обработки персональных данных (далее – Политика) применяется ко всей информации, которую Оператор может получить о посетителях веб-сайта https://sharkdevelop.com/.
2. Основные понятия, используемые в Политике
2.1. Автоматизированная обработка персональных данных – обработка персональных данных с помощью средств вычислительной техники.
2.2. Блокирование персональных данных – временное прекращение обработки персональных данных (за исключением случаев, если обработка необходима для уточнения персональных данных).
2.3. Веб-сайт – совокупность графических и информационных материалов, а также программ для ЭВМ и баз данных, обеспечивающих их доступность в сети интернет по сетевому адресу https://sharkdevelop.com/.
2.4. Информационная система персональных данных — совокупность содержащихся в базах данных персональных данных, и обеспечивающих их обработку информационных технологий и технических средств.
2.5. Обезличивание персональных данных — действия, в результате которых невозможно определить без использования дополнительной информации принадлежность персональных данных конкретному Пользователю или иному субъекту персональных данных.
2.6. Обработка персональных данных – любое действие (операция) или совокупность действий (операций), совершаемых с использованием средств автоматизации или без использования таких средств с персональными данными, включая сбор, запись, систематизацию, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передачу (распространение, предоставление, доступ), обезличивание, блокирование, удаление, уничтожение персональных данных.
2.7. Оператор – государственный орган, муниципальный орган, юридическое или физическое лицо, самостоятельно или совместно с другими лицами организующие и (или) осуществляющие обработку персональных данных, а также определяющие цели обработки персональных данных, состав персональных данных, подлежащих обработке, действия (операции), совершаемые с персональными данными.
2.8. Персональные данные – любая информация, относящаяся прямо или косвенно к определенному или определяемому Пользователю веб-сайта https://sharkdevelop.com/.
2.9. Персональные данные, разрешенные субъектом персональных данных для распространения, — персональные данные, доступ неограниченного круга лиц к которым предоставлен субъектом персональных данных путем дачи согласия на обработку персональных данных, разрешенных субъектом персональных данных для распространения в порядке, предусмотренном Законом о персональных данных (далее — персональные данные, разрешенные для распространения).
2.10. Пользователь – любой посетитель веб-сайта https://sharkdevelop.com/.
2.11. Предоставление персональных данных – действия, направленные на раскрытие персональных данных определенному лицу или определенному кругу лиц.
2.12. Распространение персональных данных – любые действия, направленные на раскрытие персональных данных неопределенному кругу лиц (передача персональных данных) или на ознакомление с персональными данными неограниченного круга лиц, в том числе обнародование персональных данных в средствах массовой информации, размещение в информационно-телекоммуникационных сетях или предоставление доступа к персональным данным каким-либо иным способом.
2.13. Трансграничная передача персональных данных – передача персональных данных на территорию иностранного государства органу власти иностранного государства, иностранному физическому или иностранному юридическому лицу.
2.14. Уничтожение персональных данных – любые действия, в результате которых персональные данные уничтожаются безвозвратно с невозможностью дальнейшего восстановления содержания персональных данных в информационной системе персональных данных и (или) уничтожаются материальные носители персональных данных.
3. Основные права и обязанности Оператора
3.1. Оператор имеет право:
– получать от субъекта персональных данных достоверные информацию и/или документы, содержащие персональные данные;
– в случае отзыва субъектом персональных данных согласия на обработку персональных данных Оператор вправе продолжить обработку персональных данных без согласия субъекта персональных данных при наличии оснований, указанных в Законе о персональных данных;
– самостоятельно определять состав и перечень мер, необходимых и достаточных для обеспечения выполнения обязанностей, предусмотренных Законом о персональных данных и принятыми в соответствии с ним нормативными правовыми актами, если иное не предусмотрено Законом о персональных данных или другими федеральными законами.
3.2. Оператор обязан:
– предоставлять субъекту персональных данных по его просьбе информацию, касающуюся обработки его персональных данных;
– организовывать обработку персональных данных в порядке, установленном действующим законодательством РФ;
– отвечать на обращения и запросы субъектов персональных данных и их законных представителей в соответствии с требованиями Закона о персональных данных;
– сообщать в уполномоченный орган по защите прав субъектов персональных данных по запросу этого органа необходимую информацию в течение 30 дней с даты получения такого запроса;
– публиковать или иным образом обеспечивать неограниченный доступ к настоящей Политике в отношении обработки персональных данных;
– принимать правовые, организационные и технические меры для защиты персональных данных от неправомерного или случайного доступа к ним, уничтожения, изменения, блокирования, копирования, предоставления, распространения персональных данных, а также от иных неправомерных действий в отношении персональных данных;
– прекратить передачу (распространение, предоставление, доступ) персональных данных, прекратить обработку и уничтожить персональные данные в порядке и случаях, предусмотренных Законом о персональных данных;
– исполнять иные обязанности, предусмотренные Законом о персональных данных.
4. Основные права и обязанности субъектов персональных данных
4.1. Субъекты персональных данных имеют право:
– получать информацию, касающуюся обработки его персональных данных, за исключением случаев, предусмотренных федеральными законами. Сведения предоставляются субъекту персональных данных Оператором в доступной форме, и в них не должны содержаться персональные данные, относящиеся к другим субъектам персональных данных, за исключением случаев, когда имеются законные основания для раскрытия таких персональных данных. Перечень информации и порядок ее получения установлен Законом о персональных данных;
– требовать от оператора уточнения его персональных данных, их блокирования или уничтожения в случае, если персональные данные являются неполными, устаревшими, неточными, незаконно полученными или не являются необходимыми для заявленной цели обработки, а также принимать предусмотренные законом меры по защите своих прав;
– выдвигать условие предварительного согласия при обработке персональных данных в целях продвижения на рынке товаров, работ и услуг;
– на отзыв согласия на обработку персональных данных;
– обжаловать в уполномоченный орган по защите прав субъектов персональных данных или в судебном порядке неправомерные действия или бездействие Оператора при обработке его персональных данных;
– на осуществление иных прав, предусмотренных законодательством РФ.
4.2. Субъекты персональных данных обязаны:
– предоставлять Оператору достоверные данные о себе;
– сообщать Оператору об уточнении (обновлении, изменении) своих персональных данных.
4.3. Лица, передавшие Оператору недостоверные сведения о себе, либо сведения о другом субъекте персональных данных без согласия последнего, несут ответственность в соответствии с законодательством РФ.
5. Оператор может обрабатывать следующие персональные данные Пользователя
5.1. Фамилия, имя, отчество.
5.2. Электронный адрес.
5.3. Номера телефонов.
5.4. Также на сайте происходит сбор и обработка обезличенных данных о посетителях (в т.ч. файлов «cookie») с помощью сервисов интернет-статистики (Яндекс Метрика и Гугл Аналитика и других).
5.5. Вышеперечисленные данные далее по тексту Политики объединены общим понятием Персональные данные.
5.6. Обработка специальных категорий персональных данных, касающихся расовой, национальной принадлежности, политических взглядов, религиозных или философских убеждений, интимной жизни, Оператором не осуществляется.
5.7. Обработка персональных данных, разрешенных для распространения, из числа специальных категорий персональных данных, указанных в ч. 1 ст. 10 Закона о персональных данных, допускается, если соблюдаются запреты и условия, предусмотренные ст. 10.1 Закона о персональных данных.
5.8. Согласие Пользователя на обработку персональных данных, разрешенных для распространения, оформляется отдельно от других согласий на обработку его персональных данных. При этом соблюдаются условия, предусмотренные, в частности, ст. 10.1 Закона о персональных данных. Требования к содержанию такого согласия устанавливаются уполномоченным органом по защите прав субъектов персональных данных.
5.8.1 Согласие на обработку персональных данных, разрешенных для распространения, Пользователь предоставляет Оператору непосредственно.
5.8.2 Оператор обязан в срок не позднее трех рабочих дней с момента получения указанного согласия Пользователя опубликовать информацию об условиях обработки, о наличии запретов и условий на обработку неограниченным кругом лиц персональных данных, разрешенных для распространения.
5.8.3 Передача (распространение, предоставление, доступ) персональных данных, разрешенных субъектом персональных данных для распространения, должна быть прекращена в любое время по требованию субъекта персональных данных. Данное требование должно включать в себя фамилию, имя, отчество (при наличии), контактную информацию (номер телефона, адрес электронной почты или почтовый адрес) субъекта персональных данных, а также перечень персональных данных, обработка которых подлежит прекращению. Указанные в данном требовании персональные данные могут обрабатываться только Оператором, которому оно направлено.
5.8.4 Согласие на обработку персональных данных, разрешенных для распространения, прекращает свое действие с момента поступления Оператору требования, указанного в п. 5.8.3 настоящей Политики в отношении обработки персональных данных.
6. Принципы обработки персональных данных
6.1. Обработка персональных данных осуществляется на законной и справедливой основе.
6.2. Обработка персональных данных ограничивается достижением конкретных, заранее определенных и законных целей. Не допускается обработка персональных данных, несовместимая с целями сбора персональных данных.
6.3. Не допускается объединение баз данных, содержащих персональные данные, обработка которых осуществляется в целях, несовместимых между собой.
6.4. Обработке подлежат только персональные данные, которые отвечают целям их обработки.
6.5. Содержание и объем обрабатываемых персональных данных соответствуют заявленным целям обработки. Не допускается избыточность обрабатываемых персональных данных по отношению к заявленным целям их обработки.
6.6. При обработке персональных данных обеспечивается точность персональных данных, их достаточность, а в необходимых случаях и актуальность по отношению к целям обработки персональных данных. Оператор принимает необходимые меры и/или обеспечивает их принятие по удалению или уточнению неполных или неточных данных.
6.7. Хранение персональных данных осуществляется в форме, позволяющей определить субъекта персональных данных, не дольше, чем этого требуют цели обработки персональных данных, если срок хранения персональных данных не установлен федеральным законом, договором, стороной которого, выгодоприобретателем или поручителем по которому является субъект персональных данных. Обрабатываемые персональные данные уничтожаются либо обезличиваются по достижении целей обработки или в случае утраты необходимости в достижении этих целей, если иное не предусмотрено федеральным законом.
7. Цели обработки персональных данных
7.1. Цель обработки персональных данных Пользователя:
– информирование Пользователя посредством отправки электронных писем;
– заключение, исполнение и прекращение гражданско-правовых договоров;
– предоставление доступа Пользователю к сервисам, информации и/или материалам, содержащимся на веб-сайте https://sharkdevelop.com/.
7.2. Также Оператор имеет право направлять Пользователю уведомления о новых продуктах и услугах, специальных предложениях и различных событиях. Пользователь всегда может отказаться от получения информационных сообщений, направив Оператору письмо на адрес электронной почты support@sharkdevelop.com с пометкой «Отказ от уведомлений о новых продуктах и услугах и специальных предложениях».
7.3. Обезличенные данные Пользователей, собираемые с помощью сервисов интернет-статистики, служат для сбора информации о действиях Пользователей на сайте, улучшения качества сайта и его содержания.
8. Правовые основания обработки персональных данных
8.1. Правовыми основаниями обработки персональных данных Оператором являются:
– уставные (учредительные) документы Оператора;
– федеральные законы, иные нормативно-правовые акты в сфере защиты персональных данных;
– согласия Пользователей на обработку их персональных данных, на обработку персональных данных, разрешенных для распространения.
8.2. Оператор обрабатывает персональные данные Пользователя только в случае их заполнения и/или отправки Пользователем самостоятельно через специальные формы, расположенные на сайте https://sharkdevelop.com/ или направленные Оператору посредством электронной почты. Заполняя соответствующие формы и/или отправляя свои персональные данные Оператору, Пользователь выражает свое согласие с данной Политикой.
8.3. Оператор обрабатывает обезличенные данные о Пользователе в случае, если это разрешено в настройках браузера Пользователя (включено сохранение файлов «cookie» и использование технологии JavaScript).
8.4. Субъект персональных данных самостоятельно принимает решение о предоставлении его персональных данных и дает согласие свободно, своей волей и в своем интересе.
9. Условия обработки персональных данных
9.1. Обработка персональных данных осуществляется с согласия субъекта персональных данных на обработку его персональных данных.
9.2. Обработка персональных данных необходима для достижения целей, предусмотренных международным договором Российской Федерации или законом, для осуществления возложенных законодательством Российской Федерации на оператора функций, полномочий и обязанностей.
9.3. Обработка персональных данных необходима для осуществления правосудия, исполнения судебного акта, акта другого органа или должностного лица, подлежащих исполнению в соответствии с законодательством Российской Федерации об исполнительном производстве.
9.4. Обработка персональных данных необходима для исполнения договора, стороной которого либо выгодоприобретателем или поручителем по которому является субъект персональных данных, а также для заключения договора по инициативе субъекта персональных данных или договора, по которому субъект персональных данных будет являться выгодоприобретателем или поручителем.
9.5. Обработка персональных данных необходима для осуществления прав и законных интересов оператора или третьих лиц либо для достижения общественно значимых целей при условии, что при этом не нарушаются права и свободы субъекта персональных данных.
9.6. Осуществляется обработка персональных данных, доступ неограниченного круга лиц к которым предоставлен субъектом персональных данных либо по его просьбе (далее – общедоступные персональные данные).
9.7. Осуществляется обработка персональных данных, подлежащих опубликованию или обязательному раскрытию в соответствии с федеральным законом.
10. Порядок сбора, хранения, передачи и других видов обработки персональных данных
Безопасность персональных данных, которые обрабатываются Оператором, обеспечивается путем реализации правовых, организационных и технических мер, необходимых для выполнения в полном объеме требований действующего законодательства в области защиты персональных данных.
10.1. Оператор обеспечивает сохранность персональных данных и принимает все возможные меры, исключающие доступ к персональным данным неуполномоченных лиц.
10.2. Персональные данные Пользователя никогда, ни при каких условиях не будут переданы третьим лицам, за исключением случаев, связанных с исполнением действующего законодательства либо в случае, если субъектом персональных данных дано согласие Оператору на передачу данных третьему лицу для исполнения обязательств по гражданско-правовому договору.
10.3. В случае выявления неточностей в персональных данных, Пользователь может актуализировать их самостоятельно, путем направления Оператору уведомление на адрес электронной почты Оператора support@sharkdevelop.com с пометкой «Актуализация персональных данных».
10.4. Срок обработки персональных данных определяется достижением целей, для которых были собраны персональные данные, если иной срок не предусмотрен договором или действующим законодательством.
Пользователь может в любой момент отозвать свое согласие на обработку персональных данных, направив Оператору уведомление посредством электронной почты на электронный адрес Оператора support@sharkdevelop.com с пометкой «Отзыв согласия на обработку персональных данных».
10.5. Вся информация, которая собирается сторонними сервисами, в том числе платежными системами, средствами связи и другими поставщиками услуг, хранится и обрабатывается указанными лицами (Операторами) в соответствии с их Пользовательским соглашением и Политикой конфиденциальности. Субъект персональных данных и/или Пользователь обязан самостоятельно своевременно ознакомиться с указанными документами. Оператор не несет ответственность за действия третьих лиц, в том числе указанных в настоящем пункте поставщиков услуг.
10.6. Установленные субъектом персональных данных запреты на передачу (кроме предоставления доступа), а также на обработку или условия обработки (кроме получения доступа) персональных данных, разрешенных для распространения, не действуют в случаях обработки персональных данных в государственных, общественных и иных публичных интересах, определенных законодательством РФ.
10.7. Оператор при обработке персональных данных обеспечивает конфиденциальность персональных данных.
10.8. Оператор осуществляет хранение персональных данных в форме, позволяющей определить субъекта персональных данных, не дольше, чем этого требуют цели обработки персональных данных, если срок хранения персональных данных не установлен федеральным законом, договором, стороной которого, выгодоприобретателем или поручителем по которому является субъект персональных данных.
10.9. Условием прекращения обработки персональных данных может являться достижение целей обработки персональных данных, истечение срока действия согласия субъекта персональных данных или отзыв согласия субъектом персональных данных, а также выявление неправомерной обработки персональных данных.
11. Перечень действий, производимых Оператором с полученными персональными данными
11.1. Оператор осуществляет сбор, запись, систематизацию, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передачу (распространение, предоставление, доступ), обезличивание, блокирование, удаление и уничтожение персональных данных.
11.2. Оператор осуществляет автоматизированную обработку персональных данных с получением и/или передачей полученной информации по информационно-телекоммуникационным сетям или без таковой.
12. Трансграничная передача персональных данных
12.1. Оператор до начала осуществления трансграничной передачи персональных данных обязан убедиться в том, что иностранным государством, на территорию которого предполагается осуществлять передачу персональных данных, обеспечивается надежная защита прав субъектов персональных данных.
12.2. Трансграничная передача персональных данных на территории иностранных государств, не отвечающих вышеуказанным требованиям, может осуществляться только в случае наличия согласия в письменной форме субъекта персональных данных на трансграничную передачу его персональных данных и/или исполнения договора, стороной которого является субъект персональных данных.
13. Конфиденциальность персональных данных
Оператор и иные лица, получившие доступ к персональным данным, обязаны не раскрывать третьим лицам и не распространять персональные данные без согласия субъекта персональных данных, если иное не предусмотрено федеральным законом.
14. Заключительные положения
14.1. Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты support@sharkdevelop.com.
14.2. В данном документе будут отражены любые изменения политики обработки персональных данных Оператором. Политика действует бессрочно до замены ее новой версией.
14.3. Актуальная версия Политики в свободном доступе расположена в сети Интернет по адресу https://sharkdevelop.com/.
Продолжая обучение начинающих бизнес-аналитиков, сегодня рассмотрим 2 популярные схемы описания требований в Agile-проектах. Читайте далее, чем User story отличается от Use Case, а также как они связаны с UML-диаграммой прецедентов, а также функциональными и нефункциональными требованиями к решению, которые входят в ТЗ по ГОСТ.
От потребности к решению: виды требований и способы их описания
Напомним, руководство к профессиональному своду знаний по бизнес анализу BABOK®Guide выделяет 3 основных вида требований (бизнес, стейкхолдеров и к решению), а также переходные, актуальные на момент трансформации от текущего состояния (as-is) к желаемому (as-to-be). Подробнее об этом мы говорили в отдельной статье. Аналитик плотно работает со всеми видами требований, последовательно трассируя потребности, проблемы и возможности в требования к решению через бизнес-требования и требования заинтересованных сторон (стейкхолдеров).
Если решением является информационная система или программно-аппаратный комплекс, как это бывает в большинстве случаев, то в техническое задание (ТЗ) на его разработку попадают именно требования к решению: функциональные и нефункциональные. Для этого выделяются соответствующие пункты в стандартах по разработке (ISO/IEC/IEEE 29148:2018, ГОСТ 34.602-89, ГОСТ 19.201-78) и спецификации требований к программному обеспечению (Software Requirements specification, SRS) на основе IEEE/ISO/IEC 29148-2011. На практике формирование такого комплексного ТЗ по всем правилам является длительным и итеративным процессом со множеством циклов согласования между Заказчиком и командой реализации. Поэтому, чтобы лучше понять потребности стейкхолдеров и быстрее начать работу над программным продуктом, бизнес-аналитик описывает требования к системе в виде пользовательских историй (user story), которые кратко формулируют, какие возможности она предоставляет конкретной роли.
Основы бизнес-анализа: вход в профессию для начинающих
Код курса
INTRO
Ближайшая дата курса
27 марта, 2023
Длительность обучения
24 ак.часов
Стоимость обучения
50 000 руб.
Что такое пользовательская история и чем она хороша
Обычно user story создаются по шаблонам возможности или ограничения:
- <Роль> должен иметь возможность <возможность> в <показатель производительности> с <момент отсчета> в <условия эксплуатации>, чтобы <ценность>. Например, Администратор клиники должен иметь возможность просмотреть данные о прошлых и запланированных посещениях пациента в течение 3 секунд после определения личности клиента по номеру телефона входящего звонка, чтобы добавить новое или изменить запланированное посещение.
- <Система> должна <выполняемая функция> <объект> каждые <производительность> <единица измерения>, чтобы <ценность>. Например, CRM-система должна отправлять СМС-напоминание клиенту о предстоящем посещении за сутки перед посещением, чтобы он помнил о приеме и пришел вовремя.
Таким образом, формулировка исходных требований стейкхолдеров в виде пользовательских историй соответствует BDD-походу к разработке (Behavior-driven development), позволяя описать ожидания пользователей от проектируемой системы на понятном им языке и определить поведенческие сценарии тестирования для приемочных испытаний. User stories особенно распространены в продуктовой аналитике, но не заменяют собой формальное ТЗ по ГОСТ’ам с перечислением функций системы, о чем мы уже упоминали здесь и здесь. На практике такое представление требований часто встречается в Agile-проектах, особенно на начальном этапе бизнес-анализа при выяснении и уточнении потребностей заинтересованных сторон. Подробнее о том, как разные модели и методологии разработки ПО реализуют принципы Agile и движение по этапам SDLC, читайте в нашей отдельной статье.
Разработка ТЗ на информационную систему по ГОСТ и SRS
Код курса
TTIS
Ближайшая дата курса
8 февраля, 2023
Длительность обучения
12 ак.часов
Стоимость обучения
20 000 руб.
Сценарий использования и UML-диаграмма Use Case
Однако, user story – далеко не единственная схема представления требований, хотя именно она больше всего подходит к описанию требований стейкхолдеров. Также для описания функциональных требований, описывающих поведение проектируемой системы в едином смысловом контексте, применяется инструмент сценариев или вариантов ее использования (Use Case). В этом случае функциональные требования к системе представляются в виде набора функций, объединенных по контексту. Например, Use Case «Запланировать посещение клиента в клинику» может включать следующие функции:
- Просмотреть историю посещений (данные о прошлых и запланированных визитах);
- Добавить новое посещение;
- Выбрать посещение;
- Просмотреть детали (дата, время, место, врач) посещения;
- Изменить детали будущего посещения;
- Удалить будущее посещение.
Все эти функции представляют собой прецеденты UML-диаграммы вариантов использования (Use Case), которые связаны различными видами отношений. При этом направленную ассоциацию от актора проведем только к тем прецедентам, которые имеют смысл с пользовательской (бизнесовой) точки зрения. Таким здесь являются «Просмотреть историю посещений», «Добавить новое посещение» и «Просмотреть детали». А то, что для просмотра деталей конкретного посещения его надо выбрать из всего списка (просмотрев историю) — это системный use case. Поэтому целевой пользовательский UC «Просмотреть детали» ссылается на «Выбрать посещение» связью include. Это означает, что в реализации «Просмотреть детали» не может быть выполнен без выполнения «Выбрать посещение». В текстовой форме представления требований в виде Use Case это было бы прописано в графе «Предусловие, что мы рассмотрим далее. О том, как разрабатывать UML-диаграмму Uce Case, мы поговорим в другой раз. А проверить свое знание основ UML вы можете, пройдя бесплатный интерактивный тест прямо на нашем сайте.
Бизнес-логика выполнения каждого прецедента UML-диаграммы Use Case обычно детализируется в диаграммах деятельности, реже в диаграммах последовательности и состояний. Однако, сценарий использования не ограничивается только графической UML-схемой, а также включает текстовое описание по следующей структуре:
- Имя, в формате глагол-существительное, которое описывает достижимую цель и объяснять смысл сценария.
- Цель кратко описывает то, чего пользователь намеревается достигнуть с этим сценарием.
- Актор — действующее лицо, кто-то или что-то вне системы, влияющий на нее или находящийся под её влиянием (человек, устройство, другая система или подсистема).
- Предусловия, которые должны быть истиной для выполнения сценария.
- Активатор (триггер) – внешнее, внутреннее или временное событие, инициирующее выполнение сценария.
- Результат (постусловие) – новый объект или изменение состояния существующего объекта, который показывает, что актор достиг своей цели.
- Порядок Событий (основной поток) — типичный ход событий как ряд пронумерованных шагов.
- Альтернативные пути и дополнения use case’а могут содержать вторичные пути или другие сценарии на шаги основного.
- Бизнес-правила для определения результата в зависимости от конкретного запроса к системе, например, входных данных: «Изменение деталей или удаление возможно только для будущих посещений, дата и время которых еще не настали на момент просмотра записи».
Обычно сценарий использования по такой структуре оформляется в виде таблицы. В этом случае UML-диаграмма прецедентов (Use Case) является краткой наглядной схемой текстового представления основных функциональных возможностей взаимодействия с проектируемой системой, без детализации их выполнения. Бизнес-логика каждого прецедента описывается в пунктах сценария «Поток Событий»(Основной поток) и «Альтернативный поток». Как это сделать на практике, рассмотрим в следующей статье.
UML для бизнес-аналитика: основы ООП и разработка моделей
Код курса
BUML
Ближайшая дата курса
23 марта, 2023
Длительность обучения
8 ак.часов
Стоимость обучения
15 000 руб.
Чем User Story отличается от Use case
Подводя итог описанию рассмотренных схем представления требований, подчеркнем сходства и отличия User Story и Use case:
- обе этих схемы представления требований подходят для описания требований стейкхолдеров;
- обе схемы активно используются в ИТ-проектах, позволяя начать реализацию системы и создать прототип, демонстрирующий ключевые функциональные возможности;
- UML-диаграмма вариантов использования (Use Case) может использоваться с обеими схемами представления требований, наглядно показывая основные функциональные возможности взаимодействия стейкхолдера с проектируемой системой, без детализации их выполнения. Однако, неподготовленному читателю такая диаграмма покажется сложной и непонятной, в отличие от простых формулировок User Story и текстового (табличного) представления Use Case.
- User Story более легковесная техника, она требует меньше времени на формулирование, а потому она активно применяется в Agile-проектах, тогда как Use Case требует больше времени на разработку и потому более подходит для проектов, где нужна высокая степень формализации подробно задокументированных требований;
- пользовательские истории требуют дальнейшей детализации для описания подробностей выполнения процессов, взаимодействия пользователя с системой, данных и бизнес-логики, тогда как Uase Case является самодостаточным;
- User Story отлично подходит для разработки поведенческих сценариев тестирования, программы и методики приемочных испытаний;
- сценарии использования, в отличие от пользовательских историй, описывают процесс и его шаги подробно, предоставляя всю необходимую информацию о взаимодействии актора с системой, включая цель, пред- и пост-условия, триггеры, основные и альтернативные потоки, а также бизнес-правила;
- User Story позволяет указать нефункциональные требования с точным заданием значений нужных показателей, например, время отклика на событие, наработку на отказ и пр.;
- Use Сase объединяет функциональные требования по контексту.
На практике обе схемы представления требований могут пересекаться и использоваться совместно. Например, из пользовательской истории могут выходить несколько сценариев использования и наоборот.
Подробнее узнать о сходствах, отличиях, достоинствах и недостатках, примерах применения Use Case и User Story, а также научиться описывать требования по этим схемам представления вы сможете на курсах Школы прикладного бизнес-анализа в нашем лицензированном учебном центре обучения и повышения квалификации системных и бизнес-аналитиков в Москве:
- Разработка ТЗ на информационную систему
- UML для бизнес-аналитика
Quick temporary note: This post needs improvements to better answer the question, such as 1) additional details should be included from references 2) some citations maybe 3) overall correctness of English 4) overall quality of narrative 5) etc. I’ll be back to it. Feel free to improve it yourself.
Taking a look at their templates can give valuable insight into the differences between these terms.
Use case
There are multiple templates for use cases. I found 3 after a quick search: 1, 2, 3. Some points they (sometimes vaguely) have in common are:
- Name of use case / title
- Description — some short text describing the scope.
- Actor(s) / Primary actor — person(s) who interact with this particular use case.
- Precondition — anything that this use case can assume to be true prior to beginning it’s life cycle.
- Success scenario — a sequence of step describing correct flow of events that take place.
-
Extensions — flow of application when it deviates from success scenario’s flow:
- Alternate flows — other options of correct flow
- Exception flows — flow of events for when things go wrong
-
Success guarantee (aka. Post condition) — state of application after everything is done
Some additional points that can be included are Level, Minimal Guarantees, Trigger, etc.
Above is what’s called fully dressed use case. You can simplify use case creation by using a casual use case by using only the most vital points, for example:
- Title
- Actor(s)
- Sequence of events
Use cases were created and popularized by Ivar Jacobson in late 80s early 90s. Later other people also contributed to his work (one of such people is Alistair Cockburn who is author of Writing Effective Use Cases). To paraphrase Martin Fowler use cases can make use of text and UML diagrams, but their greatest value lies in the text of it. They are best when they are not big and easy to read.
User story (aka. Feature)
User story — a small story that describes a particular feature. There is a common pattern of how to write a user story, which is:
As a particular type of a user
I want to do something
so that some reason.
In addition, user story can have acceptance criterias.
As you can see this template is much smaller than that of use case. User stories are commonly associated with scrum/agile/xp region of software development. They are meant to be written on small regions of surface, such as post-it notes, and/or on scrum boards. There, they are (usually) given point values which approximate how much effort needs to be invested into that user story ref.
Bill Wake developed INVEST mnemonic to describe what qualities a good user story should have, and I will borrow Martin Fowler’s short summary of that from his website:
Independent: the stories can be delivered in any order
Negotiable: the details of what’s in the story are co-created by the programmers and customer during development.
Valuable: the functionality is seen as valuable by the customers or users of the software.
Estimable: the programmers can come up with a reasonable estimate for building the story
Small: stories should be built in a small amount of time, usually a matter of person-days. Certainly you should be able to build several stories within one iteration.
Testable: you should be able to write tests to verify the software for this story works correctly.
Usage scenario
Usage scenario follow the GWT pattern which stands for Given-When-Then, like so:
Scenario: title
Given: a particular fact
And: another particular fact (may be optional)
When: some event happens
Then: some other event happens
Usage scenarios are associated with Behavior-Driven Development. It sounds very similar to a test. Martin Fowler in his blog post gives some history and reasoning behind usage scenarios. Here is the important part:
The given part describes the state of the world before you begin the behavior you’re specifying in this scenario. You can think of it as the pre-conditions to the test.
The when section is that behavior that you’re specifying.
Finally the then section describes the changes you expect due to the specified behavior.
Usage scenarios can be used for writing test for your application. To quote the last paragraph of Martin’s post:
Although Given-When-Then style is symptomatic to BDD, the basic idea is pretty common when writing tests or specification by example. Meszaros describes the pattern as Four-Phase Test. His four phases are Setup (Given), Exercise (When), Verify (Then) and Teardown. Bill Wake came up with the formulation as Arrange, Act, Assert.
References for farther study:
Wikipedia pages for use case, user story, usage scenario
Martin Fowler’s blogs on use case, user story, usage scenario
Quick temporary note: This post needs improvements to better answer the question, such as 1) additional details should be included from references 2) some citations maybe 3) overall correctness of English 4) overall quality of narrative 5) etc. I’ll be back to it. Feel free to improve it yourself.
Taking a look at their templates can give valuable insight into the differences between these terms.
Use case
There are multiple templates for use cases. I found 3 after a quick search: 1, 2, 3. Some points they (sometimes vaguely) have in common are:
- Name of use case / title
- Description — some short text describing the scope.
- Actor(s) / Primary actor — person(s) who interact with this particular use case.
- Precondition — anything that this use case can assume to be true prior to beginning it’s life cycle.
- Success scenario — a sequence of step describing correct flow of events that take place.
-
Extensions — flow of application when it deviates from success scenario’s flow:
- Alternate flows — other options of correct flow
- Exception flows — flow of events for when things go wrong
-
Success guarantee (aka. Post condition) — state of application after everything is done
Some additional points that can be included are Level, Minimal Guarantees, Trigger, etc.
Above is what’s called fully dressed use case. You can simplify use case creation by using a casual use case by using only the most vital points, for example:
- Title
- Actor(s)
- Sequence of events
Use cases were created and popularized by Ivar Jacobson in late 80s early 90s. Later other people also contributed to his work (one of such people is Alistair Cockburn who is author of Writing Effective Use Cases). To paraphrase Martin Fowler use cases can make use of text and UML diagrams, but their greatest value lies in the text of it. They are best when they are not big and easy to read.
User story (aka. Feature)
User story — a small story that describes a particular feature. There is a common pattern of how to write a user story, which is:
As a particular type of a user
I want to do something
so that some reason.
In addition, user story can have acceptance criterias.
As you can see this template is much smaller than that of use case. User stories are commonly associated with scrum/agile/xp region of software development. They are meant to be written on small regions of surface, such as post-it notes, and/or on scrum boards. There, they are (usually) given point values which approximate how much effort needs to be invested into that user story ref.
Bill Wake developed INVEST mnemonic to describe what qualities a good user story should have, and I will borrow Martin Fowler’s short summary of that from his website:
Independent: the stories can be delivered in any order
Negotiable: the details of what’s in the story are co-created by the programmers and customer during development.
Valuable: the functionality is seen as valuable by the customers or users of the software.
Estimable: the programmers can come up with a reasonable estimate for building the story
Small: stories should be built in a small amount of time, usually a matter of person-days. Certainly you should be able to build several stories within one iteration.
Testable: you should be able to write tests to verify the software for this story works correctly.
Usage scenario
Usage scenario follow the GWT pattern which stands for Given-When-Then, like so:
Scenario: title
Given: a particular fact
And: another particular fact (may be optional)
When: some event happens
Then: some other event happens
Usage scenarios are associated with Behavior-Driven Development. It sounds very similar to a test. Martin Fowler in his blog post gives some history and reasoning behind usage scenarios. Here is the important part:
The given part describes the state of the world before you begin the behavior you’re specifying in this scenario. You can think of it as the pre-conditions to the test.
The when section is that behavior that you’re specifying.
Finally the then section describes the changes you expect due to the specified behavior.
Usage scenarios can be used for writing test for your application. To quote the last paragraph of Martin’s post:
Although Given-When-Then style is symptomatic to BDD, the basic idea is pretty common when writing tests or specification by example. Meszaros describes the pattern as Four-Phase Test. His four phases are Setup (Given), Exercise (When), Verify (Then) and Teardown. Bill Wake came up with the formulation as Arrange, Act, Assert.
References for farther study:
Wikipedia pages for use case, user story, usage scenario
Martin Fowler’s blogs on use case, user story, usage scenario
The notable quote from Alistair Cockburn, co-author of the Agile Manifesto, reads, “A user story is to a use case as a gazelle is to a gazebo.” This sheds light on the immense differences between use cases vs. user stories for agile teams. They may sound similar in name, but they are very different and often used in completely different industries.
While both use cases and user stories help teams plan work and determine what’s needed to complete work, the format for how they are used is quite different. User stories are simple, short descriptions from the customer’s perspective. They are the beginning of a larger process that describes a customer’s actions as they use or interact with your product. Use cases contain much more context. Creating detailed use cases is a much more in-depth process that’s designed to help teams understand how a user or customer interacts with a system. We’ll dig deeper into both of these processes below.
If you’re in agile software development, chances are you’re more familiar with utilizing user stories. In this post, we’ll dig deeper into use cases vs. user stories differences, including why today’s development teams have migrated towards user stories and why there’s still valid reason for utilizing use cases in the development process.
What’s the difference between use cases vs. user stories?
Use cases vs. user stories: What’s the difference, and how do you decide what’s best for your team and development process?
Use case vs. user story: Past and present
Use cases were the standard for many years, and they were often used in business analysis, systems analysis, software requirements, and iterative development. With the rise of agile, software projects began to favor user stories in place of use cases because they allowed for improved incremental thinking and agility.
What is a use case?
A use case is a description of each of the ways a user may want to interact with a system, a device, or a piece of equipment. They describe how the system design will respond to requests from its end-user, commonly known as an actor. These actors could be human beings or other systems.
Take an online shopping site and a food delivery service, for example. A customer placing an order or checking if a restaurant is open are two different use cases. Or, on the less technical side, consider a toaster. Say someone (the actor) only wants their bagel toasted on one side. Choosing the “bagel” toaster setting is a use case.
Use cases help teams structure all of the different functional requirements and determine the scope of the project — which means they’re full of details.
These details include:
- The goal of the use case
- Whether the actor is a human or another system
- Preconditions, or the state the system has to be in for the use case to occur
- The regular series of steps the system will take
- Alternative paths the system could take
- Postconditions — actions the system takes at the end of the use case or the various states the system could be in after the use case concludes
Take the “bagel” setting on a toaster.
- Use case title/goal: Bagel setting
- Actor/user: This is someone who likes their bagel only toasted on one side.
- Preconditions: There needs to be a “bagel” function/button.
- Regular steps/standard path: The actor cuts their bagel in half and places each half in the toaster. They push the lever down to toast the bagel. Then, they press the button titled “BAGEL” and wait for their bagel to be toasted the way they like.
- Alternative paths: The actor may forget to activate the “bagel” setting, resulting in a poor user experience.
- Postconditions: The toaster returns to its usual state (bagel setting not set).
What is a user story?
A user story is the who, what, and why of a goal or outcome that the user or customer wants to achieve. It’s the smallest piece of work that can give value back to the customer. It’s written from the point of view of the end user, often on an index card.
Here’s an example of how a user story is typically written: “As a [persona type], I want to [action] so that [benefit].”
A user story is designed to be as simple as possible, sparing the team as well as stakeholders from having to decode a lot of technical lingo. But, that doesn’t mean the process for creating a user story is easy. A lot of information is condensed into a single sentence. And before writing a user story, the team first has to identify and create their user persona and assemble all of the product requirements
Easy Agile co-founder Nick Muldoon describes user story mapping as “a facilitated, curated conversation that brings everyone along for the journey.”
A project or product developed in an agile environment will involve a lot of user stories that are each added to the product backlog. There, they can be arranged and prioritized on a user story map according to the scheduled release or sprint.
Use cases vs. user stories: The case for use cases
While use cases are far less common in agile development, they do have some advantages to consider. After all, the true spirit of agile means questioning your assumptions and trying new methods.
1. Use cases provide a summary and planning skeleton
Use cases provide anyone involved, such as managers, leadership, product owners, developers, or stakeholders, with a summary of what the system will offer. What will the system contribute to the users and the overall business? They provide a planning skeleton to help teams prioritize, estimate timing, and execute actions.
2. Use cases provide context for each requirement
The use case provides enough detail and context to ensure everyone is on the same page. It’s an agreement between team members about what the system will and won’t do.
3. Use cases provide a look ahead at what could slow work
The alternative paths portion of use cases provides an advanced look at what could go wrong. Small bottlenecks can take up a huge amount of time and money, so the sooner you can recognize and address these issues, the better.
4. Use cases provide answers for specific issues and scenarios
Use cases answer the specific questions developers or programmers could have along the way. The use case process ensures all questions about issues or possible scenarios are answered at the outset before these questions begin to bog down work or slow down a team’s progress.
5. Use cases provide a model to think through all aspects completely
The use case model ensures developers have fully thought through all aspects of development. Use cases dig into the details of user needs, system goals, possible issues, and various business variants.
Use cases vs. user stories: Bottom line
So, use cases vs. user stories? How do you decide which is better for your team? If you have a lot of experience with agile projects and working on agile teams, you know the undeniable value of user stories. They convey what the user or customer wants to achieve so that teams are always considering the needs of the user.
That said, even though use cases are a bit dated, they can provide much-needed context surrounding how a system is used. They describe how a user interacts with a system, answering many questions in advance to help manage complicated processes. Plus, it wouldn’t be very agile to discount a solution simply because you haven’t tried it before. 😉
Using Easy Agile TeamRhythm
We’re passionate about building tools that help agile teams work better together. Easy Agile TeamRhythm is designed to help product owners and development teams bring value to customers fast and frequently. Supporting user story mapping, backlog refinement, sprint planning, and team retrospectives, you can plan and manage your work right from the user story map, then come together as a team to share actionable insights that will help you work better together each time.
TeamRhythm integrates seamlessly with your agile boards in Jira for both Scrum and Kanban methodologies. Try it yourself in our sandbox demonstration; no need for a login or installation.
A lot of people confuse user cases and stories, but actually they are different concepts. They might have some similar functions. For example, gathering information about user requirements and goals. But they are designed for different purposes. This article discusses in detail the two concepts and how they are different. The usage and practicality of the two concepts to businesses is also highlighted in the article. This article aims to serve as an aid for its readers and help them gain insight into this topic.
What is a use case?
Have you ever felt that the product you imagined and the product you developed were very different? Or the feature that you wanted is missing from the final version. Many product people can relate to these questions. This can help to understand why businesses need a use case in the first place.
In simple terms, a use case is an account of how a person who uses a certain process will achieve a goal. In technical terms, it is the description of the interaction between system and actors. The product of this process is a document containing all the steps followed by a user to achieve a goal.
For example, you are a carpenter planning to craft a door. The use case for this scenario would consist of all the steps taken by the carpenter to achieve the goal. This whole documentation would help study the flaws and errors of the process.
Product teams utilize use cases in a variety of situations. It is used in designing, testing and development. This process also helps to develop a rough outline of how a user help manual should be designed. Errors and other flaws are also minimized through this process.
The whole process of use cases has certain key terms. These terms are the basis of the entire process and provide the backbone.
- The actor: This is the person or group of people interacting with the system. They are the users of the system.
- The goal: This is the outcome for which the use case was designed. It is usually the final result of this process.
- The system: This includes all the steps followed to achieve the set goal.
The three basic terms don’t apply to every situation. Every project, model and circumstance are different in complexity. For complex products, many other terms are used in a use case. Some of the terms are:
- Stakeholders: All the parties who have an interest in the outcome of the use case. It doesn’t have to be users only.
- Triggers: Are all the events due to which a use case begin.
- Preconditions: It is the combination of all factors necessary for the case to occur.
From a technical point of view, use cases are a detailed description of guidelines for developers. It gives an idea of what the developers need to include in the system. This also gives the developer a sense of direction to work in.
It’s also important to note that when creating use cases you shouldn’t just cover the ideal scenario, you should also prepare alternative paths:
- Main success scenarios [Basic Flow] – use case in which nothing goes wrong.
- Alternative paths [Alternative Flow] – these paths are a variation on the main theme. These exceptions are what happen when things go wrong at the system level.
What is a user story?
After describing use cases, let’s move on to user stories.
User stories are a simple description of the desire of a user for a need. These stories are written from an end-user point of view. The language used for user stories is very informal and easy to understand.
In technical words, it is the description of a feature from an end-user’s point of view. This story is used in agile software development. It helps the product team in identifying their users and requirements. It also helps to break down all the complexity into simple easy to understand words.
The user story is also an easy method of recording user requirements. It helps to identify some important questions. Questions like the who, what and why of a feature. All this description is written to shift the focus from writing to discussing features. It can help simplify the whole process and increase effectiveness.
It is important for a user story to have an outline. An acronym INVEST is widely used for this purpose. It helps in checking that all the requirements have been fulfilled.
- Independent: Not depending on other projects
- Negotiable: Room should be left for further development
- Valuable: Description of the value the end-user is going to get.
- Estimable: They should be estimated so that a proper plan can be developed.
- Small: Work should be small enough to be completed in 3-5 days
- Testable: Some mechanism to check the value delivery of the process
Now that both concepts have been described in detail it might feel that they are the same. The overlap between the two concepts is visible from far away but not near. Although what is same is their importance to the product team. They both are important components of the overall development process.
Why Create User Stories?
User stories are a simple way of defining what a user wants. Products can be explained clearly through it. A good user story will help all stakeholders in understanding the functionality of the product. It also helps in briefing the client on what the product is.
User stories can help to streamline the project
It means that a bigger goal can be divided into smaller achievable goals. This helps to achieve the project more efficiently and with less time waste. Smaller achievable goals mean little deviation from your goal.
Brings everyone on the same page
Their simple language means they are understandable by everyone. Both technical and non-technical members use this as a medium of communication. It also helps in engaging each stakeholder. The nature of user stories ignites product discussion among different stakeholders.
Provide a sense of purpose
By clearly defining the purpose of the product, user stories provide purpose to the whole mission. It also makes achieving the task easier for the development team. Due to user stories developers know why they are producing a product. This contributes to increased motivation.
Helps defining the whole product
It gives the development team the freedom to think out of the box. The team can then organize different ideas according to their priority. The criteria for priority might depend on factors like user value and complexity. This means that even the crazy ideas aren’t excluded from the process. They can be given a lower priority and handled accordingly.
Encourages a user focused approach
This method gives a lot of power to the end user. It means that everything is designed with the end users in mind, right from the beginning. Let it be a prototype, an MVP or a new feature, user stories help you keep the user in the middle of the focus. The stories align the product team with what users want. These stories serve as a constant reminder of serving user needs. Thus, user satisfaction is maximized due to user story.
Example of user story vs. use case
Let’s take an electric vehicle renting application as an example.
Imagine an application where you can list and rent all electric vehicle options in big cities.The users’ objective is to choose and successfully rent an electric vehicle.
Use case example
Use Case Name: Place Rent Order
Actors:
- Shopper
- Fulfillment System
- Billing System
Basic Use Case Description:
- User selects items to rent
- The User provides payment and shipping information
- User orders the items
- The system responds with confirmation of the order and a renting number that the user can use to check out the vehicle.
- The system will also provide the user with a countdown for the remainder of the renting time.
- The user may already have an account with the company with billing information.
Alternative flow would be:
- User selects items to rent
- The User provides payment and shipping information
- User changes mind and chooses another vehicle
- User deletes cart
- User selects new items
- User places order
- The system respond with confirmation of the order and a renting number that the user can use to check out the vehicle.
- The system will also provide the user with a countdown for the remainder of the renting time.
- The user may already have an account with the company with billing information.
User story example
As a user, I want to link the credit card to my profile so that I can pay for a rent faster, easier and without cash.
As a service provider, I want to add photos of my vehicles in the application so that I can attract more users.
As a user, I want several available vehicles to be displayed so that I can choose the most suitable option for me.
The differences between a user story vs use case
User focus vs technical focus
User story is drafted to explain a user’s needs. It highlights a problem that a user faces in his day to day life. The language of this draft is very simple. It is developed to keep all the stakeholders on the same page. On the other hand, use cases are developed for the product team only. It gives the team an idea of what the software should achieve. It also highlights all the steps the developers need to follow in order to make the software. For this reason, use cases contain a lot more detail than user stories.
General vs in-depth
User story is a simplified form of many users interacting with a software. Use cases are very specific in relation to user stories. They describe specific user actions with any system.
Short vs Detailed
User stories miss out on a lot of details. This is because it gives room for discussion and improvement. This aspect of user stories is deliberate. This encourages stakeholders to initiate discussions and improve the product. Use cases on the other hand are specific. They describe in detail all the steps that a developer will follow. There is usually no room for discussion.
Use stories are developed before the user case. In most cases they are developed by user interaction. One user story can generate multiple use cases. The combination of all such use cases produces a detailed document. This document has a description of the interaction between all software and users.
The similarities of a user story and a use case
The biggest similarity between the two approaches is the key components. User stories have components like user role, goal etc. Use cases also have similar concepts. It includes actor, pre-conditions and other terms. So, both of these concepts become similar in how they approach a problem.
When to use a user story vs use case?
User stories have a lot of uses in product development. They are used before use cases to start customer focused conversations. This conversation means more room for improvement in the customer model. It helps in providing clarity to the whole concept. User stories ensure no useless detail gets into the whole process. This also ensures that goals are set from the beginning of the process. Thus, user stories increase efficiency.
There are several places when use cases can be used. They can be used to document the process of a current system. Often when existing systems are updated they can provide a lot of technical problems. Use cases help in understanding the bigger picture of the existing system. So, problems can be avoided before any changes are made.
Another use of the use case is in the development of new systems. It helps in providing a detailed description of all the steps developers need to follow. It also helps in defining user goals and easing the development process.
WRAP UP
By now you know what user stories and use cases are all about and what their use is. These concepts are instrumental to a successful product.
The most frequently asked question and confusing concept among the agile development team is “what is the difference between use case and user story?” because both serve the same purpose. The answer is that their approaches to the goal are distinct. Both use cases and user stories are frequently used in agile software development. Many organizations favor certifications that align with the KnowledgeHut Agile courses when hiring project managers just to make sure that they are aware of the difference between use cases vs user stories. Let’s compare use cases vs user stories by looking at each definitions, similarities as well as the difference between user stories and use cases with examples and applications for each.
Use Case vs User Story: Head-to-head Comparison
Getting to the crucial question, «How are user stories different from use cases?» Obtaining agile certification is encouraged to develop knowledge in understanding use cases vs user stories, which is easy to achieve with proper guidance.
The following table can help us understand the difference between user stories and use cases:
Parameters | User story | Use case |
---|---|---|
Descriptions | It contains short or simplified descriptions | It contains lengthy or complete descriptions |
Type of Usage | User experiences center on needs. | Describe the behavior you’ll include in the product to suit those needs. |
Ease of Use | Users may read user stories with ease. | Outlines a thorough exchange between users and the system. |
Type of Interaction | User story provides single description | Use case contains the sequence of interactions |
Management | User story is manageable in one sprint | Use case spans many sprints |
What is a Use Case?
The first author to present an article on use cases was Ivar Jacobson, who did so in 1987. A use case is a collection of interactions that occur between a user and a system to accomplish an objective. In this context, the user is an actor, and the system is a piece of equipment or a device. The decision-maker, whether they be a person, a business, or a computer program, is known as the actor. We will go over the actor in greater detail below.
The use case mostly uses the following three terms. Let’s understand them with an example: “A person orders goods through an e-commerce website, and the seller delivers them.”
1. Actors
An actor is a character who interacts with a system to achieve a purpose. The term «actor» comes from the Unified Modeling Language. The actor need not always be a human; they could be any computer program, hardware system, software system, business, or organization. The secondary actor, who aids the system in achieving the aim of the primary actor, is another character to be aware of in a use case. In the above example, the human is the main actor making decisions. The e-commerce program also notifies the seller to package and send the order to the buyer, here seller is the secondary actor.
2. Goal
The process’s end result is a goal, which is selected by the user, the client, and occasionally even a piece of software. The use case’s entire process is intended to achieve the desired result.
In the preceding example, the actor (person) opted to purchase a product (goal), hence the goal is to purchase a thing. If the product is delivered, the aim has been met.
3. System
A system is one that accepts instructions from the actor and then executes all actions necessary to achieve the actor’s purpose.
The e-commerce website is the system in the preceding example. Following receipt of the order, various procedures are taken, including advancing to payment, alerting the seller to pack the item and send it, tracking the order status for any delays, and ultimately delivering the product.
Format or Template
Use cases can be written in the text in a variety of styles, including formal, informal, and Fowler styles. There is no standard way to create the content of a use case, and different styles work well in different instances, according to Martin Fowler. He provided the following basic and typical format:
- Title: “Goal established by the actor”
- Success scenario: «List of interactions or steps to attain a goal». In this context, «steps» refers to a straightforward textual description of user and system interactions.
- Extensions: «Departure from the primary success scenario’s set of actions.» If the aim is not achieved, more connections are made to conduct the necessary measures.
What is a User Story?
Kent Beck first introduced user stories in the year 1997. User stories are written materials that describe a system’s features from the viewpoint of the user or client. Post-it notes, computer software, and index cards are frequently used as writing surfaces. User stories are used in many agile techniques to describe and influence software development functionality.
Format or Template
User stories are written in several formats which are listed below: Let’s look at each of them.
1. Five W’s concept:
The five W’s are who, when, where, what, and why. This format of the user story is constructed by putting together user stories using the responses to a series of queries that pinpoint the specifics of the suggested product.
“As a <Who>, I want to do <what> <where> <When> so I can accomplish <why>”
2. Evil User Story
This also goes by the name «abuse user story.» To safeguard against hackers, this user narrative template was utilized to strengthen security for the software development application. It is written from the viewpoint of a hacker, assuming that cyberattack-related actions take place.
“As a <anti nationalist>, I want to <copy the personal information> of voters to <demolish>government”
3.Connextra Format:
Connextra template is the most common and widely used template in the User story, Let’s understand this with below-stated format
“ As a <actor>, i can do <ability>, so that <benefit received>”
Use Case vs User Story: Similarities
User stories vs use cases: there are a few commonalities that are listed below, and these differences have caused misunderstanding about the difference between use cases and user stories. Let us look at them:
- The main similarity between the use case and user story is they both have a role and goal to accomplish.
- Both are written in everyday language that is straightforward and easy for users.
- Both ought to make it clearer to the reader what the software is intended to do.
- Use cases have comparable components with user stories, such as an actor, a sequence of occurrences, including subsequent conditions.
Examples of User Story vs Use Case
The use case vs user story examples will help in understanding the usage of these techniques. These examples also help in understanding the use case user story differences.
Example 1
Title: “Passenger booking a railway ticket”
Use case example:
Actor | Passenger |
---|---|
System | 1. Passenger opens a railway ticket booking application. |
2. Enters destination details | |
3. Check suitable train timings. | |
4. Selected the suitable train | |
5. Enters personal details | |
6. Selected payment option | |
7. Credit card payment is done | |
8. Downloaded the train ticket | |
Goal | Train ticket booked |
User story example:
- The passenger opened a train ticket booking application so that he could start booking a train ticket.
- Passenger checked suitable train timings so that he can book an appropriate train.
- Passenger selected a credit card payment option so that he can make payment with a credit card.
- Passenger downloaded the train ticket so that he can print the ticket copy.
- Passenger printed the train ticket so that he can travel in the train with the ticket.
Example 2
Title: “A/C holder depositing cash in ADWM (Automated Deposit cum Withdrawal Machine)”
Use case example:
User / Actor | A/c holder |
---|---|
System | 1. A/c holder visits nearby ADWM |
2. A/c holder selects cash deposit option on screen | |
3. A/c holder deposits the cash in machine | |
4. ADWM counts the cash deposited | |
5. ADWM displays the amount deposited | |
6. A/c holder enters his account number details | |
7. A/c holder confirms details and presses enter button | |
8. ADWM prints deposit slip | |
9. A/c holder collects cash deposit slip | |
Goal | Cash deposited into bank account |
Possible extensions from step-4 to step-5.
Step-4: ADWM counts the cash deposited
- ADWM rejects the damaged notes.
- Instructs the A/c holder to replace damaged notes.
- The A/c holder takes out the damaged notes.
- A/s holders deposit new cash in ADWM.
Step-5: ADWM displays the amount deposited
User story example
- The A/c holder visits the nearby ADW machine so that he can start depositing cash.
- The A/c holder selects the cash deposit option, so that machine opens the door to deposit
- ADW machine counts the amount deposited so that it can display the actual cash deposited.
- A/c holder enters his account number details, so that cash will be deposited in his account.
- ADW machine print deposit slips, so that account holder can get confirmation.
- A/c holder collects deposit slips so that he can leave the place with confirmation of accomplishment.
The user story vs use case examples may be found in many daily tasks. There is a large curriculum to study and comprehend.
In product development, the user journey vs use case is extensively utilized, mostly in agile development approaches. Let’s discuss their other uses:
Use case
- Use cases are utilized for the description of the software requirements specification (SRS), which serves as an alternate framework for the functional requirements.
- Used for utilizing the entity-control-boundary method to derive the design from the requirements.
- Utilized as a behavioral modeling tool in the Unified Modeling Language (UML).
- Use case is utilized as the driving factor in Object Oriented Software Engineering (OOSE).
User story
To begin customer-focused interactions, user stories are utilized before use cases. User stories provide an overview of potential software project features.
In scrum, the product owner prioritizes user stories to identify those that are crucial to the system. Based on these discussions, user stories may be enhanced to provide more information. Notes, attachments, and acceptance requirements are examples of this.
Conclusion
We have seen the use case and user story differences with individual definitions and also with suitable examples. Once you understand the topic “difference use case and user story”, you can begin to determine what function they can play in your project which helps in using both concepts appropriately in your projects.
Frequently Asked Questions (FAQs)
1. Are use cases and user stories the same?
They are not the same since they have distinct objectives. Difference between a use case and a user story is an important topic to know in agile software development.
2. Does Agile use use cases?
Use cases are a part of agile software development.
3. Can a use case include multiple user stories?
There is a chance that a single user story will give rise to many use cases. But a single use case cannot include multiple user stories.
4. User stories are different than use cases in what way?
When compared to use cases, both are distinct, but user stories are simpler to understand.
Table of Content
- What is a user story?
- What are a use case and a use case scenario?
- User story and a use case. What is the difference?
- What is a Flow Chart?
- Our experience
Often as designers, we encounter different methods to document our UI UX Designs. These methods could be as detailed or simple as needed. The difference between use case, use case scenarios, user stories, and user flows are precisely in the details.
As less detailed, first, we encounter the user stories. These stories break into use cases; the use cases can contain use case scenarios that translates into graphical flow charts.
But let’s start with the basics, definitions.
What is a user story?
The user story is a faster and less specific tool typically used in agile methodologies. The focus of the user story is on developing short descriptions of user-centered needs. User stories are simplified versions of requirements. A user story should also focus on being valuable to the end-user. A user story should be short, estimable, and testable. It is essential to mention that user stories do not replace requirement documentation since requirements deal with the product’s specifications and technical aspects.
- The user story answers questions like:
- Who will perform the task?
- What does that user need to do?
- Why does the user need to accomplish the task?
What are a use case and a use case scenario?
A use case is a set of steps that are required to accomplish a specific task or goal. A use case can have multiple paths to reach the goal; each of them is considered a use case scenario. In simple words, a use case is a goal with various processes, and a case scenario represents a linear and straight path through one of the operations.
The use case it answers the questions like:
- What is the scenario – context of the task?
- What preconditions does the process have?
- What exceptions can the task encounter?
- How will the job be accomplished?
- What errors can we encounter in the process?
How many ways do we have to accomplish the task? (Basic paths and alternative paths)
Example 1: Let say that we encounter a mobile app sign-in; the user story will be: User A needs to SIGN IN to access the app. (Who, What, Why). Then, we developed the use case: first, we need to open the app, verify connectivity in the device, and then present the user the options that they have to accomplish the task. We see that we have multiple choices; we can sign-in using our Facebook account, Twitter account, or email. The use case is sign-in; each of the options to sign in is a use case scenario. All of the situations lead to the same outcome, but as users, we will encounter different interfaces depending on our choice of sign-in.
User story and a use case. What is the difference?
A user story will give us more information regarding the motive and needs of the user; it will also give us a high-level goal vs. the use case. It will provide us with the details of how to accomplish the target and all the scenarios that the user can encounter while performing the task. The use case is more detailed and focuses more on functionality. To learn more about user stories, please read our article entitled “Storyboards and How They Help in Product Definition”.
What is a Flow Chart?
A user flow is a more detailed and graphical representation of a use case or use case scenario. Flow Charts express navigation as a map; they use shapes and graphics to convey the screen’s content and navigation indicators to convey the interaction between screens. Complex cases should not use Flow Charts as documentation. When the use cases involve lots of screens/elements and navigation specifications, the diagram can become too big and too difficult to understand.
The user flows can be:
- Task flows: Shapes and navigation arrows represent steps.
- Wireflows: More detailed flows. Instead of graphic forms, they involve Low to Medium fidelity wireframes and navigation arrows. Wireflows do not focus on specific tasks, more on the general navigation.
- User Flows: It includes Low to Medium fidelity wireframes with the difference that the flows are specific on functionality from a user or task perspective navigation vs. the Wireflows that document more than one global perspective
So what to do if the flow is too big to be represented in a single chart? We can accommodate the use of Wireflows and User flows into documents. These documents will contain the Low – Medium fidelity wireframes. Instead of the arrows, navigation works through unique screen IDs and indicators in the wireframes. Each action (buttons, menus, etc.) will point to other screen IDs. This type of documentation serves its purpose by user scenario, use case, feature, etc.
Our experience.
Use cases, user stories, and flow charts are essential parts of the mobile app design and development. We have encountered that user stories are usually provided by the product owner to communicate the user and business needs. Technical leads and UI/UX designers develop user flows based on the user stories and requirements. UI/UX designers then apply the use cases and transform them into graphical flow charts. All of these documentation becomes essential to current and future versions of the product.
The use cases and flow charts, in our experience, are documentation that goes through several parties involved in the process:
- The Product owner takes the use cases to validate the user stories.
- The Technical Leads and developers use the use cases and flow charts as documentation to verify the functionality of the implementation.
- The UI UX designers develop wireframes and mockups based on the use cases.
- The SQA team take the use cases to validate the expected functionality vs. the implementation.
Use cases are time-consuming to create, but in our experience, they are certainly needed and useful as reference documentation and guidance for developers, designers, and testers. There are multiple ways to document a use case; there is no correct answer in which one to choose; It will depend on which one adapts better to your process and product. Choose the best deepening on the size of the case to document. If the feature or situation is not yet fully defined, it is best first to elaborate on the use case, and when the use case is approved, it translates into a flow chart or document.
What are the objectives of having case scenarios and flows documented?
Analyze and Document Requirements
It helps to identify not covered scenarios, errors, or side scenarios.
It validates User Stories.
It helps to understand the evolution of the features.
As a final thought, consider the needs of the business, the needs of the product, and the team’s needs (Development, SQA, etc.) Ensure you have all the elements required in your documentation to support the team and have documentation that can be expandable in a progressive way.