Эз э систем ай вонт ту… Actor и Value в User story
Обновлено: 10 апр. 2021 г.
Все помнят, что такое user story?
Я уверен, что помнят все, но на всякий случай поглядим в самый авторитетный источник – BABOK. Он определяет user story (далее US) так: A small, concise statement of functionality or quality needed to deliver value to a specific stakeholder.
Это определение находится в глоссарии, а вот в разделе «Техники» написано более расширенно: The title of the story describes an activity the stakeholder wants to carry out with the system. Typically, it is an active-verb goal phrase similar to the way use cases are titled.
Далее BABOK пишет в несколько другом ключе: The most popular format includes three components:
• Who: a user role or persona.
• What: a necessary action, behaviour, feature, or quality.
• Why: the benefit or value received by the user when the story is implemented.
For example, "As a <who>, I need to <what>, so that <why>."
Вот еще несколько вариантов определения:
· “As a <user role>, I can <activity> so that <business value>” (использовано в книге «Agile software requirements», отличная книга)
· "As a <role> I can <capability>, so that <receive benefit>" (это я взял из Википедии)
· "As a <type of user>, I want <some goal> so that <some reason>" (популярное определение, которое я встречал во многих местах, приписывается Майклу Кону)
Трехэлементный формат US – кто, что, зачем – интуитивно понятен, сравнительно прост и достаточно удобен. Почти всегда. Периодически бывают ситуации, когда в умелых руках три части user story становятся похожи на те три сцепленные между собой шестеренки с картинки, которую вставляют в каждую презентацию. Ну, вы все ее наверняка видели.
Всегда ли ценность заключена в действиях пользователя?
В определениях выше вторая составляющая US сформулирована как действие или возможность, предоставленное некоему актору для достижения им какой-то цели. Все формулировки подводят к тому, что что кто-то что-то делает. «To <what>», пишет BABOK, а не просто «<what>».
Также все определения прямо говорят о пользователе системы. Это вполне логично, ведь система делается для того, чтоб ей кто-то пользовался. И еще это оправдано с точки зрения тестируемости: при таких-то условиях я, как пользователь системы, делаю какие-то действия, в ответ на что система должна делать так-то и это критерий ее соответствия ожиданиям. Ну и вообще, даже само словосочетание «user story» говорит о том, что следует смотреть с перспективы действий пользователя системы. Это приводит к тому, что user story зачастую сводятся к описанию функций, которые предоставляет система, в виде «as a user I want to».